Hello,
uac module provides a new function that allow sending sip requests from configuration file: - uac_send_req() http://kamailio.org/docs/modules/devel/uac.html#id2467912
It opens the door for a new bunch of things you can do now. I can think of now: 1) send IM alerts on special events
route { $uac_req(method)="MESSAGE"; $uac_req(ruri)="sip:alert@kamailio.org"; $uac_req(furi)="sip:server@kamailio.org"; $uac_req(hdrs)="Content-Type: text/plain\r\n"; $uac_req(body)="SIP request from:" + $si + ":" + $sp; uac_send_req(); }
2) turn lamps on for some sip phones on some events - e.g., snom: http://wiki.snom.com/Features/LED_Remote_Control
3) talk server-to-server - here one example can be building a platform with a central server for accounting
Accounting is done at 200ok. So each routing server will build a csv list (time,callid, from tag, to tag, invite from uri, invite r-uri):
onreply_route[1] { if(status!="200") return; $uac_req(method)="ACCOUNTING"; $uac_req(ruri)="sip:store@accounting.kamailio.org"; $uac_req(furi)="sip:server@server1.kamailio.org"; $uac_req(hdrs)="Content-Type: text/accounting-csv\r\n"; pv_printf($uac_req(body), "$TS,$ci,$ft,$tt,$T_req($fu),$T_req($ru)"); uac_send_req(); }
note that $T_req() is given by tm module, also with Kamailio trunk: http://www.kamailio.org/dokuwiki/doku.php/pseudovariables:devel#tm_module_ps...
The accounting server:
route{ # you should check the source IP also if(method=="ACCOUNTING" && $rU="store") { sql_query("ca", "insert into accounting(timeval,callid,ftag,ttag,src,dst) values ('$(rb{s.select,0,,})','$(rb{s.select,1,,})', ...)", "ra"); send_reply("200", "Stored"); } }
... and put your imagination work ... there are plenty of new and cute features you can add on your service with this functionality ...
Cheers, Daniel