| What is SIP |
Session Initiation
Protocol (SIP) is an application-layer signaling
protocol for establishing, modifying, and
terminating multimedia sessions on IP network.
It was proposed in one of the working groups of
IETF and standardized as RFC 3261. SIP
enables various services including video
conferencing, telephony, instant messaging,
presence.
Although there is another
protocol called H.323 designed by ITU-T, which
has similar functionality, SIP is said to be
simpler and consumes less resources than H.323.
Also, SIP only establishes, modifyes, or
terminates sessions without concerning with
their contents. Thus, SIP can be easily combined
with other existing technology and become
flexible protocol.
Because of this
extensibility and integration capability with
other system, SIP is considered as the next
genaration standard protocol for real-time
communication.
Softfront actively
participates in HATS and SIPit to enhance
interconnectibity, and challenges to provide new
SIP-enabled services. |
top
|
| Realizable Functions by SIP |
SIP easily realizes
the following functions.
| ‘ |
Functions corresponding to
standard telephony functions Call
hold, call transfer, conferencing, call waiting,
and so forth.
|
| ‘ |
Presence Tracks the
other party's current status if the party's SIP
URI, an address designates a SIP terminal, is
known.
|
| ‘ |
Instant
messaging Enables the interaction
of short messages in
real-time.
|
| ‘ |
User
mobility Enables to contact to the
other parties at their nearest SIP terminals
independent of their location (it is necessary
to register on SIP redirect
server).
| |
top
|
| SIP Elements |
SIP is comprised of
the following elements.
| ‘ |
User Agent (UA) User
Agent is a user's terminal such as IP
softphone.
| ‘ |
User Agent Client
(UAC) A part of UA that is
responsible for sending
requests.
|
| ‘ |
User Agent Server
(UAS) A part of UA that is
responsible for responding to
requests.
| |
| ‘ |
SIP Server The
following three servers are generically called
as SIP Server. SIP server need not necessarily
implement the all three server
functions.
| ‘ |
Proxy Server A
server that relays SIP requests from UACs to the
next server (including UAS). Requests may hop
several servers depending on the network
configuration. Proxy server also provides
functions such as authentication,
acknowledgement, network access control,
routing, SIP request forwarding, and
security.
|
| ‘ |
Redirect Server A
server that receives a request and returns
calee's current address to the caller. The
caller (UAC) then calls the callee's address
returned. Unlike proxy server, redirect server
does not relay requests.
|
| ‘ |
Registrar A server
that receives a request for registering UAC's
current location. Generally, registrar runs on
the same host as proxy and redirect server
run.
| |
|
It is
also possible to implement a location server
along with the above three servers. Location
server stores registration information from
registrar, and responds to requests for
referencing callee's URI from redirect and proxy
servers. Location server can be implemented
in the same location as SIP server. However
SIP does not specify any methods to query
location server from SIP
server.
| |
top
|
| SIP Message Syntax |
Message syntax of SIP
is very similar to the standard syntax used on
the Internet, auch as SMTP and HTTP. Message
body is described in SDP in the case of INVITE
request.
| ‘ |
Start
line
|
| ‘ |
Header
(multiple headers are allowed)
|
| ‘ |
Empty
line
|
| ‘ |
Message
body (not
necessary)
|
|
Start line and
header(s) specify the type of a call, such as
service, address, and protocol. Message body
may not exist. If it exists, the type of the
message (request or response) and method or
response code determine how the message is to be
interpreted. Generally, message body is
described in SDP.
|
top
|
| SIP Address Syntax |
SIP address syntax (SIP URI) used
for specifying a callee is similar to an e-mail
address. It has the following
form:
sip:user:password@host:port;uri-parameters?header
SIP URI example
| ‘ |
sip:hoge@softfront.co.jp
|
| ‘ |
sip:hoge@softfront.co.jp:5090
(specify port number)
|
| ‘ |
sip:hoge:hogepass@softfront.co.jp
(specify password)
|
| ‘ |
sip:hoge@softfront.co.jp;transport=tcp
(specify transport)
|
| ‘ |
sip:softfront.co.jp;method=REGISTER?to=hoge%40softfront.co.jp
(register hoge's address by REGISTER
method)
| |
top
|
| SIP Methods |
SIP executes a command
by specifying a SIP method. The following are
defined as standard SIP methods.
| INVITE |
Invites a
user to a call. |
| ACK |
Acknowledges the reception of the
response to a request. |
| BYE |
Terminates
a call. |
| CANCEL |
Cancels an
INVITE request that has not been
responded. |
| OPTIONS |
Queries
the capability of a server. |
| REGISTER |
Registers
the current location of a user. |
| INFO |
Conveys
the information about a session (DTMF, image,
etc.). | |
top
|
| SIP Responce Codes |
SIP uses a part of
HTTP/1.1 response codes with some
extension. The following respose codes are
defined.
| 1xx |
Provisional Responses Indicate
that the request has been received and being
processed. ex.) 100 Trying and 180
Ringing
|
| 2xx |
Successful
Responses Indicate that the request has been
understood and accepted. ex.) 200 OK and 202
Accepted
|
| 3xx |
Redirection Responses Indicate
that further processing is required to fulfill a
request. ex.) 300 Multiple Choices and 301
Moved Permanently
|
| 4xx |
Request
Failure Responses Indicate that the syntax of
a request was wrong or the server could not
process the request. ex.) 400 Bad Request and
401 Unauthorized
|
| 5xx |
Server
Failure Responses Indicate that the server
failed to process the request. ex.) 500
Server Internal Error and 501 Not
Implemented
|
| 6xx |
Global
Failure Responses Indicate that the request
cannot be fulfilled on any server. ex.) 600
Busy Everywhere and 603
Decline
| |
top
| |