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

noreply at bugs.digium.com noreply at bugs.digium.com
Mon Nov 5 07:03:17 CST 2007


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:                     new
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:              11-05-2007 07:03 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 - 11-05-07 07:03  
---------------------------------------------------------------------- 
oej: I'm not disagreeing w/ you. I think the reason encountered interop
issues surrounding 183 because Asterisk currently has some bugs in this
area. The fundamental issue is that today Asterisk generates SDP
statelessly. 

Luckily, these bugs were easy to address and I've addressed them in the
sip_session_timers branch.  Now we remember our local and remote
end-point's SDP version number in sip_pvt. If the remote end-point is not
changing its SDP version number, then we know that it is not asking for a
media change. Likewise, when we are simply refreshing the session, we send
the previous SDP in the RE-INVITE.

I've edited my previous note regarding some of these bugs, please take a
read. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
11-05-07 07:03  rjain          Note Added: 0073087                          
======================================================================




More information about the asterisk-bugs mailing list