[asterisk-bugs] [Asterisk 0012322]: SIP reinvite record-route problem after hangup

noreply at bugs.digium.com noreply at bugs.digium.com
Fri Apr 18 01:59:42 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=12322 
====================================================================== 
Reported By:                rolek
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   12322
Category:                   Channels/chan_sip/Interoperability
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
Asterisk Version:           1.4.18 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             03-28-2008 06:10 CDT
Last Modified:              04-18-2008 01:59 CDT
====================================================================== 
Summary:                    SIP reinvite record-route problem after hangup
Description: 
Situation: phone1 - *a - *b - provider - phone2

When making a call from phone2 to phone1, both *b and provider use
re-invites to get out of the RTP stream. After phone1 hangs up, *b tries to
send BYE directly to the RTP server of the provider instead of its SIP
peer. The result is that phone2 does not see that the call has ended.
======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0006240 [branch] Errors in support for SIP stri...
====================================================================== 

---------------------------------------------------------------------- 
 rolek - 04-18-08 01:59  
---------------------------------------------------------------------- 
When doing reinvites, after a hangeup, we get the following exchange:
INVITE ---->
<-------- OK
ACK ------->
However, after the INVITE, sip_hangup() is called, which sets the call
owner to NULL, causing the test for reinvite in handle_response_invite() to
incorrectly state it is not a reinvite.

To ensure the ACK is sent correctly, we have to avoid calling
build_route(). The attached patch fixes this just before calling
build_route() from handle_response_invite() [but I don't know if there are
other situations which would by caught by this test, so this might not be a
good way]. Perhaps it is better to improve the test for reinvite so it
works even after sip_hangup() is called. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
04-18-08 01:59  rolek          Note Added: 0085681                          
======================================================================




More information about the asterisk-bugs mailing list