[OpenSIPS-Users] dialog and CANCEL

Bogdan-Andrei Iancu bogdan at opensips.org
Wed Apr 6 16:35:25 CEST 2011


Hi Denis,

On 03/21/2011 01:55 PM, Denis Putyato wrote:
>
> Hello
>
> There is such scheme of call
>
> One gateway – 1.1.1.1
>
> Opensips – 2.2.2.2
>
> Another gateway – 3.3.3.3
>
> Calls from 1.1.1.1 to 3.3.3.3 through 2.2.2.2
>
> I use CDR_flag for accounting
>
> As you can see in testlog file, 1.1.1.1 trying cancel initial request 
> by sending CANCEL, this CANCEL Opensips forwarding to 3.3.3.3 but from 
> 3.3.3.3 Opensips receives 200 OK on INVITE. Because of this there is 
> no CANCEL of the dialog on Opensips and after 1800 sec (see 
> “default_timeout”) I have a CDR record in Opensips with duration of 
> 1800 sec.
>
> The question. Why does Opensips forward 200 OK from 3.3.3.3 to 1.1.1.1 
> when initial request was cancelled, and why Opensips makes accounting 
> dialog when initial request was cancelled?
>
RFC3261 says a proxy must forward all 2xx replies (disregarding the 
transaction state), just to solve the possible race between CANCEL and 
2xx -> such race must be handled by end point and not by proxy.

So, it your case, if caller sent a CANCEL but still receives a 200 
(callee picked up before actually receiving the CANCEL from caller), the 
caller must sent a BYE and the callee should send a negative reply to 
the CANCEL.

So, it is a bug in the caller device.

Regards,
Bogdan

-- 
Bogdan-Andrei Iancu
OpenSIPS eBootcamp - 2nd of May 2011
OpenSIPS solutions and "know-how"

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20110406/7706bdf3/attachment.htm>


More information about the Users mailing list