SIP Transactions vs. Dialogs

14 Mar

During the establishment, maintenance and termination of a SIP session, signaling messages are exchanged between the two SIP endpoints. There are two different kinds of signaling “conversations” that those messages take part in: transactions and dialogs.

A transaction is a SIP message exchange between two user-agents that starts with a request and ends with its final response (it can also contain zero or more provisional responses in between). For example, during the termination of a SIP session, one user releases the call by sending a BYE request and the other party replies back with a 200 OK response. This message exchange is called a transaction.

But what happens in the case of the INVITE request? The establishment of a SIP session starts basically with an INVITE request and is considered as completed upon the receipt of the ACK. In this case, the transaction starts with the INVITE request and ends with the 200 OK, so the ACK is not part of the transaction. The ACK can be considered as a transaction on its own. However, when the final response to an INVITE is not a 2xx response, then the ACK is considered as part of the transaction.

A dialog is a complete exchange of SIP messages between two user-agents. That means that transactions are actually parts of a dialog. For example, in the case of a SIP session establishment, a dialog starts with the INVITE-200 OK transaction, continues with the ACK and ends with the BYE-200 OK transaction.

The picture below depicts the dialog and transactions that take place during the establishment of a SIP session:

SIP transactions and dialogs

There are different SIP headers/parameters that identify the dialogs and transactions, and they will be analyzed in later posts.

Source: http://telconotes.wordpress.com/2013/03/13/sip-transactions-vs-dialogs/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: