[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