Wednesday, October 15, 2014

Kamailio 4.2 Tips: #3 - Send arbitrary data packet from config

Ever needed to send a custom 'notification' when some event happened while routing SIP packets?

UAC module provided for many releases the mechanism of sending new SIP requests at any point in configuration file, but sometimes SIP headers can be unnecessary overhead (but of course, that is balanced by all the other benefits of SIP, like flexible routing, re-using Kamailio as receiver, a.s.o.).

Anyhow, for simplified needs and not only, with version 4.2.0, corex module introduces send_data(uri, content) config function. The URI is still a SIP address, allowing in this way to choose any of supported transport layers (UDP, TCP, TLS or SCTP). The content, while is limited to text format if specified in config file, can be structured the way it fits the best (e.g., xml, json, line-oriented).

Here are some examples:

send_data("sip:myserver.com:4545;transport=sctp",
      "{\"caller\":\"$fU\",\"callee\":\"$rU\",\"time\":$Ts}");

send_data("sip:myserver.com:4545", "$fU,$rU,");

send_data("sip:1.2.3.4:4545;transport=tcp",
      "Caller: $fU\nCallee: $rU\nTime: $ts\n\n");

Enjoy it!

No comments:

Post a Comment