SIP (Session Initiation Protocol) is a text-based protocol, similar to HTTP and SMTP, that is used to connect two or more parties in a multimedia session, from VoIP calls to set up of video and audio meetings, as well as instant messaging. It is a communications protocol for signaling to control multimedia communication sessions and can be UDP or TCP. VoIP (Voice over Internet Protocol) SIP clients typically use UDP on port numbers 5060 or 5061 to communicate signaling information to both the SIP servers and SIP endpoints. SIP can be used for two-party (unicast) or multiparty (multicast) sessions.
This diagram illustrates a typical basic call from the beginning, showing an invite and response. The caller initiates the session and in this illustration also initiates the end or hang up of the call. The media that is set up is two-way voice which uses RTP (Real-time Transfer Protocol) to stream the data.
A list of SIP response codes is on the left and can be used to investigate more complex sessions and ways that alternative scenarios can occur.
Now
that you see how a call is initiated, you need to understand how each endpoint
is located. SIP protocol takes care of this by SIP registration. There are
three main parts of the URI (Uniform Resource Identifier) used to
locate and keep track of an endpoint or phone. The URI is not location
dependent, but rather identifies who you are and where you can be located.
Registration is a process where the phone or endpoint device (ATA) sends a
SIP Register to the provider's server. First, a Register is sent to the
server. When the server recieves the request, it automatically challenges it for
unique information. When it receives back the correct allowable information
(user ID and password), the server then registers the user in its contact
database and sends a 200 OK response, which includes the user specific
information in the contact headers. The registration process will continue
to update on a preset schedule with the endpoint, so it knows where to send
any invites. However, after a first challenge and acceptance, the server
does not ask the user for the unique ID and password when updating.