Brief Summary

advertisement
SIP (Session Initiation Protocol)
SIP is an application-layer control (signaling) protocol for creating, modifying and
terminating sessions with one or more participants. These sessions include Internet
multimedia conferences, Internet telephone calls and multimedia distribution.
SIP originates from Mbone set of utilities and protocols. Mbone (multicast backbone)
was an multicast network over Internet in order to distribute multimedia content. This was
also basically a session initiation protocol. So in 1999 SIP was approved as an official
standard and RFC2543 was published.
SIP has some important features like scalability, interoperability, extensibility,
flexibility and providing mobility. SIP can be used not only for Internet telephony; it can also
convey instant messages, jpegs and other MIME types.
In the life cycle of a SIP based session the very first thing is to initiate a session. It
can also modify and end a session. In order to initiate a session SIP has to locate the user first.
The user can use different computers on different places so first it has to find the user. After
finding the user SIP delivers a description of the session in order to inform the user. SIP just
conveys the descriptions it doesn’t know anything about the session itself. The most common
protocol to describe sessions is the Session Description Protocol (SDP, RFC 2327). After
locating the user and conveying the description of the session SIP conveys the response of the
user. The user can for example accept, reject, and forward the session. If the session is
accepted then an active session has been initiated. After the initiation of the session SIP can
also modify the session by sending a new description.
SIP is based on the request-response paradigm. It has some methods with which SIP
can manage the sessions. The methods are Invite, Ack, Bye, Cancel, Options and Register.
The Invite method indicates that the user is invited to a session. A session description is also
included in the message body. Ack method is used to confirm a session establishment. This
method can only be used with Invite requests. Bye method terminates the sessions. Cancel
method is used to cancel a pending Invite. The Options method is used to query the server for
its capabilities. The Register method is used to bind a permanent address to the current
location of the user. It may also convey the user data with the CPL scripts.
In order to establish sessions first the caller has to send an Invite to the user with
whom the caller wants to talk to. This request is sent to the address of the user. The addresses
in SIP are like mailto URLs. For example if the caller wants to talk to the user
yalcinkayas@yahoo.com then the SIP address for the user is sip:yalcinkayas@yahoo.com.
When the Invite message is sent to the user then the user back a response. For example when
the user sends an Ack then the session is established. In SIP there is also response codes.
These codes means different things:
- 1yz Informational Responses
o 100 Trying
o 180 Ringing
o 181 Call is being forwarded
- 2yz Success
o 200 OK
- 3yz Redirection
o 300 Multiple Choices
o 301 Moved Permanently
o 302 Moved Temporarily
- 4yz Client Error
o 400 Bad Request
o 401 Unauthorized
o 482 Loop Detected
o 486 Busy Here
- 5yz Server Failure
o 500 Server Internal Error
- 6yz Global Failure
o 600 Busy Everywhere
The messages in SIP are not directly sent to the user. They are sent to proxy server,
which are responsible for routing and delivering messages to the called party. The proxy
servers relay call signaling. There are several types of proxy servers, like Call-stateful,
transaction-stateful and stateless proxies. Call-stateful proxies track call state and provide a lot
of services but they are not so fast. Transaction-stateful proxies track the requests and
responses but not the call state or session. Stateless proxies just receive requests, forward
them and forget them. So they are very fast but provide few services. Proxy servers also
provide forking, which is used for trying different locations for a request. There are also
Redirect Servers. These servers redirect the requestor to the other servers instead of
forwarding them. Redirection is useful if a user moves or changes the provider. There are also
SIP Registrars, which accept registration requests of the users.
In SIP the addresses are like email addresses. So the resource can be found through a
DNS server because the email address includes the domain name of the user. But there will be
a problem if you try to connect to a user by just knowing his/her telephone number. In order
to overcome this problem the ENUM is planned. Its basic idea is to enter the unique telephone
numbers to the Internet DNSs, in order to reach the resources of this telephone number. For
example a SIP phone or proxy server can do the number domain translation and then reach the
user by normally applying the SIP procedures. But there are a lot of normal and simple PSTN
telephones. These numbers will not be in the DNSs. So in order to contact them a telephone
gateway must be used which connects to the PSTN. There is also another protocol called
TRIP, which is related with these concepts. TRIP means telephony routing over IP and is
being developed by the IPTEL work group in the IETF. TRIP servers maintain and exchange
information on what gateways are available to establish calls to ranges of telephone numbers.
It allows multiple service providers to route calls through each other’s gateways.
Download