[Home]

Summary:ASTERISK-27696: res_pjsip: transport option on endpoint is not enforced on incoming traffic
Reporter:snuffy (snuffy)Labels:pjsip
Date Opened:2018-02-21 16:51:27.000-0600Date Closed:
Priority:MinorRegression?No
Status:Open/NewComponents:Resources/res_pjsip
Versions:GIT Frequency of
Occurrence
Constant
Related
Issues:
Environment:Debian 9 Compile options DONT_OPTIMIZE BETTER_BACKTRACESAttachments:( 0) pjsip-accepts-udp-register-for-tcp-endpoint-once.txt
Description:*Create an Endpoint with TCP as transport
* Use dynamic registration
* Set a phone to use UDP instead to register as endpoint

First registration attempt as UDP will be accepted by Asterisk with 200 OK
Asterisk then flags AOR as available, then immediately removes the contact as it is UDP.

From then on phone gets correct 401 - REFUSED to any further attempts to register / call out.

Will attach test case shortly
Comments:By: Asterisk Team (asteriskteam) 2018-02-21 16:51:28.362-0600

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

By: snuffy (snuffy) 2018-02-22 16:51:18.402-0600

Order in File:
* Phone registered via TCP
* Phone de-registers via TCP on reboot
* Phone attempts to register via UDP on next boot
* Asterisk accepts Register on UDP
* Asterisk then invalidates Contact
* Asterisk denies future Registers via UDP for Phone
* Phone attempts Dial out via UDP
* Phone de-registers via UDP on reboot
* Phone registers as TCP after boot.

By: Joshua C. Colp (jcolp) 2018-03-12 08:04:20.236-0500

What is the actual configuration for this?

A difference between chan_sip and chan_pjsip is that the "transport" option doesn't restrict reception of messages. Instead it explicitly uses the given transport for outgoing messages, which can result in behavior like this - specifically OPTIONS failing because it can't be sent using TCP and the contact becoming unreachable.

By: Asterisk Team (asteriskteam) 2018-03-26 12:00:01.614-0500

Suspended due to lack of activity. This issue will be automatically re-opened if the reporter posts a comment. If you are not the reporter and would like this re-opened please create a new issue instead. If the new issue is related to this one a link will be created during the triage process. Further information on issue tracker usage can be found in the Asterisk Issue Guidlines [1].

[1] https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines

By: snuffy (snuffy) 2018-03-26 18:48:09.292-0500

Hello,

My issue was that if the TRANSPORT for the ENDPOINT is TCP.

Asterisk SHOULD NOT reply to its UDP REGISTER with OK on UDP, As seen in the pjsip output instead it should either pretend it didn't get the message or respond with a NOT AUTHORIZED as it does for further REGISTER attempts via UDP.

.


By: Asterisk Team (asteriskteam) 2018-03-26 18:48:09.671-0500

This issue has been reopened as a result of your commenting on it as the reporter. It will be triaged once again as applicable.

By: Joshua C. Colp (jcolp) 2018-03-26 18:55:34.037-0500

I think that could be a potential improvement to make to improve the user experience, but as it is the option itself is working as it is supposed to.