Before we dive into OpenSIPS, it is very important to understand some important concepts related to Session Initiation Protocol (SIP). In this chapter, we will cover a brief tutorial regarding the concepts used later in this book. By the end of this chapter, we will have covered the following topics:
Understanding the basics of SIP and its usage
Describing the SIP architecture
Explaining the meaning of its components
Understanding and comparing main SIP messages
Interpreting the header fields' processing for the INVITE and REGISTER messages
Learning how SIP handles identity and privacy
Covering the Session Description Protocol and Real-Time Protocol briefly
SIP was standardized by Internet Engineering Task Force (IETF) and is described in several documents known as Request for Comments (RFC). The RFC 3261 describes SIP version 2. SIP is an application layer protocol used to establish, modify, and terminate sessions or multimedia calls. These sessions can be audio and video sessions, e-learning, chatting, or screen sharing sessions. It is similar to Hypertext Transfer Protocol (HTTP) and designed to start, keep, and close interactive communication sessions between users. Nowadays, SIP is the most popular protocol used in Internet Telephony Service Providers (ITSPs), IP PBXs, and voice applications.
The SIP protocol supports five features to establish and close multimedia sessions:
User location: Determines the endpoint address used for communication
User parameters negotiation: Determines the media and parameters to be used
User availability: Determines if the user is available or not to establish a session
Call establishment: Establishes parameters for caller and callee and informs about the call progress (such as ringing, busy, or not found) to both the parties
The SIP protocol was designed as a part of a multimedia architecture containing other protocols such as Resource Reservation Protocol (RSVP), Real-Time Protocol (RTP), Real-Time Session Protocol (RTSP), Session Description Protocol (SDP), and Session Announcement Protocol (SAP). However, it does not depend on them to work.