[asterisk-bugs] [JIRA] (ASTERISK-26915) chan_sip: Session Timers required but refused wrongly.

Richard Mudgett (JIRA) noreply at issues.asterisk.org
Mon Apr 3 10:47:10 CDT 2017


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

Richard Mudgett updated ASTERISK-26915:
---------------------------------------

    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, 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.

  was:
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|http://bugs.digium.com/view.php?id=10665]. 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, 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.


> chan_sip: Session Timers required but refused wrongly.
> ------------------------------------------------------
>
>                 Key: ASTERISK-26915
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-26915
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/Interoperability
>    Affects Versions: 13.14.0, 14.3.0, GIT
>            Reporter: Alexander Traud
>            Severity: Minor
>         Attachments: refuse_timer_with_420.patch
>
>
> 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, 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.



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



More information about the asterisk-bugs mailing list