[Kamailio-Devel] new feature: send sip requests from config file
Daniel-Constantin Mierla
miconda at gmail.com
Fri Jan 16 13:17:25 CET 2009
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 at kamailio.org";
$uac_req(furi)="sip:server at 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 at accounting.kamailio.org";
$uac_req(furi)="sip:server at 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_pseudo-variables
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
--
Daniel-Constantin Mierla
http://www.asipto.com
More information about the Devel
mailing list