Juha Heinanen wrote:
Maxim Sobolev writes:
Well, IMO absence or presence of tag in the To header field should be the definite difference between the two. INVITE which creates a dialg would be To-tag-less, while one that refreshes a dialog would usually have one. And if my memory serves according to the RFC INVITE is the only type of message which can create a dialog.
also subscribe and even notify can create a dialog.
I said "according to the standard". ;)
Nevertheless, absence/presence of To tag rule would likely apply to any other requests creating a dialog.
-Maxim
12.1 Creation of a Dialog
Dialogs are created through the generation of non-failure responses to requests with specific methods. Within this specification, only ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2xx and 101-199 responses with a To tag, where the request was ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INVITE, will establish a dialog. A dialog established by a non-final ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ response to a request is in the "early" state and it is called an early dialog. Extensions MAY define other means for creating dialogs. Section 13 gives more details that are specific to the INVITE method. Here, we describe the process for creation of dialog state that is not dependent on the method.
UAs MUST assign values to the dialog ID components as described below.