[OpenSER-Users] OpenSER prepaid CDRTool 6.2.3 problem with replacing '+' with '00'

Marc LEURENT lftsy at leurent.eu
Mon Mar 3 16:54:55 CET 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

RealTime billing is ok, but after there is still '+' in radacct table in Canonical-URI and called-Station, so when CDRTool Normalize the radacct table
avery 5 minutes, CDRTool failed to calculate the price!

The strip / prefix functions replace correctly the URI field, but it doesn't change the Canonical-URI,
I have tried to change the Canonical-URI with $ai, but it doesn't work
Is is possible to stip char in avp??

Have a nice afternoon

Iñaki Baz Castillo a écrit :
> El Monday 03 March 2008 12:46:04 Marc LEURENT escribió:
>> Hello
>> I have trouble with number dialed starting with +
>> CDRTool doesn' understand it.
> 
> Yes, I revised the PHP code and it's not possible to set "+" as international 
> prefix, just numbers :(
> 
> 
>> So I have to strip it from the request and replace it by 00!
>> The problem is that even using this at the begenning of OpenSER script,
>> it's not working (see CDRTool log below)
>>
>> Any idea how to solve it?
>> Thanks
>>
>>         # normalization to e164
>>         if($ruri.user =~ "^\+[1-9][0-9]+") {
>>                 xlog("STRIPING + For e164 NORMALIZATION \r\n");
>>                 strip(1);
>>                 prefix("00");
>>                 subst('/^To:(.*)sip:\+(.*)$/To:\1sip:00\2/ig');
>>         };
> 
> Please, don't change the "To", it's not necessary at all !
> 
> 
>> OpenSER config extract:
>>
>> # ATTENTION: DO NOT PUT ; at the end of the radius_extra attribute
>> modparam("acc", "radius_extra", "
>>                                 Called-Station-Id=$tu;
>>                                 Calling-Station-Id=$fu;
>>                                 Canonical-URI=$avp(to_destination);
>>                                 User-Name=$avp(user_name);
>>                                 Billing-Party=$avp(billing_party);
>>                                 Sip-User-Realm=$ar;
>>                                 SIP-Proxy-IP=$Ri;
>>                                 Source-IP=$si;
>>                                 Source-Port=$sp;
>>                                 Acct-Authentic=$avp(s:authentic);
>>                                 From-Header=$hdr(from);
>>                                 User-Agent=$hdr(user-agent);
>>                                 Contact=$hdr(contact);
>>                                 Event=$hdr(event)")
>>
>>
>>
>>         # Set the acc flags
>>         xlog("JUSTE BEFORE SETTING FLAGS FOR RADIUS\r\n");
>>         if(is_method("INVITE") && !has_totag()) {
>>                 xlog("L_INFO", "I AM SETTING THE FLAGS FOR RADIUS \r\n");
>> #               $avp(s:authentic) = 1;
>> #               $avp(can_uri) = $ru;            # SIP Request's URI
>>                 $avp(user_name) = $au + "@" + $ar;
>>                 $avp(billing_party) = $au + "@" + $ar;
>>                 $avp(to_destination) = $tu;
>>                 xlog("SETTING FLAGS 1 FOR RADIUS \r\n");
>>                 setflag(1);             # radius_flag
>>                 xlog("SETTING FLAGS 2 FOR RADIUS \r\n");
>>                 setflag(2);             # radius_missed_flag
>>         };
> 
> CDRTool looks for the Canonical-URI radius attribute, and you don't set it.
> Note that in "radius_extra" you set "Canonical-URI=$avp(to_destination)", so 
> add this after RURI transformation ("+" -> "00").
> 
>   $avp(to_destination) = $ru;
> 
> Just it.
> 
> 
> ;)
> 
> 
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHzB9PrxOjjFYWQtoRAkXQAJwPs+CMWesf9bmtH6vyOdoa0MJRsgCePguJ
KnY06BtvklCzJOvL9CIvXjI=
=JQGg
-----END PGP SIGNATURE-----




More information about the Users mailing list