[Home]

Summary:ASTERISK-19313: [patch] incorrect handling of UPDATE response with canreinvite=update
Reporter:Pietro Bertera (pbertera)Labels:patch
Date Opened:2012-02-08 09:04:09.000-0600Date Closed:
Priority:MajorRegression?
Status:Open/NewComponents:Channels/chan_sip/General
Versions:1.8.9.0 1.8.9.1 13.18.4 Frequency of
Occurrence
Constant
Related
Issues:
duplicatesASTERISK-19303 Asterisk does not acknowledge the ACK received to terminate the dialog.
Environment:Attachments:( 0) asterisk-1.8.9.1-UPDATE-reinvite.patch
Description:when asterisk refresh SIP timers sends an UPDATE (X-asterisk-Info:
SIP re-invite (Session-Timers) )
(I'm using canreinvite=update in chan_sip.conf) and the phone reply
with SIP/2.0 481 Call Leg/Transaction Does Not Exist
Asterisk continue in resending UPDATE and doesn't tear down the
previous allocated channel.
Comments:By: Pietro Bertera (pbertera) 2012-02-08 09:05:06.904-0600

this little chan_sip.c patch correct this behavior.

I don't know if the better place of channel destruction code is inside
the handle_response_update()


By: Matt Jordan (mjordan) 2012-05-02 14:33:07.868-0500

A fix for this was put into 1.8.12.0.  Could you please test with that release to determine if this was resolved?

By: Pietro Bertera (pbertera) 2012-05-09 18:11:39.337-0500

Now Asterisk stop in sending UPDATE but doesn't tear down the allocated channel:

*CLI> set_destination: Parsing <sip:153@172.16.18.31:1024;line=i6vd2b3m> for address/port to send to
set_destination: set destination to 172.16.18.31:1024
Audio is at 18288
Adding codec 0x2 (gsm) to SDP
Adding codec 0x4 (ulaw) to SDP
Adding codec 0x8 (alaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (NAT) to 172.16.18.31:1024:
UPDATE sip:153@172.16.18.31:1024;line=i6vd2b3m SIP/2.0
Via: SIP/2.0/UDP 172.16.18.40:5060;branch=z9hG4bK7e99703b;rport
Max-Forwards: 70
From: <sip:154@asterisk.labo.local;user=phone>;tag=as07e3c217
To: "153" <sip:153@asterisk.labo.local>;tag=70nkbvsl2i
Contact: <sip:154@172.16.18.40:5060>
Call-ID: 4faaf29de159-0wshiv6pcgkj
CSeq: 103 UPDATE
User-Agent: Asterisk PBX 1.8.12.0
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
X-asterisk-Info: SIP re-invite (Session-Timers)
Content-Type: application/sdp
Content-Length: 284

v=0
o=root 2117963759 2117963760 IN IP4 172.16.18.30
s=Asterisk PBX 1.8.12.0
c=IN IP4 172.16.18.30
t=0 0
m=audio 58442 RTP/AVP 3 0 8 101
a=rtpmap:3 GSM/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv

---

<--- SIP read from UDP:172.16.18.31:1024 --->
SIP/2.0 481 Call Leg/Transaction Does Not Exist
Via: SIP/2.0/UDP 172.16.18.40:5060;branch=z9hG4bK7e99703b;rport=5060
From: <sip:154@asterisk.labo.local;user=phone>;tag=as07e3c217
To: "153" <sip:153@asterisk.labo.local>;tag=70nkbvsl2i
Call-ID: 4faaf29de159-0wshiv6pcgkj
CSeq: 103 UPDATE
User-Agent: snom370/8.7.3.7
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK, MESSAGE, INFO, UPDATE
Allow-Events: talk, hold, refer, call-info
Supported: timer, 100rel, replaces, from-change
Content-Length: 0

<------------->
--- (11 headers 0 lines) ---
[May 10 00:44:37] WARNING[18880]: chan_sip.c:21138 handle_response: Remote host can't match request UPDATE to call '4faaf29de159-0wshiv6pcgkj'. Giving up.

*CLI> sip show channels
Peer             User/ANR         Call ID          Format           Hold     Last Message    Expiry     Peer      
172.16.18.31     153              4faaf29de159-0w  0x2 (gsm)        No       Tx: UPDATE                 153      
172.16.18.30     154              36fac15565a5daa  0x2 (gsm)        No       Tx: UPDATE                 154      
2 active SIP dialogs
*CLI>