Kamailio allows the use of an interface name (eth0 for example), as the identifier for the
listen directive. Additionally it allows assignment of a name to be used as an
identifier. This can be used, as indicated in the documentation:
A unique name can be set for sockets to simplify the selection of the socket for sending
out. For example, the rr and path modules can use the socket name to advertise it in
header URI parameter and use it as a shortcut to select the corresponding socket for
routing subsequent requests.
I'm wondering if there is a way to get allow either of these parameters to be used to
define DMQ's server_socket parameter. This would be useful in containerization
situations where the local IP address is assigned dynamically. Here's what I'm
attempting:
#!KAMAILIO
loadmodule "tm"
loadmodule "sl"
loadmodule "dmq"
loadmodule "textops"
listen=udp:eth0:5060 name "sip5060"
listen=udp:eth0:5090 name "sip5090"
modparam("dmq", "server_address", "sip:dmq_quicktest:5090")
modparam("dmq", "notification_address", "sip:dmq-bus:5090")
modparam("dmq", "server_socket", "sip5090" )
## Above line doesn't work, neither does the line below:
#modparam("dmq", "server_socket", "udp:eth0:5090" )
modparam("dmq", "multi_notify", 1)
modparam("dmq", "num_workers", 3)
modparam("dmq", "ping_interval", 30)
request_route {
exit;
}
I get the following error during startup:
0(1) ERROR: dmq [dmq.c:241]: mod_init(): server_uri is not a socket the proxy is listening
on
Thoughts? I realize that I can configure and pass static networking with the containers,
but I'm looking for a way to have this set on the fly - especially when testing, etc.
Ben Kaufman