Transactions
A SIP transaction consists of a single request sent by the client, followed by one or more responses from the server. It is a fundamental building block of SIP communication, ensuring the reliable exchange of messages between SIP entities. Transactions in SIP are categorized into two types:
INVITE Transactions: These are used to initiate a session and follow a three-phase process: the client sends an INVITE request, the server responds with one or more provisional responses (1xx), and finally, it sends a final response (2xx for success or 3xx-6xx for failure). An ACK request from the client then concludes the transaction.
Non-INVITE Transactions: Used for all requests other than INVITE, these transactions have a simpler two-phase process: the client sends a request (e.g., BYE, REGISTER), and the server responds with a final response.
Transaction Identification: Each SIP request includes a Via header that contains a branch parameter. This parameter includes a unique value generated by the client for each transaction. Fields Call-ID, From and To tags also play a supportive role in transaction management. In combination with the branch parameter, they help ensure that responses are correctly correlated with their original requests, especially in complex scenarios involving forking and multiple responses.
Transactions ensure the atomicity of message exchanges, providing a mechanism for retrying requests, maintaining the sequence of messages, and managing timeouts and retransmissions.
Start innovating with Mobius
What's next? Let's talk!