[SR-Users] [Kamailio-Users] Rewrite $tU

Spinov Evgeniy spinov_evgeniy at intalisan.com
Fri Feb 11 14:51:45 CET 2011


>Hello,

>with the latest version there are alternatives you can use:

>> On 12/10/09 5:06 PM, David wrote:
>> Hey,
>>
>> I won't pretend to be an expert in Kamailio, someone will probably 
>> suggest a better way. But here is how I rewrote my SIP packet's TO 
>> header before relaying it to the next hop :
>>
>> # Rewrite RURI
>> avp_printf("$rU", "prefix_$rU");

>$rU = "prefix_" + $rU;

>>
>> # Remove existing header
>> remove_hf("To") ;
>>
>> # Add new header which is copied from RURI
>> insert_hf("To: $ru\r\n", "From");

>you can do in one step, so you avoid operations on r-uri:

>insert_hf("To: sip:prefix_$rU@$rd\r\n", "From");

>>
>>
>> DISCLAIMER : Several threads have said that changing the TO header
is 
>>a bad idea, so I only recommend using this as a last resort.

>If devices are RFC3261 (SIP 2.0), then it is ok. If there are SIP 1.0 
>devices, then you have to preserve To/From header.

>For the future, I would add options to change the From/To values via 
>pseudo-variables. It is the admin to decide to use it or not -- now 
>people need and do workarounds with subst or append_hf().

>Cheers,
>Daniel

I use Kamailio 3.0.3, and tried to use both of methods, i.e. insert_ft()
and reassigning pseudo variable $rU and all mentioned in this topic.
However, handle_subscribe() and dlg_manage() somewhy uses unmodified
packet.

Is there any workaround to handle $rU or $tU overwrites that for
pua_dialoginfo module? 

I'm doing it like that:

        $var(orig_uri) = $rU;
        $rU = $(fU{re.subst,/(.*)_(.*)/\1/}) + "_" + $rU;
        if (is_method("INVITE")) {
		dlg_manage();
        }                                                                                                                                                             
        if (is_method("SUBSCRIBE")) {
		handle_subscribe();
        }                                                                                                                                                    
        $rU = $var(orig_uri);

However, according to debug messages, NOTIFY's which are coming just
after INVITE are still without prefixes, but packets on Asterisk, which
is after Kamailio, are coming modified.

Please, advice.

>
> David
>
>
>
>
>
> David a écrit :
>> Hey,
>>
>> I do understand that normally the TO header should not be written, my
>> problem is that I am using the presence_dialoginfo module which uses
the
>> TO header and not the RURI, which means that in order to tell the
>> difference between customer A's extension 101 and Customer B's
extension
>> 101, I rewrite the TO header to add context.
>>
>> This is actually the ame problem that I started discussing here :
>> http://lists.kamailio.org/pipermail/users/2009-August/024316.html
>>
>> Trouble is I have not had time to work on this since then.
>>
>> Thanks,
>>
>> David
>>
>> Olle E. Johansson a écrit :
>>> 10 dec 2009 kl. 15.04 skrev Iñaki Baz Castillo:
>>>
>>>
>>>> El Jueves, 10 de Diciembre de 2009, David escribió:
>>>>> Hey,
>>>>>
>>>>> I need to rewrite the $tU variable on a packet before it is 
>>>>> relayed. It
>>>>> is ok if the change is only on the relayed packet and the $tU 
>>>>> variable
>>>>> change. The important thing is that I modify the To header, it
seems
>>>>> that rewritting $tU would be the easiest.
>>>> $tU is not writable, but just readable.
>>>> If you want to change the "To" header you should do some "dirty" 
>>>> replacing operation (see textops module).
>>>
>>> This is propably something we need to change and make the To and 
>>> From headers writable.
>>> It's not dirty to change them any more.
>>>
>>> David: In the original SIP 1.0 protocol the To/From headers was
part 
>>> of the dialog identification, thus you where not allowed to change 
>>> them in a proxy. THis was kept in RFC3261 - sip v2 - but has been 
>>> removed in an additional RFC a short while ago (seen from SIP
history).
>>>
>>> Regards,
>>> /O
>>> _______________________________________________
>>> Kamailio (OpenSER) - Users mailing list
>>> Users at lists.kamailio.org
>>> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>>> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>>
>>
>>
>> _______________________________________________
>> Kamailio (OpenSER) - Users mailing list
>> Users at lists.kamailio.org
>> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>
>
> _______________________________________________
> Kamailio (OpenSER) - Users mailing list
> Users at lists.kamailio.org
> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
>

-- 
Daniel-Constantin Mierla
* http://www.asipto.com/




More information about the sr-users mailing list