Session Initiation Protocol (SIP) is a control (signaling) protocol developed by the Internet Engineering Task Force (IETF) to manage interactive multimedia IP sessions including IP telephony, presence, and instant messaging. The SIP Servlet Specification (Java Specification Request 116), developed through the Java Community Process, provides a standard Java API programming model for delivering SIP-based services. Derived from the popular Java servlet architecture of Java Platform, Enterprise Edition (Java EE is Sun's new name for J2EE), SIP Servlet brings Internet application development capabilities to SIP solutions.
IT and telecom are converging. Network-IT applications, typically data oriented, are merging with communication applications. The increasing number of Call Me buttons appearing on Webpages is an example of this integration. The SIP Servlet Specification brings a familiar programming model to Java developers for building converged applications. This article gives a step-by-step introduction on how to use SIP Servlet to build a simple echo chat service.
Defined in Request for Comments 3261, SIP is a protocol for establishing, modifying, and terminating multimedia IP communication sessions. Figure 1 is a simple example of using SIP to establish a VoIP (voice-over Internet Protocol) call:

Figure 1. Typical SIP message flow in VoIP calls
All the white lines in Figure 1 represent the SIP communications. Caller sends a SIP INVITE request to invite the "callee" to establish a voice session. Callee first responds with a message that has a 180 status code to indicate the phone is ringing. As soon as phone is picked up, a response with a 200 status code is sent to the caller to accept the invitation. Caller confirms with an ACK message, and session is established. Once the session is established, the actual digitized voice conversation typically transmits via Realtime Transmission Protocol (RTP) with the session, as the red line in Figure 1 indicates. When the conversation ends, a SIP BYE request is sent, followed by a response with a 200 status code to confirm the session termination.
Here is an example of a SIP INVITE request and a response with a 200 OK status code:
SIP INVITE request:
INVITE sip:callee@callee.com SIP/2.0
Via: SIP/2.0/UDP pc.caller.com;branch=z9hG4bK776asdhds
Max-Forwards: 70
To: Callee <sip:callee@callee.com>
From: Caller <sip:caler@caller.com>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:caller@pc.caller.com>
Content-Type: application/sdp
Content-Length: 142
(content (SDP) is not shown)
SIP 200 OK response:
SIP/2.0 200 OK
Via: SIP/2.0/UDP pc.caller.com;branch=z9hG4bK776asdhds;received=192.0.2.1
To: Callee <sip:callee@callee.com>;tag=a6c85cf
From: Caller <sip:caller@caller.com>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 314159 INVITE
Contact: <sip:callee@workstation.callee.com>
Content-Type: application/sdp
Content-Length: 131
(content (SDP) is not shown)
As you can see, the format of SIP resembles HTTP. However, when compared to HTTP, SIP is:
Hey, casinoonline We addedBy Anonymous on October 17, 2009, 7:05 pmHey, casinoonline We added 10 new games to our collection of free online games every day. We have games for girls games, action games, casino online to play
Reply | Read entire comment
fabularBy Convert FLV Files on October 11, 2009, 1:32 amfabular
Reply | Read entire comment
testBy Anonymous on October 1, 2009, 9:22 amtest
Reply | Read entire comment
sadszfhsdfgwawsgdtBy Anonymous on September 29, 2009, 4:51 amsadszfhsdfgwawsgdt
Reply | Read entire comment
java client asterisk By Anonymous on July 19, 2009, 6:19 amhello I want to develop java client asterisk is what I have them for help please?
Reply | Read entire comment
View all comments