1.1.a SIP
1.1.a SIP
When the SIP session is established, it may, for the remainder of the life of this SIP session, be
carries through a smaller number of SIP proxies.
Media transfer between the TWO UAs may now start. The relation between the SIP session and the
media session remains for the entire communication session. The media session remains “under
control” of the SIP session. A change in the definition of the media session, as well as the
termination of the media session, is signaled between the UAs through the SIP session
SIP Dialog
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 Responses
The Responses that UAS may send to the UAC, in response to a request message are divided into response classes {ref1}
o 1xx class – provisional response
o 2xx class – success
o 3xx class – redirect
o 4xx class – request failure
o 5xx class- Server failure
o 6xx class-Global failure
Command Sequence {ref1}
o To ensure that transactions are processed in the appropriate sequence, a sequential number is assigned to each transaction within a SIP session.
This sequential number is known as the command sequence (CSeq).
o Cseq is carried over intermediate proxies
o Cseq header carries both a numerical value and name of the method
o The ACK transaction has special handling, as far as the Cseq header is concerned. An ACK transaction is closely related to an invite transaction; it
acknowledges the final response of the invite transaction. This close relation is reflected in the fact that ACK transaction contains the same Cseq
value as the INVITE transaction it belongs to
SIP Transaction State Models{ref1}
The transaction instance constitutes a process that may be created by a UA. In A way , the UA uses the services
from a transaction instance. The UA creates a request message, starts a corresponding transaction client model
instance, and passes the request message to the client state model instance, with the request to further handle
that transaction toward the remote end. The Phone application, being the user of the services from a transaction
model instance , is referred to as the Transaction User {Tu}
Redirect Server:
A redirect server is a server that provides location services to user agents or proxies by replying to request with the location or route to the host ultimately
services the request.
This is desirable in situations where there is a need to build highly scalable servers that do not participate in a sip transaction but simply help the proxy or user
agent reach the host by sending a single message.
Redirect servers reply to request with 3XXX response in which the contact header contains the URI of the location to the host
Registrar Server:
A registrar server accepts registration request from user agents and create a mapping between their address of record [A record ] and user agents location. In
other words phone number and ip address its located in. Subsequently , this mapping between the user agent AOR and location is indexed and stored in a
location server
Location Server:
A location server contains a mapping between a user agents AOR and location
B2BUA: [CUCM is B2BUA]
A B2UA is similar to a stateful sip proxy server in that it actively maintains call state , but does not have the same limitations as a SIP proxy server. i.e B2BUA can
disconnect a call and modify media information sent in the session description protocol [SDP].
SIP request from one subscriber [Calling Party] to another subscriber [called party] is a representative example of communication between two
subscribers. However, many deviations are possible such as :
one or more intermediate SIP nodes take the role of B2BUA; in this case, the ISP session from calling
Calling Party to called party is divided into multiple SIP sessions. Each spanning a section of the SIP chain, between calling part and
called party
The request message traverses an additional SIP proxy at the border between two interconnected VOIP networks. This routing through a
border SIP proxy may involve the use of internal versus External DNS
request message is routed through one or more SIP application servers; this routing would be done by the service node/registrar
serving the calling or called subscriber
the registrar of the destination subscriber or a SIP application server of the destination subscriber forwards the request message to
two or more terminals associated with the destination subscriber [parallel/sequential alerting]
o To limit the number of branches a request message may span, Max-Forwards is the header included with starting value 70. Every proxy that
forwards the request message decrements the max-forward value by 1 . when it reaches 0, a proxy will no longer forward the message but will
instead , return unsuccessful final response message 483 too many hops
Response Message Routing [ via headers]
The sending of the request message from UAC to UAS has resulted in a transaction trial being established. The Transaction trail between UA1 and UA2 runs
via a set of transaction branches. For each Sip Request and response a branch identifier is created, hence sip trail is concatenation of branch identifiers
Invite message from UA1 to it adjacent proxy has the following structure
A via header in the request message identifies a transaction branch. The SET of via headers in the request
message represents the transaction trial for this transaction. Each entity that sends or forwards a request message adds a Via header to the request message
containing the following information:
o Transport indicator
o Address of sending entity
o Branch value
A SIP response message follows the same signaling path as the request message to which this response message relates. When a UA receives a request message,
hence taking the role of UAS, it stores the received set of Via headers. This set of Via headers is stored in the server transaction state model instance; it is
needed only for the processing of this particular transaction. . The UA acting as UAS for this transaction will send zero or more provisional responses and will
send a final response. For the sending of a response, the UAS uses the set of Via headers associated with this transaction. Response message routing is hence
done top to bottom through via header set
The Entire via header set is stored by the UAS and is used for every response message to be returned for this transaction, including response transmission. There
are cases where a branch identifier is also reused in the direction from UAC to UAS. These include:
o when a UAC[or proxy] sends an ACK request in response to a non-2xx final response
o When a UAC[or proxy] retransmits a request due to expiry of a UAC state model-related timer
o When a UAC cancels INVITE, it uses the same branch identifier
Building A SIP routing path for Subsequent SIP requests [ Re-route headers]
This transaction trail, formed by the set of Via headers, is used for the routing of response message(s). In addition, proxies will build up a subsequent
transaction path. This subsequent transaction path is formed by a set of headers, called Record-Route headers, representing the set of proxies through which
a subsequent transaction will be routed. The subsequent transaction path does not have to be identical to the initial transaction path
A set of Record-Route headers is constructed, as the INVITE request message travels toward the destination UA, acting as UAS for the INVITE transaction.
Record-Route set needs to be constructed and exchanged only once. To be more specific:
Record-Route set is constructed during the sending of the initial INVITE request message
Record-Route set is included in the initial INVITE transaction response.
The UAS copies the entire Record-Route set in the response message. The Record-Route set is then conveyed to the UAC. The UAC and UAS now both have a
Record-Route set that may be used for subsequent transaction routing
The Record-Route set may be included, from UAS to UAC, in a provisional response or in the final response:
1. The 200 OK is a reliable response. The reliability of 200 OK is constituted by the ACK request message following the 200 OK.
2. It is only after the 200 OK final response that a requirement arises for subsequent SIP transactions, hence there is no reason to return the Record-Route
set earlier than the 200 OK. The ACK request following the 200 OK will be the first request message using the Record-Route set.
3. However, if preconditions apply or early media is used, then the Record-Route set will be sent in a provisional response.
Figure 7.20 shows a limited SIP signaling sequence for an initial INVITE transaction, showing only the request line, status line, Route headers, and Record-Route
headers, as these are the headers that are used for SIP routing. The bold text in Figure 7.20 represents the information that is stored in UA-A and UA-B for this
SIP session. Subsequent transactions will use that information, as depicted in Figure 7.21. In Figure 7.21 UA-A uses the stored Record-Route set and contact
address to set the Route headers and R-URI respectively, in the ACK request to UA-B. UA-B uses the stored Record-Route set and contact address to set Route
headers and R-URI in the BYE request to UA-A.
SIP transport considerations {ref1}
o SIP being an OSI application protocol, runs on top of a transportlayer , such as UDP, TCP or SCTP. For every branch that is established by a SIP UA, i.e.
for every transaction that is initiated and for which a request message is sent from the UAC state model instance, the transport mode has to be
determined. The Transport method used for sending a request message may be determined from the route header or from the R-URI. Consider ,
below INVITE message
The routing of this message will be based on the topmost route header. This route header has the form of a domain name [proxy1.ims.operator-
A.se] . hence the sender of this request message has to apply DNS resolution in order to determine the transport protocol, IP address and Port
number. The following DNS services required here
o NAPTR [ Name Authority Point Record] : supported services for this domain , for e.g. UDP [_sip._UDP.proxy1.ims.operator-A.se] or
[ sip._TCP.proxy1.ims.operator-A.se]
o SRV record query : hostname of the SIP server
o A record query : IP address of hostname
The second hop for the above example invite message in this section is directed to server1.ims.operator-a.se. here , the proxy node , which received the
invite message from the UA, applies DNS queries as the UA had applied to determine SIP service, transport protocol, IP address and port number
The provisional response, in this example 180 Ringing, is not sent reliably. Hence, the UAS takes care not to include information in the provisional response that
is necessary for the further handling of the transaction or for the further handling of the SIP session.
The UAS applies a similar retransmission method for the final response as the UAC applies for the
request message. When the UAS has sent the final response, it starts a timer that monitors the
receipt of the ACK message for this transaction (see Figure 7.26).
Figure 7.27 shows the case where the ACK request message from UAC was lost. In this example,
where the ACK message transmission failed, the UAC will receive a retransmission of the final
response. The UAC will then retransmit the ACK message. This also shows that the UAC should remain
active for a finite duration, in order to be able to receive a possible retransmission of the final
response.
There may be multiple provisional responses for a transaction. For this reason PRACK
needs double identification
* the transaction [within the SIP session] it belongs to
* the provisional response within that transaction it belongs to
In the figure you can notice that PRACK transaction doesn’t traverse sip proxies. IN addition, the PRACK request message is directed to UA-B
contact address (sip:194.151.127.212) as opposed to UA-B’s public identity (sip:john.smith@…). The provisional response for which the
PRACK is requested (183 Session progress) contains Record-Route headers and the contact address of UA-B. UA-A uses these Record-Route
headers and contact address for the routing and addressing respectively of the PRACK request to UA-B. The intermediate proxies, so far as
they do not record route, need not be aware of the PRACK transaction. The non-record routing proxies will handle just the INVITE
transaction
Invite initiator to indicate through the supported header Invite responder indicate through the Require header
Both invite initiator and invite responder may request a reliable provisional response
when the Invite request contains Require:100 rel, the request for a reliable provisional response applies to any of the provisional responses
except 100 Trying for this transaction.
If However the invite request does not contain Require:100Rel , but contains supported:100rel , then the INVITE responder may determine
per provisional response whether reliable transmission applies
the use of reliable transmission of provisional response applies bot th UDP and TCP
o Cancelling of SIP happens when the caller wants to abandon the call, means the processing of the SIP Invite transaction shall be cancelled.
o A SPECIAL method called CANCEL is used, A Cancel transaction is sent to the responder , requesting to the cancel the execution Invite transaction
o Because the responder has not yet responded for the invite sent , the SIP trail of the invite transaction is unknown to the sender. The exact SIP trail is
determined on hop by hop basis. In order to send a cancel instruction to the invite responder, the cancel request is sent by the INVITE intiator and by each
intermediate proxy , to the same transport address as the corresponding INVITE was sent. This same transport address includes IP address , transport
protocol and port number
o There is no need to provide any response o the CANCEL request, other than a 200 ok, indicating that the request is received and will be forwarded to the
NEXT hop
o When a CANCEL request arrives at an intermediate proxy, the proxy needs to match this cancel request with the associated invite transaction. This is done
by using the same branch identifier for the cancel request as for the invite request
o Besides a branch identifier , the following headers in the cancel request should be identical, per cancel hop , to the corresponding header in the INVIE
request [for that hop) that is to be cacnelled
Request URI,Route header,Via header,Cseq value,From header , to Header and call-id
o When UAS receives a cancel request and has matched the cancel request with an INVITE transaction , it does three things
Release access network resources, stopping the alerting of the called party and generate final
response for the invite transaction
The final response 487 request terminated is used for this purpose. The invite transaction is further
terminated in the regular manner , which includes the sending of an ACK message by the UAC to the
UAS
o Should it occur that the UAS had already sent a final response on the invite request, then the invite transaction can no longer be canceled.UAC will have to
acknowledge the 200 OK in the regular manner and then terminate the SIP session in the usual fashion by initiating a BYE transaction
o The UAC that intends to cancel an INVITE transaction, e.g. because the calling party has abandoned the call attempt, must wait until the first provisional
response is received and may then send the CANCEL request. This wait for the first provisional response before sending the CANCEL request has to be
done by each intermediate proxy in the SIP chain up to the UAS.
o A cancel request may be issued before the dialog was established, i.e before a TO tag was received.
SIP DIALOGS
Figure below depicts SIP transaction initiation between UAC and UAS. As soon as UA-A has received a
provisional response (except 100 Trying) from UA-B, a dialog is established between UA-A and UA-B.
All further SIP signaling between UA-A and UA-B , concerned with this relation , is carried through
this dialog. Also point to be noted is the dialog is established between UA-A and UA-B and not
between UAC and UAS
Confirmed dialog : when the invite transaction between UA-A and UA-B is successfully completed
(2xx class final response ) .
Early Dialog: as long as the execution of the INVITE transaction is in progress , the dialog between UA-A and UA-B is referred to as early dialog
A SIP message carries a dialog identifier , this enables a UA to associate an incoming message with a particular SIP dialog. This dialog identifier composed of
three elements from tag, to tag and call-id
a SIP dialog is strictly identified by the From tag, the To tag, and the Call-ID. From that point of view, it would be permissible for a SIP application server to
modify the URI in the From header. E.g
“notice that even the URI is changed the tag is still the same”
IETF 3261 allows to do this when compared to its predecessor 2543
When forking occurs , invite request is received on two or more terminals { parallelly or sequentially }
The Two INVITE request messages sent by the registrar to UA-B(1) and UA-B(2), except for
R-URI : the R-URI contains the contact address of the terminal
Route Header: the Route header identifies the path that shall be followed by the INVITE request message , from registrar to UA-B terminal. Different
terminals of the same subscriber may be registered via different proxies . Hence, the route headers in the INVITE messages may indicate different
proxies
Via Header [ branch ] : for each invite request message sent from the registrar, a client transaction is initiated ; for each client transaction a designated
branch identifier is used. The IP addresses in the VIA header should be identical, since the INVITE messages are sent from the same host and application
Each UA-B may generate provisional response.in this case UA-B(1) and UA-B(2), are forwarded transparently to UA-A. The provisional responses received by UA-A, for different dialogs , will differ in atleast the following
SIP headers
TO TAG , CONTACT ADDRESS, RECORD ROUTE , CONTENT TYPE and CONTENT LENGTH
• Provisional responses from the respective user agent servers (UASs) will be forwarded transparently to the user agent client (UAC).
• When the UAC has received a 180 Ringing response and then receives a second 180 Ringing response, relating to a second dialog, this has no
effect on the alerting state of the terminal. That is, the terminal of the calling party remains in an alerting state.
• The receipt of multiple early dialogs by the UAC (calling party) has the side-effect that the UAC is aware that multiple terminals of the called party
are being alerted. The arrival of a second 180 Ringing (relating to another dialog) is normally not shown to the calling party.
• When a non-2xx-class final response is received from a particular UAS, the INVITE transaction with that UAS terminates (and the forking proxy will
send ACK to that UAS). The forking proxy will store the final response received from that UAS and will continue to send INVITE to other available
contact addresses (this may have been done in parallel), until a 2xx-class final response is received from a particular UAS. That final response is
forwarded to the UAC. The forking proxy cancels any INVITE transaction still ongoing to other contact address(es), in a manner that is similar to the
canceling of an INVITE transaction by a UAC.
• When none of the contact addresses returns a successful final response, the forking proxy determines “the best final response” from the set of
received final responses and returns that best final response to the UAC. IETF RFC 3261 describes the rule for determining the best final response.
There is no defined possibility for a UA to indicate in the INVITE request whether or not it supports multiple early dialogs
Target Set
The process in the registrar of matching the R-URI of the incoming INVITE request with one or more registered contact addresses, for that R-URI, is known as building the target set.
Early Media
o Early media means a call is being established and media is transferred before the call is answered
o In this example, UA-B uses the reliable provisional response mechanism (provisional response followed by PRACK transaction) to indicate to UA-A that it (UA-B) intends to send media during the establishment of the
call
o The PRACK message indicates to UA-B that UA-A has received the 183 Session Progress and that UA-A is ready to receive (early) media
o This early media may, for example, be a personalized ringback tone generated by the terminal
o The 180 Ringing provisional response gets the SIP phone to transit to the alerting state; the subscriber may then see an indication on the display that the call has reached the destination subscriber and that alerting has
started. There is already early media flowing to the calling party, so the terminal should not generate local ringtone
o Early media may take one of the following directions: (1) media from UA-A to UA-B ( forward media); (2) media from UA-B to UA-A ( backward media); and (3) media between UA-A and UA-B in both directions
( bothway media)
RTP
The media streams that are defines with various media lines relate to the RTP sessions , carrying media in accordance with the media descption. Each RTP
session has an RTCP session associated with it . A general rule is that the RTCP session should use the same network connection and transport protocol as the
corresponding RTP session. A further general rule is that an RTP session should use an even port number and the corresponding RTCP session the next higher
port number
SIP Messages
SIP Request Description , SIP Requests are known as methods make sip messages workable
Core Messages
INVITE A caller sends out this message to request another entity to join a SIP session
A session is considered established if an invite has received a success response or an ACK has been sent
A successful invite request established a dialog between the two user agents which continues until a bye is sent to terminate
the session
An INVITE sent within an established dialog is known as re-invite
Re-invite is used to change the session characteristic or refresh the state of a dialog
REGISTER A client uses register to register the address listed in the TO header field with a SIP registrar server
The Register request may be forwarded or proxied until it reaches an authoritive registrar of the specified domain
It carries the AOR in the TO header od the user that is being registered
Register request contains the time period 3600sec
One user agent can send a register request on bhealf of another user agent. This is known as third-party registration , here the
from tag contains the uri Of the party submitting the registartion on bhealf of the part identified in the to header
ACK This indicates that the client has received a final response to an INVITE request
BYE This is used by UAC to indicate to the server that it wishes to terminate the established SIP session
This cannot be sent proxy server
Bye request normally routes end to end , by passing the proxy server
Bye cannot be sent to a pending an INVITE or an unestablished session
OPTIONS This request queries the server or user agent for its capabilities and its avaiablity
The response to a request lists the capablitites of the user agent or server
A proxy never generates an options request
CANCEL This is used to cancel a pending request and can be sent only if the server has not replied with final response [ user agent or
proxy server can send this]
Cancel is a HOP by HOP,
Extensions
Publish This publishes an event to the server , such as user agent to send event information to a server
Publish is mostly useful when there are multiple sources of event information
A Publish request is similar to a notify , except that it is not sent in a dialog
A Publish request must contain an Expires header field and a MIN-Expires header field
PRACK This provisional ack is sued to ensure that provisional responses are received reliably
Generally PRACK is generated by a client when it receives provisional response containing RSEQ reliable sequence number and a
supported:100rel header
PRACK contains [Rseq + Cseq ] vaule in the rack header
The prack method applies to all provisional responses except the 100 trying response , which is never realibly transported
A prack may conatin a message body ; it may be used for offer/anaswer exchange
Info This allows the exchange of application-level information among communicating entities
Info is used by a user agent to send call signaling information to another user agent with which it has established a media session
This is an end-to-end request
A proxy will always forward an INFO request
REFER This instructs the recipient to contact another entity , using the information found in the refer request
Refer must contain a Refer-to header . This is mandatory header for REFER
Refer can be sent inside or outside a dialog
A 202 accepted will trigger a REFER request which indicates that other user agent
UPDATE This modifies the state of the session without changing the state of the dialog
1XX Informational : The request has been received and is being processed
2xx Success: the request has been received , understood and accepted
6XX Global Failure : the request could not be fulfilled at any server
Method and in general, each resource within a SIP network is identified by a URI , which is expresses wither as SIP URI or SIPS URI
Request URI Example 3-1 shows the first line of a SIP INVITE message, beginning with the SIP method type (INVITE), followed by Request-URI, and ending
with the SIP version (SIP/2.0).
INVITE sip:14083926001@cl2-cucm-sub1.entcomp1.com;user=phone SIP/2.0
Via: SIP/2.0/TCP 10.118.58.68:55093;branch=z9hG4bK3cb3039b
From: "9193925002" <sip:9193925002@cl2-cucm-sub1@entcomp1.com>;
tag=f45c89b76b25000b60fc9d5d-68bf7669
To: sip:14083926001@cl2-cucm-sub1@entcompl1.com
VIA Indicates transport layer protocol used for exchanging SIP messages and the location to which responses have to be sent
Via: SIP/2.0/UDP 10.1.1.1:5060;branch=z9hG4bK2D1F9D1C08
Also included in the via header field is the branch parameter, which services as an identifier for the SIP transaction created by any request and
remains the same from the
Perspective of the UAC and the UAS ,
Subsequent requests that create new transactions must ensure that they generate new and unique values for this parameter
When Sip proxy handles a request, such as a SIP INVITE, it inserts a via header field before forwarding the request to the next hop. A request
traversing proxies has more than one via header field value
From Indicates the logical entity of the user agent that initiates the request.
This field can carry initiator URI and also optional display name
Intermediary devices like SBC usually transform the contents of the from header field, this is due to enable interoperability across different SIP
networks
The from header field must carry a tag parameter.
To This header field usually idnetified the locgical entity that is supposed to process the request and is populated using SIP URI/SIPS URI or TEL
URI
The logical entity identified in the TO header may or may not be the actual UAS that process the request
In fact, the entity identified in the TO header field usually isnt the one to process the request traverses several hops
Dialog-creating requests[such as invite] must never carry a tag parmater in the TO header field., Instead, the tag parmater is populated by
the user agent that process the request
Call-ID This header field uniquely identifies all messages that belong to a SIP dialog; the SIP dialog in turn is uniquely identified by the combination of
the CALL-ID header, the From tag and the To tag
Max-Forwards This header field value limits the number for hops a request can traverse before it reaches its final destination. Every node that receives a
request either partially or completely process a SIP request.
Partial process : running syntactical checks , adding header fields or occasionally modifying a request before it is passed on to the next hop
Complete process : sending oner or more of the six response calasses after process the request.
Every node that partially procces the request decremnts the max-forwards header field value by one before send the request to the next hop
If a request is at received at a user agent /proxy that is not the final destination of the request, an explict check is run on the value of the Max-
forwards header field.
0 - request is rejected with a 483 too many hops response
none zero - it is forwarded to next hop
The SIX header listed above are required for every type of sip request. However , additional header fields might also be required , depending on the type of the
SIP method [request] For example, a SIP invite requires additional header fields accompanying the six header fields to be efficiently processed by the UAS. For
example a SIP invite, the following additional header fields are required
This headers are required for invite messages and optional for other methods.
Contact This header field provides a SIP or SIPS uri at which the user agent can be contacted for subsequent requests.
For example, consider an audio call that is already established between a UAC and a UAS. Due to negotiated session policy or application
interactions, the UAS might need to send
A mid-session request to the UAC. To do so , it uses the SIP or SIPS URI indicated in the contact header field
Note that the usage of the contact header field is not restricted only to INVITE requests.this header field is also present in response to the SIP
IVNITE and other SIP methods when applicable
Allow It is recommended for the allow header field to be present within the SIP Invite.
This header field advertises the different SIP methods that can be invoked on the UAC within the scope of the dialog initiated by the SIP INViTE
request
Parsing the Allow header field allow a UAS to understand the types of requests that can be sent to the UAC during the SIP dialog.
For example , if the UAS wants to transmit dual-tone multifrequency information using the SIP info message , it can do so only iof the UAC
advertised support for the SIP info message
Is in the allow header field of the INVITE.
Allow:INVITE,ACK,CANCEL,BYE,REGISTER,REFER,INFO,SUBSCRIBE,NOTIFY,PRACK, UPDATE,OPTIONS
Though it is recommended for UACs to include the Allow header field in INVITE requests, there might be instances when this header field isnt
included. In such cases, the UAS must not assume that UAC does not support any method; rather , it must be interpreted as the unwillingness of
the UAC to advertise what methods it supports.
The UAS can go ahead and send requests that are required to further advance the communication session. However , if the method is
unsupported by the UAC, these requests are rejected by using the 405 Method not allowed response
Supported A UAC might use this header field to enumerate the various extensions to baseline SIP that it supports
A UAS might apply these extension to baseline SIP when responding to the request, for example, if the UAC includes the timer extension in the
supported header field, it advertsies support for SIP session refresh
Accept The UAC might include the accept header field to indicate content types that are acceptable to it in responses to request or in new requests
within dialog. This header field allows user agents to advertise support for vasrious session descrption formats
Although some of the header fields listed here are optional, they are nonetheless used ubiquitously across device types and vendors for initiating
communication sessions over SIP. The Folowing
Header fields might be added in SIP INVITE requests but their exclusion does not deter the SIP session from proceeding smoothly
Optional for SIP invite messages
Require This header field enumerates extension to baseline SIP using option tags . Each option tag represents a SIP extension that the server must
support in order to process the request.
if the server cannot support a specific extension , the request is rejected with a 420 Bad extension response
Request Category
Allow: invite, options, info, bye, cancel, ack, prack, update, refer, subscribe, Methods and Events
notify
RTCP is used for video rate adaption when congestion/packet loss encountered