diff --git a/src/modules/dispatcher/dispatcher.c b/src/modules/dispatcher/dispatcher.c
index 82fd0dd650e..40c47c3e1fd 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 c62385279c8..9c6cdd92004 100644
--- a/src/modules/dispatcher/doc/dispatcher_admin.xml
+++ b/src/modules/dispatcher/doc/dispatcher_admin.xml
@@ -1511,7 +1511,8 @@ onreply_route {
_group_: destination group id
- _address_: address of the destination in the _group_
+ _address_: address of the destination in the _group_
+ or 'all' to update all destinations in the group
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
...