Re: [reSIProcate] RFC Question...
kaiduan xie wrote:
John,
Please see the inline comments.
kaiduan
--- John Draper <lists@xxxxxxxxxxxxxxxx> wrote:
Hi,
I have a question about the interpretation of the
RFC 3261. Cam someone
explain a few
things for me? It is part of my feeble effort to
understand what A
dialog is,
and how it relates to requests, when they are
created, and what they
contain.
The RFC says....
12.2.1.1 Generating the Request
A request within a dialog is constructed by
using many of the
components of the state stored as part of the
dialog.
Ok - what do they mean by a request within a dialog?
Does this mean
I instantiate a "dialog" object at the same time I
send the INVITE?
The request in a dialog may be re-INVITE, BYE message
if the dialog is created by INVITE message. For
SUBSCRIBE created dialog, the in-dialog request may be
SUBSCRIBE which is used to refresh the subscription.
So - you say a SUBSCRIBE would be a request within a dialog?
"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."
I just got to this section last night. But I'm still trying understand it.
For instance "Within this specification, only 2xx and 101-199 responses
with
a To tag...." was it implying that responses will have a "To" tag in it?
and a request that is NOT in the dialog, would be
like the REGISTER?
is that right?
REGISTER message does not create dialog, now only
INVITE and SUBSCRIBE message creates dialog.
This answered my question I had above this.
The RFC goes on to say.... "using many of the
components of the state".
What is the meaning of the word "components" in this
context? and
it states that the state is stored as part of the
dialog. If that's the
case, then why is it part of SipSession? Do all
dialogs have SipSessions?
But the word "components" really confuses me when
used in this context.
The components of the state means: dialog ID, a local
sequence number, a remote sequence number, a local
URI, a remote URI, remote target, ...
Oh, so a Component is like a "header field" or related to them. Right?
Please see Page 70 of RFC 3261.
"A dialog contains certain pieces of state needed for
further message transmissions within the dialog. This
state consists of the dialog ID, a local sequence
number (used to order requests from the UA to
its peer), a remote sequence number (used to order
requests from its peer to the UA), a local URI, a
remote URI, remote target, a boolean flag called
"secure", and a route set, which is an ordered list of
URIs. The route set is the list of servers that need
to be traversed to send a request to the peer."
I had trouble associating a "Piece of state" with a header field.
But interpreting what you said, this is what I understand.
John