On lun, 2015-02-02 at 17:54 +0000, Charles Chance wrote:
Hi,
Can you send the output of "kamcmd dmq.list_nodes" (mask IP addresses
if needed)?
proxy2:/etc/kamailio# kamcmd dmq.list_nodes
{
host: 10.0.0.3
port: 5060
resolved_ip: 10.0.0.3
status: 2
last_notification: 0
local: 0
}
{
host: 10.0.0.1
port: 5060
resolved_ip: 10.0.0.1
status: 2
last_notification: 0
local: 0
}
{
host:
dmq.my.domain.net
port:
resolved_ip: 0.0.0.0
status: 2
last_notification: 0
local: 0
}
{
host: 10.0.0.2
port: 5060
resolved_ip: 10.0.0.2
status: 8
last_notification: 0
local: 1
}
dmq.my.domain.net resolves to 10.0.0.2 which is proxy2. What I'm
effectively trying to do with DNS is to avoid having a static entry in
configuration file as notification address. I'd like to build a dynamic
list of notification servers via SRV records and have DMQ honor the
priority and weight of such list.
I will try to replicate your scenario and come back with a solution
shortly.
By the way, your dmq "notification_address" parameter looks slightly
odd (although I don't know what you're doing with DNS) - it should
simply point to one other node in the cluster, so that on startup it
can request information about any other nodes from this one. Also, in
the block which calls dmq_handle_message(), you should exit straight
away after.
Fixed.
One final note, you should really listen on a separate port for dmq
purposes (e.g. 5080) and restrict access to it at firewall level. You
can then check in config that the message was received on this port,
like:
if (method == "KDMQ" && $Rp == 5080) {
dmq_handle_message();
exit;
}
Tnx, I will do that. Now I'm just running in a lab.
Thanks!
- leonardo