Module: kamailio
Branch: master
Commit: d4003b91ec04741041b4aa2bdc5926f5aeb6f945
URL:
https://github.com/kamailio/kamailio/commit/d4003b91ec04741041b4aa2bdc5926f…
Author: Timmo Verlaan <tverlaan(a)gmail.com>
Committer: Timmo Verlaan <tverlaan(a)gmail.com>
Date: 2018-01-14T17:04:07+01:00
dispatcher: allow 'all' to update all destinations in group via RPC
---
Modified: src/modules/dispatcher/dispatcher.c
Modified: src/modules/dispatcher/doc/dispatcher_admin.xml
---
Diff:
https://github.com/kamailio/kamailio/commit/d4003b91ec04741041b4aa2bdc5926f…
Patch:
https://github.com/kamailio/kamailio/commit/d4003b91ec04741041b4aa2bdc5926f…
---
diff --git a/src/modules/dispatcher/dispatcher.c b/src/modules/dispatcher/dispatcher.c
index 82fd0dd650..40c47c3e1f 100644
--- a/src/modules/dispatcher/dispatcher.c
+++ b/src/modules/dispatcher/dispatcher.c
@@ -1360,9 +1360,13 @@ static void dispatcher_rpc_set_state(rpc_t *rpc, void *ctx)
return;
}
- if(ds_reinit_state(group, &dest, stval) < 0) {
- rpc->fault(ctx, 500, "State Update Failed");
- return;
+ if(strcmp(dest.s, "all") == 0) {
+ ds_reinit_state_all(group, stval);
+ } else {
+ if(ds_reinit_state(group, &dest, stval) < 0) {
+ rpc->fault(ctx, 500, "State Update Failed");
+ return;
+ }
}
return;
diff --git a/src/modules/dispatcher/doc/dispatcher_admin.xml
b/src/modules/dispatcher/doc/dispatcher_admin.xml
index c62385279c..9c6cdd9200 100644
--- a/src/modules/dispatcher/doc/dispatcher_admin.xml
+++ b/src/modules/dispatcher/doc/dispatcher_admin.xml
@@ -1511,7 +1511,8 @@ onreply_route {
<listitem><para>_group_: destination group
id</para></listitem>
- <listitem><para>_address_: address of the destination in the
_group_</para></listitem>
+ <listitem><para>_address_: address of the destination in the _group_
+ or 'all' to update all destinations in the
group</para></listitem>
</itemizedlist>
<para>
Example:
@@ -1520,6 +1521,7 @@ onreply_route {
...
# prototype: &sercmd; dispatcher.set_state _state_ _group_ _address_
&sercmd; dispatcher.set_state ip 2 sip:127.0.0.1:5080
+&sercmd; dispatcher.set_state ip 3 all
...
</programlisting>
</section>