Internet Communications Using SIP : Delivering VoIP and Multimedia Services With Session Initiation Protocol {2Nd Ed.}

(Steven Felgate) #1
Media Negotiation

Media negotiationis part of the INVITE/200/ACKsequence used to establish a
SIP session between two endpoints. SIP itself does not provide the media
negotiation, but it enables media negotiation to occur between the user agents
using the Session Description Protocol (SDP). SDP is not a true protocol, but is
rather a text-based description language, which is defined by RFC 2327 [12]. It
has required and optional fields. Some of the required fields are included in a
SIP message body but are not used as will be shown here.


SIP Overview 111

TRANSPORT OF SIP MESSAGES OVER IP
SIP messages can be carried by transport-layer IP protocols, including
Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and Stream
Control Transport Protocol (SCTP), and Transport Layer Security (TLS). TLS is also
known by the name of its predecessor protocol, Secure Socket Layer ( SSL), that
uses TCP transport. Datagram TLS (DTLS) uses UDP transport.
SIP has built in reliability mechanisms so that it can use a “best effort”
unreliable transport protocol such as UDP. When UDP is used, one SIP message
is carried per UDP datagram. When TCP is used, a TCP connection is first
opened between the user agent and the next hop (which could be directly to
the other user agent or to a server). SIP messages are then streamed in the
connection. The Content-Lengthheader is mandatory for stream transports
as it provides a way to parse separate messages. Responses are sent in a
second TCP connection opened in the reverse direction using the information in
the Viaheader field. A TCP connection does not have to be kept open for the
duration of a session. If it has closed, a new TCP connection would have to be
opened to send a re-INVITEor a BYEto close the session.
Note that a SIP message path with multiple hops can use UDP for some hops
and TCP for other hops. The transport protocol used for a hop is recorded in the
Viaheader along with the IP Address and port number for sending responses.
SIP messages can also be carried using other transport protocols such as
Stream Control Transport Control (SCTP) developed by the IETF SIGTRAN
Working Group [11]. SCTP provides a reliable connection and additional
functionality such as multi-homing. Multi-homing allows a host to connect to
two or more servers at the same time. Should one of these servers become
unreachable, traffic can be instantly routed to the other server, minimizing the
outage time.
The choice of transport protocol is determined be the application. Most
simple SIP user agents such as SIP phones and PC clients use UDP for transport
because of the simplicity of managing a UDP session compared to other
transport protocols. Also, there is no setup delay in opening up a connection
(as with TCP transport) before the SIP message exchange can begin. TCP is
sometimes used between proxies, or in other applications where a more
permanent SIP connection is useful. SCTP has been proposed for use in
connections between proxies or between proxies and large PSTN Gateways
where a high throughput and low-latency connection is needed.
Free download pdf