[asterisk-bugs] [JIRA] (ASTERISK-27280) Dial Application Q Option Unexpectedly Removing SIP cause Header

Paul Brooks (JIRA) noreply at issues.asterisk.org
Fri Sep 22 16:22:08 CDT 2017


     [ https://issues.asterisk.org/jira/browse/ASTERISK-27280?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Brooks updated ASTERISK-27280:
-----------------------------------

    Attachment: asteriskQ850test.zip

Attached are the traces requested. The logger output came out almost identical to the CLI output that I captured. The extensions.conf and pjsip.conf files are the exact files used to perform this test. Within all the attached files I redacted 3 things: passwords, WAN IPs, and phone numbers.

This test was run with with the Q(NONE) option passed to the Dial application. You can easily find the two CANCEL messages in the SIP trace and see that they are missing the Reason:SIP header. It should be trivial to duplicate this test. If you remove the Q(NONE) option from the Dial Application and make a test call you will see the Reason:SIP header return.

> Dial Application Q Option Unexpectedly Removing SIP cause Header
> ----------------------------------------------------------------
>
>                 Key: ASTERISK-27280
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-27280
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Applications/app_dial, Channels/chan_pjsip
>    Affects Versions: 14.6.0
>         Environment: Debian 9.0  Stretch
>            Reporter: Paul Brooks
>            Assignee: Paul Brooks
>            Severity: Trivial
>         Attachments: asteriskQ850test.zip
>
>
> I am using Asterisk 14.6.0 with the PJSIP channel driver and I am interested in using Q(NONE) as a Dial option (parameter) in order to suppress the Reason:Q.850 header from appearing in the SIP Cancel messages that result from a call being answered elsewhere.
> Curiously, the addition of the Q parameter to the Dial Application, which appears to have occurred with the release of Asterisk 13, is not listed in the “New in 13” section of the Asterisk documentation. Nonetheless, starting with that version, the Q parameter appears as an option within the Dial application documentation, which explains that Q(cause) is used to specify the Q.850/Q.931 cause to send on unanswered channels when another channel answers the call. Of particular interest to me is the part of the documentation that says, “You can also specify 0 or NONE to send no cause”.
> The reason I want to suppress the Reason:Q.850 header from appearing in the Cancel messages is because several brands of SIP phones are getting confused by its presence and improperly logging these “answered elsewhere” calls as missed calls (Obi, Grandstream and Yaelink are some that I verified). With the old SIP channel driver the Reason:Q.850 did not appear in the Cancel messages and under this circumstance these phones behave well, not improperly logging the call.
> But the Q(NONE) option is not working for me. Please observe.
> Without Q(NONE) as a Dial parameter, what I see in the SIP Cancel message are two Reason headers (excerpt from Cancel message):
> CSeq: 6562 CANCEL
> Reason: Q.850;cause=26
> Reason: SIP;cause=200;text="Call completed elsewhere"
> Max-Forwards: 70
> User-Agent: Asterisk PBX 14.6.0
> Content-Length: 0
> However, with Q(NONE) specified as a Dial parameter, what I see in the SIP Cancel message is that the wrong Reason header appears to have been suppressed (excerpt from Cancel message):
> CSeq: 19076 CANCEL
> Reason: Q.850;cause=0
> Max-Forwards: 70
> User-Agent: Asterisk PBX 14.6.0
> Content-Length: 0
> Why is the Reason:SIP header missing in the Q(NONE) case? What I expected to see with the use of the Q(NONE) option was the removal of the Reason:Q.850 header and the continued presence of the Reason:SIP header.
> This seems to be a bug.



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



More information about the asterisk-bugs mailing list