[asterisk-bugs] [Asterisk 0011157]: Asterisk does not send a provisional response at every minute

noreply at bugs.digium.com noreply at bugs.digium.com
Tue Jan 22 19:12:39 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11157 
====================================================================== 
Reported By:                rjain
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   11157
Category:                   Channels/chan_sip/General
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     acknowledged
Asterisk Version:           1.4.13  
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             11-04-2007 16:29 CST
Last Modified:              01-22-2008 19:12 CST
====================================================================== 
Summary:                    Asterisk does not send a provisional response at
every minute
Description: 
The issue here is that Asterisk does not send a non-100 response at every
minute for calls that are in the provisional response state. This causes
most UACs and/or proxies to terminate the call after 3 minutes. There are
many legitimate reasons why a call could remain in an unanswered state for
more than 3 minutes such as early-media (183), call queuing (182), call
forwarding (181) and ringing (180). 

Following is quote from section 13.3.1.1 of RFC 3261 which explains what a
UAS should do under such a circumstance:

   If the UAS desires an extended period of time to answer the INVITE,
   it will need to ask for an "extension" in order to prevent proxies
   from canceling the transaction.  A proxy has the option of canceling
   a transaction when there is a gap of 3 minutes between responses in a
   transaction.  To prevent cancellation, the UAS MUST send a non-100
   provisional response at every minute, to handle the possibility of
   lost provisional responses.

This issue was first reported by Alex Balashov on the asterisk-dev mailing
list:
http://lists.digium.com/pipermail/asterisk-dev/2007-November/030341.html.
I've reproduced this problem and collected wireshark and debug traces,
which are attached to this bug report.

====================================================================== 

---------------------------------------------------------------------- 
 rjain - 01-22-08 19:12  
---------------------------------------------------------------------- 
oej,

We now do save the last SDP version that we transmitted in the sip_pvt
struct. Take a look at the add_sdp() function. This allows us to generate
the same SDP as the last one we sent.

I added this capability for the session-timers feature because the session
refresh RE-INVITEs had to carry the same SDP as the previous one so that
such RE-INVITEs do not trigger a media change of any sort and cause an
interruption in the media flow. We can use the same "oldsdp" boolean flag
for 1XX transmissions at every minute. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
01-22-08 19:12  rjain          Note Added: 0081053                          
======================================================================




More information about the asterisk-bugs mailing list