I have discovered what appears to be ambiguity/unspecified behavior in the workings of 
dialogs, as specified in RFCs 3261 and 3265. I've tried to frame this as clearly as I 
can in questions below. I would appreciate clarifications from anybody who considers 
themselves expert in the topic.

        Thanks,
        Paul

1) --------------------------------------------- 

According to RFC 3265, it is legal to send a SUBSCRIBE within a dialog established by 
an INVITE. In this case, the subscribe, the invite, and all the notifies resulting 
from the subscribe share the same dialog.

Q: Is the converse true?

Specifically, what happens if I send an INVITE within a dialog established by a 
SUBSCRIBE? Does it share the dialog, or does it result in an error of some sort?

2) --------------------------------------------- 

Q: Can a SUBSCRIBE cause a target refresh?

RFC 3261, section 12.2 says:

   For dialogs that have been established with an
   INVITE, the only target refresh request defined is re-INVITE (see
   Section 14).  Other extensions may define different target refresh
   requests for dialogs established in other ways.

RFC 3265 doesn't explicitly mention target refresh or remote target. It does however 
discuss refreshing of subscriptions for the purpose of changing the expiration time. 
It also fails to discuss explicitly what target address is used for notifications, 
though it does say:

   This NOTIFY message is sent on the
   same dialog as created by the SUBSCRIBE response.

By inference, the Contact header in a dialog creating SUBSCRIBE must define the 
notifier's remote target. 

Analogy to 3261 would suggest that a SUBSCRIBE used to refresh a subscription could 
refresh the target by including a Contact header with a new value. Is this valid? If 
not, what should happen if it is attempted?

3) --------------------------------------------- 

Suppose a dialog has been established by an INVITE. Then, a SUBSCRIBE is sent within 
this dialog. Further, suppose that the Contact header in the SUBSCRIBE differs from 
the the remote target of the invite dialog.

RFC 3261 section 12.2 says:

   Requests within a dialog MAY contain Record-Route and Contact header
   fields.  However, these requests do not cause the dialog's route set
   to be modified, although they may modify the remote target URI.
   Specifically, requests that are not target refresh requests do not
   modify the dialog's remote target URI, and requests that are target
   refresh requests do.

Q: Is this SUBSCRIBE considered a target refresh request? 

Q: If so, does it affect the target for the INVITE as well?

Q: If it is not considered a target refresh, 
   does it result in an error response?

Q: If it doesn't result in an error response, 
   what address is used for NOTIFY messages? 


4) --------------------------------------------- 

Suppose a dialog is being shared by an INVITE and a SUBSCRIBE. (Assume both specified 
the same Contact address.) Then a reINVITE is used to cause a target refresh, 
providing a new Contact address.

Q: Does this change in remote target affect where NOTIFY messages are sent?
_______________________________________________
Sip-implementors mailing list
[EMAIL PROTECTED]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors

Reply via email to