[OpenSIPS-Users] [OpenSIPS-Devel] Planning next release - Roadmap

Iñaki Baz Castillo ibc at in.ilimit.es
Wed Aug 27 09:46:47 CEST 2008


El Tuesday 26 August 2008 20:13:44 Dan Pascu escribió:
> On Tuesday 26 August 2008, Iñaki Baz Castillo wrote:
> > > In an ideal world yes. In practice we have to deal with race
> > > conditions (like a CANCEL and the 200 OK crossing each other in the
> > > proxy) and things are less simple. I even witnessed a case where a
> > > 200 OK for the original INVITE came on a branch that was canceled and
> > > even acknowledged the cancel. The 200 OK came after the cancel was
> > > acknowledged and after the new branch (to the voicemail) was started
> > > and has send the INVITE out and a 180 ringing came over the new
> > > branch. After the 200 OK from the 1st branch came, came a 200 OK from
> > > the voicemail as well, and in a twisted turn of events, the 200 OK
> > > from the voicemail was sent before the other 200 OK, even though it
> > > arrived later. As a consequence, the 2st 200 OK coming from the
> > > canceled branch to the 1st device did set the callee elements in the
> > > dialog (contact, totag, route set), however the 200 OK from the
> > > voicemail was actually confirmed by the caller and started the
> > > dialog. As a consequence, the whole dialog identification elements
> > > that were stored in the dialog structure were wrong and further
> > > in-dialog messages could not be matched with the dialog.
> >
> > Did you get sleeping that night?  XD
>
> WTH are you smoking? :P

:)

Out of curiosity, how did you realize of that race condition? AFAIK it's 
impossible to simulate it since there is a few interval in which the second 
200 must be sent before receiving the CANCEL. Were you monitoring it?
Or did you see that info via siptrace module?


-- 
Iñaki Baz Castillo
ibc at in.ilimit.es



More information about the Users mailing list