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

Reply via email to