Japanese sitemap
 
Softfront  
products technology company ir contact
SIP
SIP
SIP Related RFCs/Ids
Interop Tests
 
title_sip


What is SIP?
Realizable Functions
SIP Elements
Call Flow Example
Message Syntax
Address Syntax
SIP Methods
Response Codes
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 Call Flow Example
The following shows an example of call flow to make a call using SIP.

Example of making a call using SIP
Figure 1: Example of making a call using SIP

1 to 2 UA2 registers its current location.
3 to 4 UA1 sends a request to UA2.
5 to 6 Proxy server 2 determines the location of UA2 by querying location server.
7 Proxy server 2 delivers the request to UA2.
8 UA2 responds to UA1.
9 UA1 confirms the reception of the request and informs UA2.
10 Communication starts between UA1 and UA2.


In the case of UA 2's URI (address) has been changed
Figure 2: In the case of UA2's URI (address) has been changed

If the URI (address) of UA2 has been changed because of some reasons, proxy server queries redirect server of UA2's URI, and then informs UA1 the resulted URI.
UA1 receives this URI and may make a call again as the same flow as figure 1.
 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



 top