- 论坛徽章:
- 0
|
Quote from RFC 3261:
Dialog: A dialog is a peer-to-peer SIP relationship between two
UAs that persists for some time. A dialog is established by
SIP messages, such as a 2xx response to an INVITE request. A
dialog is identified by a call identifier, local tag, and a
remote tag. A dialog was formerly known as a call leg in RFC
2543.
So in most simple cases, a dialog represents a call (or more precisely,
a call leg).
SIP Transaction: A SIP transaction occurs between a client and a
server and comprises all messages from the first request sent
from the client to the server up to a final (non-1xx) response
sent from the server to the client. If the request is INVITE
and the final response is a non-2xx, the transaction also
includes an ACK to the response. The ACK for a 2xx response to
an INVITE request is a separate transaction.
So a transaction is a request along with all the associated responses up
to the final (non-1xx) response.
Both dialog and transaction (in an actual implementation) are logical
data elements or data structures that encapsulate state information as well as
"certain" data needed to process SIP messages (be it a transaction or dialog).
One relationship between a transaction and a dialog is that a transaction should
be part of a dialog.
Vivek: Register request creates transaction without any dialog.
i.e.
[Dialog X]
|
+----[Transaction 1]
+----[Transaction 2]
.
.
.
+----[Transaction N]
Say Transaction 1 is a re-INVITE while transaction 2 is an OPTIONS and
so on, but they are within the same SIP dialog, Dialog X.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/17855/showart_467233.html |
|