[SR-Users] Bug in uac_replace_from if used more than once?

Daniel-Constantin Mierla miconda at gmail.com
Tue Dec 18 09:21:24 CET 2012


Hello,

you have to use it only once -- this is due to how the changes are done 
to the sip message headers, but also because of adding a special 
parameter to record-route header. It is its well known behavior since 
more than 10 years ago.

Wait until you know what is the final version of the header that should 
be sent out and then change it. Before that, you can keep it in a config 
variable that can be overwritten easily.

Cheers,
Daniel

On 12/17/12 6:29 PM, Daniel Tryba wrote:
> Apparantly it should be simple to mangle the From in request:
> http://kamailio.org/docs/modules/stable/modules_k/uac.html#id2525538
>
> The task at hand is use the prefix 131 to suppress callerid for this call:
>
> if($rU=~"^131[0-9]+$")
> {
>   strip(3);
>   append_hf("Privacy: id\r\n");
>   uac_replace_from("anonymous","sip:anonymous at anonymous.invalid:$rp");
>   uac_replace_to("","sip:$rU@$rd");
> }
>
> Just before this replace there is an other uac_replace_from to rewrite an
> alphanumeric username to the default callerid for that device. If there are 2
> uac_replace_from in the path, things go wrong like below. A uac_restore_from()
> before the second uac_replace_from doesn't change this behavior.
>
> device calls 1310123456789:
>
> U 10.0.34.226:1300 -> 10.0.35.226:5060
> INVITE sip:1310123456789 at kamailio.local:5060 SIP/2.0.
> From: <sip:anonymous at 10.0.3.44:5060>;tag=26e5ce5850.
> To: <sip:1310123456789 at kamailio.local:5060>.
>
> Kamailio forwards request to dispatcher but fails to properly replace the from
> uri:
>
> U 10.0.35.226:5060 -> 10.0.32.36:5060
> INVITE sip:+31123456789 at kamailio.local:5060 SIP/2.0.
> From: "anonymous" <sip:
> +31987654321 at 10.0.3.44:5060sip:anonymous at anonymous.invalid:5060>;tag=26e5ce5850.
> To: <sip:0123456789 at kamailio.local>.
>
> Even though the debug log suggests it did the proper replacement:
>
> uac [replace.c:265]: value to store is is '<sip:anonymous at 10.0.3.44:5060>' and
> len is '30'
> uac [replace.c:268]: Storing in FROM-AVP (for use in reply):
> '<sip:anonymous at 10.0.3.44:5060>' with len '30'
> uac [replace.c:324]: uri to replace [sip:anonymous at 10.0.3.44:5060]
> uac [replace.c:325]: replacement uri is [sip:anonymous at anonymous.invalid:5060]
> uac [replace.c:383]: encode
> is=<AAAAAAAAAAAAAAAAAABQXkFeV15BQUcUXF5AUWxpZDo1MDYw> len=48
> uac [replace.c:265]: value to store is is
> '<sip:1310619024127 at kamailio.local:5060>' and len is '54'
> uac [replace.c:271]: Storing in TO-AVP (for use in reply):
> '<sip:1310123456789 at kamailio.local:5060>' with len '54'
> uac [replace.c:324]: uri to replace [sip:1310123456789 at kamailio.local:5060]
> uac [replace.c:325]: replacement uri is [sip:0123456789 at kamailio.local]
> uac [replace.c:383]: encode
> is=<AAAAAAEFAAkGAw0BAANxQlYuERJDCRxeHAoXWgYRXRdbAxtNHxwNCgdACxgubmw6NTA2MA-->
> len=72
>
> Kamailio version: kamailio 3.3.2 (x86_64/linux)
> (the latest stable debian/squeeze package).
>

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda




More information about the sr-users mailing list