[asterisk-bugs] [Asterisk 0018704]: "Require: timer" header still being sent

Asterisk Bug Tracker noreply at bugs.digium.com
Mon Jan 31 16:27:53 CST 2011


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=18704 
====================================================================== 
Reported By:                mfrager
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   18704
Category:                   Channels/chan_sip/Interoperability
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.8.2.3 
JIRA:                        
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2011-01-28 18:45 CST
Last Modified:              2011-01-31 16:27 CST
====================================================================== 
Summary:                    "Require: timer" header still being sent
Description: 
This field is causing calls to drop after exactly 20 minutes.

Here is the code in question:

channels/chan_sip.c: Line 9651

        /* Add Session-Timers related headers if the feature is active for
this session.
           An exception to this behavior is the ACK request. Since
Asterisk never requires
           session-timers support from a remote end-point (UAS) in an
INVITE, it must
           not send 'Require: timer' header in the ACK request.
           This should only be added in the INVITE transactions, not
MESSAGE or REFER or other
           in-dialog messages.
        */
        if (p->stimer && p->stimer->st_active == TRUE &&
p->stimer->st_active_peer_ua == TRUE
            && sipmethod == SIP_INVITE) {
                char se_hdr[256];
                snprintf(se_hdr, sizeof(se_hdr), "%d;refresher=%s",
p->stimer->st_interval,
                        strefresher2str(p->stimer->st_ref));
                add_header(req, "Require", "timer");     /* <- PROBLEM!!!
*/
                add_header(req, "Session-Expires", se_hdr);
                snprintf(se_hdr, sizeof(se_hdr), "%d", st_get_se(p,
FALSE));
                add_header(req, "Min-SE", se_hdr);
        }  


======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0017005 [patch] Asterisk sends session-timer wi...
====================================================================== 

---------------------------------------------------------------------- 
 (0131313) mfrager (reporter) - 2011-01-31 16:27
 https://issues.asterisk.org/view.php?id=18704#c131313 
---------------------------------------------------------------------- 
This packet capture: trace_20110128130702.pcap contains the issue.

Filter by this call ID:
1304beb93b90bc0742138bcd0fcf5a5c at 69.175.101.218:5060

Packet 573 - INVITE sip:+19562423479 at 67.16.125.60:5060;transport=udp
SIP/2.0

with header:

Require: timer

then

Packet 646 - SIP/2.0 420 Bad Extension

with header:

Unsupported: timer


----


The section of code noted in the original description is the only location
I could find where the "Require" header is being generated. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2011-01-31 16:27 mfrager        Note Added: 0131313                          
======================================================================




More information about the asterisk-bugs mailing list