What is SIP?
Session Initiation Protocol is an application layer protocol for establishing, modifying and terminating VoIP sessions over network. SIP message contains parameters about session description so that participants can negotiate guidelines for communication. This is a reliable protocol that can run over TCP or UDP. Session Initiation Protocol uses SDP as data payload to exchange parameters between hosts. It is capable of locating users, which are identified by their IP addresses, as well as finding out if user is willing to participate.
What does SIP do?
SIP sets up session and exchange data related to terminal capabilities. It manages session by providing various facilities required to service session requests. SIP can operate in peer to peer mode where the user establishes a connection with another user over the network. It can also operate in server and client mode. These servers can act in proxy mode or redirect mode. Proxy servers act as routing servers for SIP packets. Whereas, redirect servers have list of external URIs for redirecting SIP requests. As well as this, Session Initiation Protocol can provide location services.
The connection establishment in SIP takes place by sending “invite” message to a host with IP address and options. The host in return sends “acknowledgement” to allow communication. A “bye” message is used to terminate the connection. For each of these messages a corresponding function is associated, which is completed by the endpoint entity like a User Agent. These communications can be classified as “request” and “response”, which are very similar to HTTP. SIP Transactions maintain internal state and timers for delivery of message reliably.
What’s more, SIP is used in instant messenger as it has the capability of sending “event” notifications. This capability is further assisted by the ability to update current state and receive current state from another host.