i. The Session Initiation Protocol (SIP) was designed by IETF. It is an application layer protocol that establishes, manages, and terminates a multimedia session (call).
ii. It can be used to create two-party, multiparty, or multicast sessions. SIP is designed to be independent of the underlying transport layer; it can run on either UDP, TCP, or SCTP.
I) Messages :
i. SIP is a text-based protocol like HTTP. SIP, like HTTP, uses messages. Six messages are defined as shown in Figure3.
ii. Each message has a header and a body. The header consists of several lines that
iii. Describe the structure of the message, caller’s capability, media type, and so on.
iv. The caller initializes a session with the INVITE message. After the callee answers
v. The call, the caller sends an ACK message for confirmation.
vi. The BYE message terminates a session. The OPTIONS message queries a machine about its capabilities.
vii. The CANCEL message cancels an already started initialization process. The REGISTER message makes a connection when the called is not available.
Fig3: SIP messages
i. In a regular telephone communication a telephone number identifies the sender, and another telephone number identifies the receiver.
ii. SIP is very flexible. In SIP, an e-mail address, an IP address, a telephone number, and other types of addresses can be used to identify the sender and receiver. However, the address needs to be in SIP format (also called scheme). Figure4shows some common formats.
III) Simple Session
A simple session using SIP consists of three modules: establishing, communicating, and terminating. Figure5 shows a simple session using SIP.
Establishing a Session :
i. Establishing a session in SIP requires a three-way handshake.
ii. The caller sends an INVITE message, using UDP, TCP, or SCTP to begin the communication.
iii. If the callee is willing to start the session, she sends a reply message. To confirm that a reply code has been received, the caller sends an ACK message.
After the session has been established, the caller and the called can communicate using two temporary ports.
Terminating the Session :
The session can be terminated with a BYE message sent by either party.