Since I posted on the subject of passing the CCIE Voice exam, I have had a number of requests to blog some more on some of the individual CCIE Voice exam objectives. So, in response to these requests, I'll be posting on these objectives starting with telephony protocols. If you are currently studying for your CCVP exams rather than CCIE Voice, you'll also find a lot of useful information here.
There are a number of telephony protocols including the Session Initiation Protocol (SIP), Media Gateway Control Protocol (MGCP), H.323, and the Skinny Client Control Protocol (SCCP). I am going to start this series of blog posts by taking a look at SIP.
SIP is a peer-to-peer, application-layer, text-based control signalling protocol, that is used to setup, modify, and terminate multimedia sessions. It builds on elements of a number of protocols, including SMTP, HTTP, and SDP, and can be transported over a number of protocols such as UDP and TCP (usually port 5060).
While SIP is the protocol used to setup the sessions, the Real Time Transport Protocol (RTP) is typically used to carry the actual multimedia traffic. SIP is supported on a number of Cisco products such as Unified Communications Manager (CallManager).
SIP can be used for a wide range of applications, including (but by no means limited to) setting up voice and video calls, conferencing, and instant messaging. SIP also has the capability to determine the location of a user and that user's willingness and ability to communicate.
There are a number of elements that may exist in a SIP network:
User Agent (UA): a UA is a SIP endpoint, such as a SIP IP phone, which can function as either a User Agent Client (UAC) or a User Agent Server (UAS).
UAC: this is the logical role that a UA performs when it is initiating a SIP request. A typical reason for initiating a SIP request would be when sending an INVITE request used to setup a SIP session for a voice or video call.
UAS: a UAS is a logical function that responds to SIP requests, including INVITE requests.
Redirect Server: as the name suggests, this is a SIP server that can redirect clients to alternative destination addresses.
Proxy Server: the primary function of SIP proxy servers is to provide routing for SIP requests between UACs and UASs, but it can also provide other functions such as policy enforcement, authentication and authorization of users, and providing features.
Registrar Server: this server type allows users to register their current location. This information is stored in a location service database.
Location Service: this is built by the registrar server, and includes bindings of users' globally reachable public addresses (Address of Record [AOR]) and their current contact addresses. This service is used by proxy servers and redirect servers when they need to find users' possible current locations.
Back-to-Back User Agent (B2BUA): this is simply a concatenation of the functionality of a UAC and a UAS. So, the B2BUA receives SIP requests, and re-originates these requests.
Presence Server: a presence server is a device that tracks the availability and willingness of parties to communicate, and distributes this information to interested other parties. Parties whose availability and willingness to communicate are tracked are known as presentities; and parties that are interested in knowing about presentities availability and willingness to communicate are known as watchers.
Many of the SIP network elements described above are roles or logical functions, rather than necessarily being distinct physical devices. So, for example, the Cisco SIP Proxy server product functions as both a proxy server and a registrar server, while an IOS router running SIP Survivable Remote Site Telephony (SRST) can function as both a SIP registrar server and a redirect server/B2BUA.
Next time, I'll be taking a look at how these SIP network elements communicate and interoperate.