My object: get the dialog-based CDRs
SIP proxy: kamailio-3.2.0
My script:
loadmodule "dialog.so" ...... modparam("dialog","dlg_flag",4)#Must be set to create the dialog associated to an initial request. modparam("dialog","db_url","mysql://xxx:xxx@localhost/albert") modparam("dialog","table_name","dialog") ....... request_route{ if( is_method("INVITE") && !has_totag()) { dlg_setflag(4); dlg_var(start_time)=$TS; dlg_var(caller)=$fU; dlg_var(caller)=$tU; } dlg_manage(); ...... # dispatch destinations to PSTN route(PSTN); # user location service route(LOCATION); route(RELAY); } ......... route[WITHINDLG] { if (has_totag()) { # sequential request withing a dialog should # take the path determined by record-routing if (loose_route()) { if (is_method("BYE")) { setflag(FLT_ACC); # do accounting ... setflag(FLT_ACCFAILED); # ... even if the transaction fails
sql_query("cd", "insert into cdr(caller,callee,start_time,duration) values($dlg_var(caller),$dlg_var(callee),$dlg_var(start_time),$DLG_lifetime)", "rd"); sql_result_free("rd"); } if (is_method("ACK")) { route(NATMANAGE); # ACK is forwarded statelessy } route(RELAY); } ........
My issue is :
The dialog records can be wrritten into the dialog table. But , the sql_query can not executed. So the cdr table will not get the CDRs. I don't know why. Who can help me ?
This is a simple script for testing.
Any suggestion will be appreciated.
Thank you in advance.
------------------ albert.gu