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

Yury Kirsanov (JIRA) noreply at issues.asterisk.org
Wed Jun 8 03:50:51 CDT 2022


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

Yury Kirsanov commented on ASTERISK-25666:
------------------------------------------

Hi,
Same issue with Asterisk 18.7.0 and 18.12.1, when dialing to SIP trunk Asterisk ignores PATH header and sends INVITE directly to the contact. I'm not using PJSIP_DIAL_CONTACTS, I was doing:

exten => n,1,Dial(PJSIP/1008 at T273842,30)

No Route: headers were added and request went straight to Contact's R-URI.

[Jun 8 18:31:43] – Executing [s at sip-trunk-844-151:7] Dial("PJSIP/792543-00000045", "PJSIP/1008 at T273842,30") in new stack
[Jun 8 18:31:43] – Called PJSIP/1008 at T273842
[Jun 8 18:31:43] == Using SIP RTP Audio TOS bits 184
[Jun 8 18:31:43] == Using SIP RTP Audio TOS bits 184 in TCLASS field.
[Jun 8 18:31:43] == Using SIP RTP Audio CoS mark 5
[Jun 8 18:31:43] <--- Transmitting SIP request (1061 bytes) to TCP:185.97.201.93:3766 --->
[Jun 8 18:31:43] INVITE sip:1008 at 185.97.201.93:3766;transport=TCP;rinstance=97f9c0e29d88ed2e SIP/2.0
[Jun 8 18:31:43] Via: SIP/2.0/TCP 103.242.182.172:7060;rport;branch=z9hG4bKPja75858f5-3c01-4270-a281-6d321d12af76;alias
[Jun 8 18:31:43] From: "3" <sip:1006 at 103.242.182.172>;tag=caca7af2-f20b-4a67-a929-c0cb56dd5cbc
[Jun 8 18:31:43] To: <sip:1008 at 185.97.201.93;rinstance=97f9c0e29d88ed2e>
[Jun 8 18:31:43] Contact: <sip:asterisk at 103.242.182.172:7060;transport=TCP>
[Jun 8 18:31:43] Call-ID: 2acded7f-d758-4149-9f90-8cae79a5fec8
[Jun 8 18:31:43] CSeq: 5950 INVITE
[Jun 8 18:31:43] Allow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, MESSAGE, REFER
[Jun 8 18:31:43] Supported: 100rel, replaces, norefersub, histinfo
[Jun 8 18:31:43] Max-Forwards: 70
[Jun 8 18:31:43] User-Agent: mPBX/1.9.21
[Jun 8 18:31:43] Content-Type: application/sdp
[Jun 8 18:31:43] Content-Length: 349
[Jun 8 18:31:43]
[Jun 8 18:31:43] v=0
[Jun 8 18:31:43] o=mPBX/1.9.21 259858751 259858751 IN IP4 103.242.182.172
[Jun 8 18:31:43] s=mPBX/1.9.21
[Jun 8 18:31:43] c=IN IP4 103.242.182.172
[Jun 8 18:31:43] t=0 0
[Jun 8 18:31:43] m=audio 16734 RTP/AVP 0 8 9 18 101
[Jun 8 18:31:43] a=rtpmap:0 PCMU/8000
[Jun 8 18:31:43] a=rtpmap:8 PCMA/8000
[Jun 8 18:31:43] a=rtpmap:9 G722/8000
[Jun 8 18:31:43] a=rtpmap:18 G729/8000
[Jun 8 18:31:43] a=fmtp:18 annexb=no
[Jun 8 18:31:43] a=rtpmap:101 telephone-event/8000
[Jun 8 18:31:43] a=fmtp:101 0-16
[Jun 8 18:31:43] a=ptime:20
[Jun 8 18:31:43] a=maxptime:150
[Jun 8 18:31:43] a=sendrecv

Database contains correct contact:

/registrar/contact/T273842;@a1886a275e520d115781af8c62e6a7db:

{"via_addr":"192.168.1.107","qualify_timeout":"3.000000","call_id":"ulFj_sEMIZ3ASt4t2M7udA..","reg_server":"au-mpbx-dev-cluster2","prune_on_boot":"no","path":"<sip:10.22.23.160;r2=on;lr>,<sip:103.242.182.180:7060;transport=tcp;r2=on;lr>","endpoint":"T273842","via_port":"63450","authenticate_qualify":"yes","uri":"sip:T273842 at 185.97.201.93:3766;transport=TCP;rinstance=97f9c0e29d88ed2e","qualify_frequency":"15","user_agent":"Zoiper rv2.10.8.2","expiration_time":"1654678226","outbound_proxy":""}

Contact is available:

  Contact:  T273842/sip:T273842 at 185.97.201.93:3766;transpo a1886a275e Avail       291.874


> 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
>            Severity: Major
>
> 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