On 10/1/14 9:08 AM, Kumar, Puneet (Puneet) wrote:
Hi All,

Consider following use case:

UA1             Proxy                   UA2
----SUBSCRIBE---->
                    ----------SUBSCRIBE----->
                   <----------200---------------
                   <-----------NOTIFY----------
<-------NOTIFY------
<-------200-----------


As seen above UA1 Subscribe to UA2 for an event through Proxy server.
UA2 accepts this subscribe & respond with a 200 followed by a NOTIFY to 
indicate current status of the event.
But somehow proxy send the NOTIFY first to UA1 followed by 200 for SUBSCRIBE.

As per section 3.1.4.4 on RFC 3265 above behavior on UA1 is allowed.

Currently UA1 ignores this NOTIFY as it always expected NOTIFY after 
200(SUBSCRIBE)
What should UA1 do so that it can handle this message mismatch properly?

If UA2 receive some 4xx response for NOTIFY with a retry-after header will it 
retry NOTIFY?

Maybe, if you are lucky.

I presume you are talking about a case where all of these are following RFC3265, rather than RFC6665?

The way UA1 is supposed to behave is:

- the subscribe has a to-tag but no from-tag.
- after sending the subscribe, UA1 has a pending dialog
  awaiting complete establishment when the from-tag becomes known
- the notify will have the from-tag and call-id from the invite,
  plus a to-tag assigned by UA2
- UA1 should try to match the (from-tag,call-id,to-tag) of the
  notify against existing established dialogs. This will fail.
- then (special case for notify), UA1 should try to match the
  (from-tag,call-id) against pending dialogs. This will succeed.
- UA1 marks the pending dialog complete, filling in the to-tag.
  (You can make the assumption here that the subscribe will
  eventually succeed.)
- UA1 goes ahead and processes the notify.
- later the 2xx for the invite arrives. UA1 successfully matches
  this against existing established dialogs, and processes it.

RFC6665 clarifies this behavior and tweaks it some.

        Thanks,
        Paul

_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors

Reply via email to