[Home]

Summary:ASTERISK-26915: chan_sip: Session Timers required but refused wrongly.
Reporter:Alexander Traud (traud)Labels:patch
Date Opened:2017-04-03 02:38:38Date Closed:2017-04-06 10:50:52
Priority:MinorRegression?Yes
Status:Closed/CompleteComponents:Channels/chan_sip/Interoperability
Versions:13.14.0 14.3.0 GIT Frequency of
Occurrence
Related
Issues:
is caused byASTERISK-21721 SIP Failed to parse multiple Supported: headers
Environment:Attachments:( 0) refuse_timer_with_420.patch
Description:SIP user-agents indicate which protocol extensions are allowed in headers like Supported and Required. Such protocol extensions are Session Timers ([RFC 4028|http://tools.ietf.org/html/rfc4028]) for example. Session Timers are supported since Mantis 10665 (ASTERISK-10249). Since ASTERISK-21721, not only the first but multiple Supported/Required headers in a message are parsed. In that change, an existing variable was re-used within a newly added do-loop. Currently, at the end of that loop, that variable is an empty string always. Previously, that variable was used within log output. However, the log output was not changed. For example, the warning
{{Received SIP INVITE with supported but disabled option:}}
is printed on the command-line interface (CLI) although it should be
{{Received SIP INVITE with supported but disabled option: timer}}
Another example is:
{{Received SIP INVITE with unsupported required extension: required: unsupported: …}}

Steps to Reproduce
1) {{sip.conf}} with {{session-timers=refuse}}
2) remote client which requires† Session-Timers
3) establish a call, wait until the client sends the re-INVITE

Attached is a patch which solves this issue by avoiding it, because I do not see any benefit to print that variable to the user interface (second example). In the first example, the variable {{required}} was used wrongly actually, because although only Session Timers were the offending extension, Asterisk bailed about all required extensions.

† According to RFC 4028 section 7.1, requiring Session Timers is not recommended behavior. Nevertheless, the Snom M300 is such an example. The Snom M300 is part of the Snom M325 package. RTX 9430, Agfeo DECT IP-Basis XS, Alcatel-Lucent 8318, Konftel IP DECT 10, and Mitel RFP 12 might behave the same. I tested firmware 03.55.0024: Session Timers are required on default but can be disabled via Web interface » Servers » SIP Session Timers.
Comments:By: Friendly Automation (friendly-automation) 2017-04-06 10:50:53.416-0500

Change 5383 merged by Joshua Colp:
chan_sip: Session Timers required but refused wrongly.

[https://gerrit.asterisk.org/5383|https://gerrit.asterisk.org/5383]

By: Friendly Automation (friendly-automation) 2017-04-06 11:02:32.785-0500

Change 5382 merged by Joshua Colp:
chan_sip: Session Timers required but refused wrongly.

[https://gerrit.asterisk.org/5382|https://gerrit.asterisk.org/5382]

By: Friendly Automation (friendly-automation) 2017-04-06 11:40:57.418-0500

Change 5381 merged by Joshua Colp:
chan_sip: Session Timers required but refused wrongly.

[https://gerrit.asterisk.org/5381|https://gerrit.asterisk.org/5381]

By: Asterisk Team (asteriskteam) 2019-01-14 03:42:57.282-0600

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