Summary:ASTERISK-27554: res_pjsip_rfc3326: Order of 'Reason' headers break many endpoints
Reporter:Ross Beer (rossbeer)Labels:patch pjsip
Date Opened:2018-01-05 09:59:32.000-0600Date Closed:2018-03-08 07:31:14.000-0600
Status:Closed/CompleteComponents:Channels/chan_pjsip Resources/res_pjsip_rfc3326
Versions:13.18.5 15.1.5 Frequency of
is related toASTERISK-27949 res_pjsip_rfc3326: A lot of endpoints do not correctly handle two Reason headers
Environment:Fedora 23, Snom, Yealink, GrandstreamAttachments:( 0) ASTERISK-27554.diff
Description:The additional header added by chan_pjsip CANCEL causes many hardware endpoints to record missed calls. While this isn't directly an Asterisk issue and doesn't break RFCs, it is a change away from chan_sip.

I believe that endpoints are only checking the fist Reason header for the string 'Call completed elsewhere' and therefore not matching this.

The reason headers currently sent by chan_pjsip are as follows:

Reason: Q.850;cause=26
Reason: SIP;cause=200;text="Call completed elsewhere"

I believe that changing the order of the headers to the following will resolve the issue with many manufacturers:

Reason: SIP;cause=200;text="Call completed elsewhere"
Reason: Q.850;cause=26

While ideally getting each manufacturer to fix their firmware to check multiple headers would be ideal, some devices are no longer actively supported and therefore will never be updated.
Comments:By: Asterisk Team (asteriskteam) 2018-01-05 09:59:33.725-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: Ross Beer (rossbeer) 2018-02-23 04:54:12.712-0600

The attached patch resolves the issue for Yealink and Grandstream phones

By: Richard Mudgett (rmudgett) 2018-02-23 10:43:01.049-0600

[~rossbeer] The patch you attached isn't marked as a contribution.  Do you need to sign the license agreement?

By: Ross Beer (rossbeer) 2018-03-06 08:31:52.179-0600

I've signed the license agreement and will try to submit it gerrit for review.

By: Friendly Automation (friendly-automation) 2018-03-08 07:31:15.697-0600

Change 8446 merged by Jenkins2:
res_pjsip_rfc3326: Order of 'Reason' headers break many endpoints


By: Friendly Automation (friendly-automation) 2018-03-08 08:48:36.162-0600

Change 8459 merged by Joshua Colp:
res_pjsip_rfc3326: Order of 'Reason' headers break many endpoints


By: Friendly Automation (friendly-automation) 2018-03-08 10:17:35.047-0600

Change 8460 merged by Jenkins2:
res_pjsip_rfc3326: Order of 'Reason' headers break many endpoints