[asterisk-bugs] [JIRA] (ASTERISK-24615) When Multiple Transports Exist in pjsip.conf, Incorrect External Addresses is Used in SIP Packets When Responding to INVITE

David Justl (JIRA) noreply at issues.asterisk.org
Wed Jan 14 15:23:34 CST 2015


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

David Justl commented on ASTERISK-24615:
----------------------------------------

Thanks Joshua! The patch does seem to partially fix the original problem, allowing us to establish a call when we have two transports bound to two different ports. However, I did find that some signaling (e.g. the 'BYE' message) seems to be sent incorrectly depending on the order the transports appear in the file. I have attached configurations and logs showing each case.

There is also still a problem if two different IP addresses are assigned to the two transports. In that case, the transport bound to the 'lower' IP address (1.1.1.1 vs. 1.1.1.2) is always used, no matter which receives the initial INVITE and no matter which order they appear in the config file.

On a side note, it appears that the overall concept is to respond using the transport bound to the IP/port on which the INVITE is received. Once the INVITE finds a matching endpoint, wouldn't it be better/simpler to use the transport specified in that endpoint to determine which external addresses to specify in the response?

> When Multiple Transports Exist in pjsip.conf, Incorrect External Addresses is Used in SIP Packets When Responding to INVITE
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-24615
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-24615
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/res_pjsip
>    Affects Versions: 13.0.1
>            Reporter: David Justl
>            Assignee: Joshua Colp
>         Attachments: 121214.log, full_bad_011415.log, full_good_011415.log, pjsip_bad_011415.conf, pjsip.conf.121214, pjsip_good_011415.conf, pjsip-multihomed-skip-new-transport.diff
>
>
> Say pjsip.conf is configured with two transports, one bound to port 5060 and one bound to port 5061, each with completely different external_signaling_address and external_media_address values. Then say each is mapped to a different VoIP provider's endpoint. When Asterisk receives an INVITE from the provider that is configured to use the transport bound to port 5061, it is using the external_signaling_address and external_media_address values from the transport bound to port 5060 in the Header Contact and in the Message Body Session Description Protocol portions of the OK response. There is nothing in pjsip.conf tying the given endpoint to the port 5060 transport. This causes the provider to send RTP and other signaling packets to the wrong IP.



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



More information about the asterisk-bugs mailing list