[asterisk-bugs] [JIRA] (ASTERISK-25666) chan_sip: Path header is ignored

Slava Bendersky (JIRA) noreply at issues.asterisk.org
Sat Jul 14 21:21:54 CDT 2018


    [ https://issues.asterisk.org/jira/browse/ASTERISK-25666?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=244111#comment-244111 ] 

Slava Bendersky commented on ASTERISK-25666:
--------------------------------------------

Same issue is happening for PJSIP stack where INVITE not honoring Path header and adding Route header to it. That cause send call to wrong directions. That quite critical  issue
Tested on asterisk version 15.03.

````
<--- Transmitting SIP request (560 bytes) to UDP:10.30.100.41:5060 --->
OPTIONS sip:101-1033 at 192.168.1.150:54642;transport=tls;rinstance=13DAEF9D SIP/2.0
Via: SIP/2.0/UDP 10.30.100.27:5080;rport;branch=z9hG4bKPj99e2c53c-e091-46b1-80bc-894e989cf727
From: <sip:101-1033 at 10.30.100.27>;tag=31e196f7-7997-4bc1-ab3b-1013c5f33811
To: <sip:101-1033 at 192.168.1.150;rinstance=13DAEF9D>
Contact: <sip:101-1033 at 10.30.100.27:5080>
Call-ID: 4d4146b5-a0ce-4057-9d52-dc3ef3d4a526
CSeq: 1826 OPTIONS
Supported: path
Route: <sip:101-1033 at 10.30.100.41;transport=udp;lr>                  ---> Follow PATH header ( correct )
Max-Forwards: 70
User-Agent: Asterisk PBX 15.3.0
Content-Length:  0


<--- Transmitting SIP request (967 bytes) to UDP:192.168.1.150:55089 --->
INVITE sip:101-1033 at 192.168.1.150:55089;transport=tls;rinstance=13DAEF9D SIP/2.0
Via: SIP/2.0/UDP 10.30.100.27:5080;rport;branch=z9hG4bKPj90c1d0eb-a580-407d-add1-fe167790b687
From: "4039143" <sip:4039143 at 10.30.100.27>;tag=da646822-7ac1-48de-88a9-8efb44ab5a60
To: <sip:101-1033 at 192.168.1.150;rinstance=13DAEF9D>
Contact: <sip:asterisk at 10.30.100.27:5080>
Call-ID: f1be92ad-f51d-43ec-ada3-7064cb1bf513
CSeq: 30947 INVITE
Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, REGISTER, MESSAGE, REFER
Supported: 100rel, timer, replaces, norefersub, path
Session-Expires: 1800
Min-SE: 90
Max-Forwards: 70
User-Agent: Asterisk PBX 15.3.0
Content-Type: application/sdp
Content-Length:   235

v=0
o=- 779031891 779031891 IN IP4 10.30.100.27
s=Asterisk
c=IN IP4 10.30.100.27
t=0 0
m=audio 14202 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=maxptime:150
a=sendrecv

````

> chan_sip: Path header is ignored
> --------------------------------
>
>                 Key: ASTERISK-25666
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25666
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/Interoperability
>    Affects Versions: 13.6.0
>         Environment: Debian Jesse
>            Reporter: Peter Baines
>
> I am adding a Path header before forwarding a REGISTER onto asterisk. The problem is when asterisk recieves an INVITE it does not use the value set in the Path header, instead it sends it directly to the device.
> I can replicate this on asterisk 13.6.0 and 11.13.1, however in 1.8.32.3 it works as expected (i.e. the INVITE is sent to the value set in the Path header).
> To replicate:
> In sip.conf I have uncommented:
> {noformat}
> supportpath=yes
> rtsavepath=yes
> {noformat}
> In users.conf I have got:
> {noformat}
> [6000]
> secret =
> host=dynamic
> context = default
> [6001]
> secret =
> host=dynamic
> context = default
> [6002]
> secret =
> host=dynamic
> context = default
> {noformat}
> In extensions.conf I have made default look like:
> {noformat}
> [default]
> ;include => demo
> exten => 6000,1,Dial(SIP/6000,18)
> exten => 6000,n,Hangup()
> exten => 6002,1,Dial(SIP/6002,18)
> exten => 6002,n,Hangup()
> exten => 6001,1,Dial(SIP/6001,18)
> exten => 6001,n,Hangup()
> {noformat}
> Below is the 6000 user REGISTER going from opensips (10.15.20.137:5060) into asterisk (192.168.68.68:5070) with the Path header.
> {noformat}
> U 2016/01/06 10:04:23.399170 10.15.20.137:5060 -> 192.168.68.68:5070
> REGISTER sip:10.15.20.137 SIP/2.0.
> Via: SIP/2.0/UDP 10.15.20.137:5060;branch=z9hG4bKcc2c.b40fb511.0.
> Via: SIP/2.0/UDP 10.15.20.53:52666;received=10.15.20.53;branch=z9hG4bK-d8754z-91422161f08a7943-1---d8754z-;rport=52666.
> Max-Forwards: 69.
> Contact: <sip:6000 at 10.15.20.53:52666;rinstance=d4284982f7c18786>.
> To: <sip:6000 at 10.15.20.137>.
> From: <sip:6000 at 10.15.20.137>;tag=9e95da50.
> Call-ID: OTQ1ZTdmZmE3OTM1ZWVkYzMzYWZiMDMzMDgyODhmOTU.
> CSeq: 2 REGISTER.
> Expires: 3600.
> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO.
> User-Agent: Bria 3 release 3.5.5 stamp 71243.
> Content-Length: 0.
> Path: <sip:10.15.20.137;lr>.
> {noformat}
> Below is the INVITE going from opensips to asterisk for 6000
> {noformat}
> U 2016/01/06 10:11:13.668929 10.15.20.137:5060 -> 192.168.68.68:5070
> INVITE sip:6000 at 10.15.20.137;transport=UDP SIP/2.0.
> Record-Route: <sip:10.15.20.137;lr;nat=yes>.
> Via: SIP/2.0/UDP 10.15.20.137:5060;branch=z9hG4bK8f77.9d6ef7e7.0.
> Via: SIP/2.0/UDP 188.39.51.2:35631;rport=35631;received=10.15.20.53;branch=z9hG4bK-d8754z-d46f3a0333dc5d49-1---d8754z-.
> Max-Forwards: 69.
> Contact: <sip:6001 at 10.15.20.53:35631;transport=UDP>.
> To: <sip:6000 at 10.15.20.137;transport=UDP>.
> From: <sip:6001 at 10.15.20.137;transport=UDP>;tag=870fdf72.
> Call-ID: YWVjN2VjMDZmYmZmNjg4MTE2MzJlZGU1ZDNjZGU2NDc..
> CSeq: 2 INVITE.
> Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, SUBSCRIBE.
> Content-Type: application/sdp.
> Supported: replaces, norefersub, extended-refer, timer, X-cisco-serviceuri.
> User-Agent: Z 3.3.21933 r21903.
> Allow-Events: presence, kpml.
> Content-Length: 237.
> .
> v=0.
> o=Z 0 0 IN IP4 188.39.51.2.
> s=Z.
> c=IN IP4 188.39.51.2.
> t=0 0.
> m=audio 8000 RTP/AVP 3 110 8 0 98 101.
> a=rtpmap:110 speex/8000.
> a=rtpmap:98 iLBC/8000.
> a=fmtp:98 mode=20.
> a=rtpmap:101 telephone-event/8000.
> a=fmtp:101 0-15.
> a=sendrecv.
> {noformat}
> I would now expect asterisk to send the INVITE to the value of the Path header in the registration (10.15.20.137:5060) however it is sending the INVITE directly to the device (10.15.20.53:52666):
> {noformat}
> U 2016/01/06 10:11:13.671345 192.168.68.68:5070 -> 10.15.20.53:52666
> INVITE sip:6000 at 10.15.20.53:52666;rinstance=d4284982f7c18786 SIP/2.0.
> Via: SIP/2.0/UDP 192.168.68.68:5070;branch=z9hG4bK308a4ef5;rport.
> Max-Forwards: 70.
> Route: <sip:10.15.20.137;lr>.
> From: "New User" <sip:6001 at 192.168.68.68:5070>;tag=as3daea415.
> To: <sip:6000 at 10.15.20.53:52666;rinstance=d4284982f7c18786>.
> Contact: <sip:6001 at 192.168.68.68:5070>.
> Call-ID: 55202bc71f9e684d0b82c7cb2e8684ab at 192.168.68.68:5070.
> CSeq: 102 INVITE.
> User-Agent: Asterisk PBX 13.6.0.
> Date: Wed, 06 Jan 2016 10:11:13 GMT.
> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE.
> Supported: replaces, timer, path.
> Content-Type: application/sdp.
> Content-Length: 286.
> .
> v=0.
> o=root 887525354 887525354 IN IP4 192.168.68.68.
> s=Asterisk PBX 13.6.0.
> c=IN IP4 192.168.68.68.
> t=0 0.
> m=audio 12356 RTP/AVP 0 8 3 101.
> a=rtpmap:0 PCMU/8000.
> a=rtpmap:8 PCMA/8000.
> a=rtpmap:3 GSM/8000.
> a=rtpmap:101 telephone-event/8000.
> a=fmtp:101 0-16.
> a=maxptime:150.
> a=sendrecv.
> {noformat}
> Let me know if you require any further information / traces.
> Regards,
> Peter



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list