[sr-dev] git:master:d4003b91: dispatcher: allow 'all' to update all destinations in group via RPC

Timmo Verlaan tverlaan at gmail.com
Mon Jan 15 08:52:16 CET 2018


Module: kamailio
Branch: master
Commit: d4003b91ec04741041b4aa2bdc5926f5aeb6f945
URL: https://github.com/kamailio/kamailio/commit/d4003b91ec04741041b4aa2bdc5926f5aeb6f945

Author: Timmo Verlaan <tverlaan at gmail.com>
Committer: Timmo Verlaan <tverlaan at 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/d4003b91ec04741041b4aa2bdc5926f5aeb6f945.diff
Patch: https://github.com/kamailio/kamailio/commit/d4003b91ec04741041b4aa2bdc5926f5aeb6f945.patch

---

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>




More information about the sr-dev mailing list