I reproduced in a lab with 3 Kamailio servers

kamailio_first  127.0.0.101
modparam("dmq", "server_address", "sip:127.0.0.101:5060")
modparam("dmq", "notification_address", "sip:127.0.0.103:5060")
modparam("dmq", "multi_notify", 1)
modparam("dmq", "num_workers", 2)
modparam("dmq", "ping_interval", 15)

kamailio_second 127.0.0.102 notification_peer: 127.0.0.103
modparam("dmq", "server_address", "sip:127.0.0.102:5060")
modparam("dmq", "notification_address", "sip:127.0.0.103:5060")
modparam("dmq", "multi_notify", 1)
modparam("dmq", "num_workers", 2)
modparam("dmq", "ping_interval", 15)

kamailio_third  127.0.0.103 notification_peer: 127.0.0.101
modparam("dmq", "server_address", "sip:127.0.0.103:5060")
modparam("dmq", "notification_address", "sip:127.0.0.101:5060")
modparam("dmq", "multi_notify", 1)
modparam("dmq", "num_workers", 2)
modparam("dmq", "ping_interval", 15)

kamcmd -s /var/run/kamailio_$1/kamailio_ctl dmq.list_nodes | grep -e host -e status -e last -e local | tr '\n' ' ' | sed -e 's/host/\n&/g'

show dmq bus: first	
host: 127.0.0.102 	status: 2 	last_notification: 0 	local: 0 	
host: 127.0.0.103 	status: 2 	last_notification: 0 	local: 0 	
host: 127.0.0.101 	status: 2 	last_notification: 0 	local: 1 
show dmq bus: second	
host: 127.0.0.101 	status: 2 	last_notification: 0 	local: 0 	
host: 127.0.0.103 	status: 2 	last_notification: 0 	local: 0 	
host: 127.0.0.102 	status: 2 	last_notification: 0 	local: 1 
show dmq bus: third	
host: 127.0.0.102 	status: 2 	last_notification: 0 	local: 0 	
host: 127.0.0.101 	status: 2 	last_notification: 0 	local: 0 	
host: 127.0.0.103 	status: 2 	last_notification: 0 	local: 1 
/etc/init.d/kamailio_first stop
/etc/init.d/kamailio_third stop

/etc/init.d/kamailio_third start
/etc/init.d/kamailio_first start

kamcmd -s /var/run/kamailio_$1/kamailio_ctl dmq.list_nodes | grep -e host -e status -e last -e local | tr '\n' ' ' | sed -e 's/host/\n&/g'

show dmq bus: first	
host: 127.0.0.103 	status: 2 	last_notification: 0 	local: 0 	
host: 127.0.0.101 	status: 2 	last_notification: 0 	local: 1 
show dmq bus: second	
host: 127.0.0.101 	status: 8 	last_notification: 0 	local: 0 	
host: 127.0.0.103 	status: 8 	last_notification: 0 	local: 0 	
host: 127.0.0.102 	status: 2 	last_notification: 0 	local: 1 
show dmq bus: third	
host: 127.0.0.101 	status: 2 	last_notification: 0 	local: 0 	
host: 127.0.0.103 	status: 2 	last_notification: 0 	local: 1 

The bus will remain broken, I think there is a second scenario that can break.

The notes I took when I found this (I consider this was a limitation not a bug)
Why : when Kamailio_third is shutting down, it will send a message to every peers telling them he is now inactive so they will not try to contact him again.
once restarted no nodes will contact him because they have an inactive state for him, at this point the only way he can learn about the other nodes is by contacting Kamailio_first, however Kamailio_first will not know about the other nodes.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.