Hi Paul, Thanks a lot, You have put it in a nice way , I understood the use-case for Forking
But I have the following question *This all assumes that the 2xx matches an INVITE transaction you have pending, and that the from-tag and call-id match what was in the corresponding INVITE.Otherwise this is a stray message or an attack and ought to be ignored.* *So if the 200 OK received having different "Call-ID" *not matching with the Call-ID which is sent in INVITE by UA, it should be ignored. ( even if Cseq/From-tag/branch parameter is same as INVITE which is sent out) ?* What would be the UA behaviour in above case ? On 31 Jul 2017 10:21 p.m., "Paul Kyzivat" <pkyzi...@alum.mit.edu> wrote: > On 7/31/17 11:26 AM, Prakash K wrote: > >> What would be the behavior of UA when 200 OK received which is not >> matching >> the dialog >> >> "200OK received by UA with different Call-id which is not in context" >> >> >> I see the following snippet in RFC 3261 which says UA should create >> dialog. Wont this end up in acknowledging the hacking? >> >> If the dialog identifier in the 2xx response matches the dialog >> identifier of an existing dialog, the dialog MUST be transitioned to >> the "confirmed" state, and the route set for the dialog MUST be >> recomputed based on the 2xx response using the procedures of Section >> 12.2.1.2. *Otherwise, a new dialog in the "confirmed" state MUST be >> constructed using the procedures of Section 12.1.2.* >> >> >> does this mean UA should generate ACK & immediately followed by BYE should >> be triggered? >> > > As is mentioned in the prior paragraph, this is primarily about forking. > If the initial INVITE is forked, then two or more UASs may respond. Each > will choose a unique to-tag, and since the to-tag is part of the dialog-id > each will be associated with a distinct dialog. > > The dialogs for various forks may be discovered via 1xx responses, in > which case the corresponding 2xx may match an existing dialog. OTOH > sometimes a UAS will send a 2xx without first sending a 1xx. In that case > the mentioned situation will occur. > > Also note that this can happen without forking if the single UAS > immediately responds with a 2xx. > > The forking case where you actually get multiple 2xx reponses, > establishing multiple dialogs, is pretty rare. Usually the forking proxy > ceases forking when it sees a 2xx response and attempts to cancel any other > outstanding legs. But it *can* happen and the UAC needs to be prepared to > cope when it does. *What* you do is unspecified. Immediately sending a BYE > is a popular solution because it is easy. But it isn't especially friendly > to the callee. Other possibilities: > > - form a conference call within your UAC, mixing the audio from > the multiple legs > > - play some prerecorded audio explaining why you are hanging up, > then BYE. > > This all assumes that the 2xx matches an INVITE transaction you have > pending, and that the from-tag and call-id match what was in the > corresponding INVITE. Otherwise this is a stray message or an attack and > ought to be ignored. > > Thanks, > Paul > _______________________________________________ > Sip-implementors mailing list > Sip-implementors@lists.cs.columbia.edu > https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors > _______________________________________________ Sip-implementors mailing list Sip-implementors@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors