[SR-Users] Diversion Header - relay messed up

Roman Dissauer roman at dissauer.net
Tue Jan 31 18:25:00 CET 2017


Just tried, but it doesn’t help.

request_route {

        if $di == $null {
                xlog("L_INFO","[$fU@$si:$sp]{$rm} Incomeing Request...\n");
        } else {
                xlog("L_INFO","[$fU@$si:$sp]{$rm} Incomeing Request... with Diversion Header: $di, Request URI: $ru\n");
                remove_hf("Diversion");
                if (msg_apply_changes()) {
                        if (is_present_hf("Diversion")) {
                                xlog("L_INFO","[$fU@$si:$sp]{$rm} This damn header is still there!!\n");
                        }
                }
        }
	…

INFO: <script>: [+43987654321 at y.y.y.y:5060]{INVITE} Incomeing Request... with Diversion Header: sip:+436761234567 at y.y.y.y:5060, Request URI: sip:+43123456789 at x.x.x.x:5060
INFO: <script>: [+43987654321 at y.y.y.y:5060]{INVITE} Diversion header: <null>
INFO: <script>: [+43987654321 at y.y.y.y:5060]{INVITE} Routing Call to FreeSWITCH sip:10.23.101.11:5060
INFO: <script>: [+43987654321 at y.y.y.y:5060]{INVITE} Relay request…

Call is being received, Diversion Header is deleted, in RELAY route I print Diversion header (there it is null).
When I call t_relay() I still get wrong INVITE:

INVITE sip:436761234567 at x.x.x.x:5060 SIP/2.0
From: <sip:+43987654321 at y.y.y.y>;tag=gK04715d90
To: <sip:436766369520 at x.x.x.x>

seems that $tu is taken instead of $ru when doing t_relay()
Diversion Header has e164 with leading + and to Header has just e164.

Thanks,
Roman


> Am 30.01.2017 um 14:45 schrieb Daniel Tryba <d.tryba at pocos.nl>:
> 
> On Sun, Jan 29, 2017 at 06:42:23PM +0100, Roman Dissauer wrote:
>> When I get an INVITE with Diversion Header the Request is forwarded
>> without Diversion Header and the Request User is taken from Diversion
>> User.  Problem is that on the Destination Host I cannot get original
>> Request User what is the intended destination!  Is this intended
>> behaviour? How can I change this behaviour?
>> 
>> I already tried to delete the Diversion Header on request_route but
>> this didn’t change the behaviour.
> 
>> INVITE sip:+43123456789 at x.x.x.x:5060 SIP/2.0.
>> From: <sip:+43987654321 at y.y.y.y>;tag=gK022ac5cb.
>> To: <sip:436761234567 at x.x.x.x>.
>> Diversion: <sip:+436761234567 at y.y.y.y:5060>;privacy=full;screen=no; reason=unconditional; counter=1.
> 
>> INVITE sip:436761234567 at x.x.x.x:5060 SIP/2.0.
>> From: <sip:+43987654321 at y.y.y.y>;tag=gK022ac5cb.
>> To: <sip:436761234567 at x.x.x.x>.
> 
> This behavior is AFAIK not something that kamailio does out of the box
> and is just plain wrong (since the Diversion indicates the source of a
> forward/deflection). Maybe somebody made a typo to set $ru to $di
> instead of $du :)
> 
> What may work is calling msg_apply_changes after the delete:
> http://www.kamailio.org/docs/modules/stable/modules/textopsx.html#textopsx.f.msg_apply_changes
> 
> 
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users





More information about the sr-users mailing list