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.
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:
There are different SIP headers/parameters that identify the dialogs and transactions, and they will be analyzed in later posts.