SIP protocol structure through an example
(1 of 20)
SIP INVITE request:
from Alice's UA to Proxy1
At Initiating UA:
The UAC (User Agent Client) TU:
Creates the initial INVITE request;
Creates a new client transaction (in the transaction layer) and passes it the INVITE message, plus the IP address, port and transport.
The new "INVITE" Client Transaction (state="calling") is identified by the CSeq header field and the "branch" parameter of the Via header field. The T1 timer is started (if UDP) before passing the message request to transport
The Client Transport, before sending the request, inserts the 'sent-by' parameter in the Via header field.
At Proxy 1:
When receiving the request, the Server Transport, by examining the 'sent-by' parameter in the top Via header field, matches it to the relevant server transaction and adds the "received" parameter.
The new "INVITE" server transaction (state="proceeding") is created by the proxy core (not acting as TU). The server transaction transmits the INVITE request to the TU and somehow knows that this TU will generate a response within 200ms: it does not send back a 100 Trying response.
The proxy core TU first validates the INVITE request. It cannot authenticate the originator because no credentials are provided. It rejects the request by sending back (see next slide) a 407 (Proxy Authentication Required) response.