<HTML dir=ltr><HEAD><TITLE>Re: [OpenSIPS-Users] Opensips should reply "SIP/2.0 200 canceling" to CANCEL after forwarding ? or wait after reply</TITLE>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<META content="MSHTML 6.00.6001.18148" name=GENERATOR></HEAD>
<BODY>
<DIV id=idOWAReplyText72079 dir=ltr>
<DIV dir=ltr><FONT face="Courier New" color=#000000 size=2>Hi thanks for this feed back, unfortunatly I do nto have a full trace but I am using sip_trace data from database.</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>This is waht I from on this call-id, it seems like an isolated case, but I am wandering where is the "487" triggered</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>88.88.88.88(UA) --&gt;&nbsp; 10.10.10.1(opensips) --&gt; 10.2.2.22(UA)</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>I am handling CANCEL like this, could t_relay() trigger this call&nbsp;?</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>&nbsp;####---&gt; Handling CANCEL<BR>&nbsp;if ( is_method("CANCEL") ) {<BR>&nbsp;&nbsp; if ( t_check_trans() ){<BR>&nbsp;&nbsp;&nbsp;&nbsp; t_relay();<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; exit;<BR>&nbsp;}<BR></FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT face="Courier New" size=2>+---------------------+--------+--------+----------------------+----------------------+----------------+<BR>| time_stamp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | method | status | fromip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | toip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | fromtag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<BR>+---------------------+--------+--------+----------------------+----------------------+----------------+<BR>| 2010-05-26 17:52:52 | INVITE |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | udp:88.88.88.88:5060 | udp:10.10.10.1:5060&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 17:52:52 | INVITE |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | udp:88.88.88.88:5060 | udp:10.10.10.1:5060&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 17:52:53 | INVITE |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | udp:10.2.2.22:5060&nbsp;&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 17:52:59 | CANCEL |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | udp:88.88.88.88:5060 | udp:10.10.10.1:5060&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 17:52:59 | INVITE | 100&nbsp;&nbsp;&nbsp; | udp:10.2.2.22:5060&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 17:52:59 | CANCEL | 200&nbsp;&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | udp:88.88.88.88:5060 | SDhbtm701-9270 | <BR>| 2010-05-26 17:52:59 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 100&nbsp;&nbsp;&nbsp; | udp:10.2.2.22:5060&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 17:52:59 | INVITE |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | udp:88.88.88.88:5060 | udp:10.10.10.1:5060&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 17:52:59 | INVITE | 200&nbsp;&nbsp;&nbsp; | udp:10.2.2.22:5060&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 17:52:59 | CANCEL |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | udp:10.2.2.22:5060&nbsp;&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 17:52:59 | INVITE | 487&nbsp;&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | udp:88.88.88.88:5060 | SDhbtm701-9270 | <BR>| 2010-05-26 17:52:59 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 200&nbsp;&nbsp;&nbsp; | udp:10.2.2.22:5060&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 17:52:59 | INVITE | 200&nbsp;&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | udp:88.88.88.88:5060 | SDhbtm701-9270 | <BR>| 2010-05-26 17:53:11 | ACK&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | udp:88.88.88.88:5060 | udp:10.10.10.1:5060&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 17:53:27 | INVITE | 200&nbsp;&nbsp;&nbsp; | udp:10.2.2.22:5060&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 17:53:27 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 200&nbsp;&nbsp;&nbsp; | udp:10.2.2.22:5060&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | SDhbtm701-9270 | <BR>| 2010-05-26 18:13:19 | BYE&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | udp:10.2.2.22:5060&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | 1190677408&nbsp;&nbsp;&nbsp;&nbsp; | <BR>| 2010-05-26 18:13:20 | BYE&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | udp:10.2.2.22:5060&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | 1190677408&nbsp;&nbsp;&nbsp;&nbsp; | <BR>| 2010-05-26 18:13:20 | BYE&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | udp:88.88.88.88:5060 | 1190677408&nbsp;&nbsp;&nbsp;&nbsp; | <BR>| 2010-05-26 18:13:40 | BYE&nbsp;&nbsp;&nbsp; | 481&nbsp;&nbsp;&nbsp; | udp:88.88.88.88:5060 | udp:10.10.10.1:5060&nbsp; | 1190677408&nbsp;&nbsp;&nbsp;&nbsp; | <BR>| 2010-05-26 18:13:40 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 481&nbsp;&nbsp;&nbsp; | udp:88.88.88.88:5060 | udp:10.10.10.1:5060&nbsp; | 1190677408&nbsp;&nbsp;&nbsp;&nbsp; | <BR>| 2010-05-26 18:13:40 | BYE&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | udp:10.2.2.22:5060&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | 1190677408&nbsp;&nbsp;&nbsp;&nbsp; | <BR>| 2010-05-26 18:13:40 | BYE&nbsp;&nbsp;&nbsp; | 481&nbsp;&nbsp;&nbsp; | udp:10.10.10.1:5060&nbsp; | udp:10.2.2.22:5060&nbsp;&nbsp; | 1190677408&nbsp;&nbsp;&nbsp;&nbsp; | <BR>+---------------------+--------+--------+----------------------+----------------------+----------------+</FONT></DIV>
<DIV dir=ltr><FONT face="Courier New" size=2></FONT>&nbsp;</DIV></DIV>
<DIV dir=ltr><BR><FONT face="Courier New">
<HR tabIndex=-1>
</FONT><FONT face="Courier New"><FONT size=2><B>From:</B> Bogdan-Andrei Iancu [mailto:bogdan@voice-system.ro]<BR><B>Sent:</B> Mon 21/06/2010 5:09 PM<BR><B>To:</B> OpenSIPS users mailling list<BR><B>Cc:</B> Julien Chavanton<BR><B>Subject:</B> Re: [OpenSIPS-Users] Opensips should reply "SIP/2.0 200 canceling" to CANCEL after forwarding ? or wait after reply<BR></FONT><BR></FONT></DIV>
<DIV>
<P><FONT face="Courier New" size=2>Hi Julien,<BR><BR>I doubt opensips generates a 487 Request terminated for an INVITE when<BR>the CANCEL is passing through - the 497 is end to end, not hop by hop<BR>(as the CANCEL), So, the 487 is generated by callee and opensips simply<BR>relays it back.<BR><BR>Regards,<BR>Bogdan<BR><BR>Julien Chavanton wrote:<BR>&gt;&nbsp;<BR>&gt; Hi, regarding handling of CANCEL request,<BR>&gt;&nbsp;<BR>&gt; Please correct me if I am wrong,<BR>&gt;&nbsp;<BR>&gt; I have glare condition on how Opensips handled Cancel requests.<BR>&gt; The problem is taht Opensips respond "487 Request terminated" strait<BR>&gt; after forwarding the CANCEL but it does not know if the targe UA will<BR>&gt; accept it.<BR>&gt;&nbsp;<BR>&gt; I think it should wait after the target UA to reply before, as this<BR>&gt; can create out of sync situation if there is a problem with the target.<BR>&gt; in this senario the "200 OK" is&nbsp; received at the same time as the<BR>&gt; CANCEL is sent, in this case the target UA as the right to ignore the<BR>&gt; CANCEL because it as generated a final response.<BR>&gt;&nbsp;<BR>&gt;&nbsp;<BR>&gt; UA -----&gt; CANCEL ------------------------&gt; osips<BR>&gt; UA &lt;------ SIP/2.0 200 canceling --------&gt; osips<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; osips &lt;--- 200 OK &lt;-- UA<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; osips ---&gt; CANCEL --&gt; UA<BR>&gt; UA &lt;---- SIP/2.0 487 Request Terminated -&gt; osips<BR>&gt;&nbsp;<BR><BR>--<BR>Bogdan-Andrei Iancu<BR>OpenSIPS Bootcamp<BR>20 - 24 September 2010, Frankfurt, Germany<BR>www.voice-system.ro<BR><BR></FONT></P></DIV></BODY></HTML>