[OpenSIPS-Devel] Limitations of dialog module
Dan Pascu
dan at ag-projects.com
Tue Aug 4 12:18:14 CEST 2009
On Tuesday 04 August 2009, Iñaki Baz Castillo wrote:
> 2009/8/4 Dan Pascu <dan at ag-projects.com>:
> > The easiest way to fix them would be for the dialog module to keep around
> > "virtual dialogs", for as long as it's in a provisional state. Such a
virtual
> > dialog will keep track of a branch and when a final reply is received, it
will
> > destroy all of them except for the one on the branch that got the final
200 OK
> > reply, which will become the real dialog from that point on. This way each
> > branch can live on its own and have the CSeq updated independently of the
> > others.
>
> That makes sense but, what would occur in the exotice RFC3261 case in
> which two (or more) 200 OK replies are received at the same time?
> AFAIK for now OpenSIPS terminates the INVITE transaction (not 100%
> true since it matches the following ACK) when the first 200 arrives,
> so the second 200 is bypassed stateless to the UAC. In this moment the
> UAC has two active dialogs and "should" terminate the second one
> (sending an ACK followed by a BYE).
>
> However, there is a draft
> (http://tools.ietf.org/html/draft-sparks-sip-invfix) updating this
> behaviour so the proxy keeps the transaction in memory after receipt
> of the first 200 and absorvbs other 200 replies. I added a tm
> parameter in Kamailio for this purpose (it basically drops any reply
> matching no transaction):
> http://kamailio.org/docs/modules/1.6.x/tm.html#id2530689
>
> But if this behaviour is not implemented, could it affect the design
> you suggest for "virtual dialogs"?
Not if we confirm the dialog with the ACK instead of the 200 OK.
--
Dan
More information about the Devel
mailing list