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).
--
Daniel-Constantin Mierla
*
http://www.asipto.com/