Hi,
Your radius doesn't know about sip dictionary. Include it in freeradius configuration and should solve your issues.
Dani
The easy way is to say it can not be done!
mbsip wrote:
Hi,
I am struggling with kamailio and radius configuration to achieve proper Call duration notification. Here is what i have:
- kamailio 1.6
- radiusclient-ng
- freeradius on different server
Kamailio configuration has following radius-extra:
modparam("acc", "radius_extra", "User-Name=$Au; \ Calling-Station-Id=$from; \ Called-Station-Id=$to; \ Sip-Translated-Request-URI=$ruri; \ Sip-RPid=$avp(s:rpid); \ Source-IP=$si; \ Source-Port=$sp; \ Canonical-URI=$avp(s:can_uri); \ Billing-Party=$avp(s:billing_party); \ Divert-Reason=$avp(s:divert_reason); \ X-RTP-Stat=$hdr(X-RTP-Stat); \ Contact=$hdr(contact); \ Event=$hdr(event); \ SIP-Proxy-IP=$avp(s:sip_proxy_ip); \ ENUM-TLD=$avp(s:enum_tld)")
which produce following radius data START and STOP:
Mon Nov 23 16:26:38 2009 Acct-Status-Type = Start Service-Type = IAPP-Register Sip-Response-Code = 200 Sip-Method = Invite Event-Timestamp = 1258990835 Sip-From-Tag = "c3716c01" Sip-To-Tag = "11544D08-C80" Acct-Session-Id = "Nzg5MmZlMDNkMGUwODgwN2ZkZWZkMmQ3NzYwYzNkNWY." User-Name = "Mac@xx.yy.zz.vv" Calling-Station-Id = "sip:Mac@xx.yy.zz.vv" Called-Station-Id = "sip:123456789@xx.yy.zz.vv" Sip-Translated-Request-URI = "sip:123456789@aa.bb.cc.dd" X-Ascend-Send-Secret = 0x3135372e32352e3139322e32 X-Ascend-Receive-Secret = 0x3a7c X-Ascend-Netware-timeout = 0x3c7369703a4d616369656a403139322e3136382e332e3132353a36323034323e NAS-Port = 5060 Acct-Delay-Time = 0 NAS-IP-Address = xx.yy.zz.vv Client-IP-Address = xx.yy.zz.vv Acct-Unique-Session-Id = "a62f94528d34acfe" Timestamp = 1258989998
Mon Nov 23 16:26:38 2009 Acct-Status-Type = Stop Service-Type = IAPP-Register Sip-Response-Code = 200 Sip-Method = 8 Event-Timestamp = 1258990836 Sip-From-Tag = "c3716c01" Sip-To-Tag = "11544D08-C80" Acct-Session-Id = "Nzg5MmZlMDNkMGUwODgwN2ZkZWZkMmQ3NzYwYzNkNWY." User-Name = "Mac@xx.yy.zz.vv" Calling-Station-Id = "sip:Mac@xx.yy.zz.vv" Called-Station-Id = "sip:123456789@xx.yy.zz.vv" Sip-Translated-Request-URI = "sip:123456789@aa.bb.cc.dd:5060" X-Ascend-Send-Secret = 0x3135372e32352e3139322e32 X-Ascend-Receive-Secret = 0x3a7c X-Ascend-Netware-timeout = 0x3c7369703a4d616369656a403139322e3136382e332e3132353a36323034323e NAS-Port = 5060 Acct-Delay-Time = 0 NAS-IP-Address = xx.yy.zz.vv Client-IP-Address = xx.yy.zz.vv Acct-Unique-Session-Id = "a62f94528d34acfe" Timestamp = 1258989998
The task is to upload all stored radius messages into MYSQL with proper call duration info. I've ran through many posts and found a few way-outs:
to use AVPOPS module: modparam("acc", "radius_extra", "Acct-Session-Time=$avp(call_length)") modparam( "avpops", "avp_aliases", "start_timestamp=i:100") modparam( "avpops", "avp_aliases", "end_timestamp=i:101") modparam( "avpops", "avp_aliases", "call_length=i:102")
avp_op("$avp(end_timestamp)","sub/$avp(start_timestamp)"); avp_op("$avp(end_timestamp)/$avp(call_length)","sub/$avp(start_timestamp)");
to use DIALOG module
modparam("acc", "radius_config", "/usr/local/etc/radiusclient-ng/radiusclient.conf") modparam("acc", "radius_flag", 1) modparam("acc", "radius_extra", "Acct-Session-Time=$avp(i:921)")
if (is_method("BYE")) { xlog("L_INFO", "dialog_status:$DLG_status
duration=$DLG_lifetime\n"); $avp(i:921) = $DLG_lifetime{s.int}; } else { $avp(i:921) = 0; } setflag(1);
- to use a script or db triggers(after STOP).
Could you advice which one is better/work properly. Maybe there are any other configuration i could use.
Thanks in advance, Maciej
Kamailio (OpenSER) - Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users