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(a)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(a)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:
1) 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)");
2) 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);
3) 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(a)lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users