Understanding IP Communications: Cisco VoIP Operation November 17
BEFORE you read this posting, please read The fundamentals of VoIP. That post will help you understand what is going on in this one.
This post will explain describe how VoIP works in the Cisco CallManager environment (CCM 4.2). It will explain the communication that happens between the phone and the server, and how the logical structures in the server allow calls to be processed.
As mentioned before there are more granular details in the IP-T world like signaling. In the telecommunications world, signaling is the control of communications between multiple devices. Signaling arbitrates, establishes, and controls a connections allowing communication to exist.
Background
Signaling is basically divided in to two areas; Enterprise and Service Provider.
On the Enterprise side we have several signaling protocols in use. There is SIP, skinny, and H.323.
On the Service Provider side there are also a few signaling potocols in use. These Service Provider protocols such as MGCP, Megaco, SIGTRAN, and SS7. This is SS7, known as Signaling Systems 7. In its most empirical function, the purpose of SS7 is direct lookup. If you have ever configured a telephone switch you have several parameters to address (in US telecommunications). You have a country code, an area code, home exchange, and local number. Without doubt there are many other details that correlate with the system to which how these numbers are assigned, but for simplicity and sake of the readerships conceptual understanding, this is the extent of what you need to know. Telephone numbers are schemed and interpreted much like IP addresses are. Thus the conceptual similarity is that SS7 in telecommunications is similar to the IP routing table of a router.
To give you a concept of exactly what scope SS7 operates on consider this. The telephones in your house all connect to the little green boxes on the street corners. Keeping as simple as possible, these green boxes all connect to other switches, called Class 5 switches. Well these Class 5 switches connect to a Class 4 switch. I have never seen either class switch personally. From what I am told, Class 4 switches are so large, that there may be only one Class 4 switch for the entire RTP area of North Carolina. (If this is not correct, please contact me at notquiteleet [@] gmail.com. I’d love to have more insight.) SS7 helps these Class 4 switches communicate between each other.
To fully understand SS7, Cisco has a book you are welcome to read. It’s more than 1000 pages long, the majority of which is outside the scope of this posting. However if you choose to read it, write me and let me know what you learned. As of now the inclination to do so on my own has escaped me, and I dont expect it to return regarding this particular subject matter. ;0)
IP Phone Operation
So how does a IP Phone communicate with the CallManager Server to provide you telephony communication? Lets start with the topology first. Suppose we have a phone connected to a layer 3 switch (a catalyst 3750 for example). The switch needs to be set up as follows (again we are keeping it simple):
- The IP phones should be put in a VLAN.
- You can either configure a DHCP server on the switch, or specify an existing DHCP server.
**If you run a DHCP server on the switch, make sure you exclude IP addresses in use by the CallManager or other directly connected devices from the DHCP pool.**
- Create a default route from the IP phone VLAN network to the CallManager IP address.
- Set option 150 to IP
- For Power over Ethernet (PoE) switches, make sure “power inline never” is turned off, and “power inline auto” is turned on.
When you plug an IP phone in to the switch port of the 3750 a few things happen.
1. The phone and switch will talk via CDP.
2. The switch sends a voltage spike, or pulse, to check for the need for Power over Ethernet.
3. The IP phone uses CDP to get the VLAN and VLAN configuration information.
4. Then the phone makes a DHCP request, at which time it gets the following information from the CallManager:
-IP Address
-Serial Number
-Gateway
-Option 150
-CallManager IP address
-miscellaneous optional configured information in the CallManager (we will talk about later)
**ALL OF THIS (step 4) IS DONE VIA A TFTP DOWNLOAD**
5. Skinny protocol makes the CallManager registration request.
Now you understand how the phone communicates with the networking equipment, and how it gets its relevant information from the CallManager.
So what about the CallManager?
Keep reading!
CallManager Operation
To understand how two people are able to talk to each other through the CallManager (CCM), you need to understand the following.
When you create an entry for your IP phone in CCM, the phone belongs to what is called a “partition”. A partition is pretty much a logical entity created to represent the IP Phone(s). I am not a server person, but my logical assumption is that it helps in identifying the phone among other logic structures (like Call Search Spaces) the server uses for intercommunication.
For phones (or people) to talk with each other, the partitions must be a member of the same Call Search Space Group (CSS group). Call Search Spaces perform the function of SS7 in digital telephony (CCM VoIP). Below is an example of how CSS groups are laid out, and how it effects call permissions.
Phones:
A, B, and C
Partitions(partition number): Phone (A, B, C)
Keeping it simple this is basically a company with 3 phones. The lobby phone (A) is for the lobby attendant, the employee phone (B), and the Managers phone (C). The partition number is a way to keep this less confusing in an effort for efficient conceptual understanding.
Lobby Partition (1): A
Employees Partition (2): B
Managers Partition (3): C
Long Distance Partition (4): B, C
CSS Groups: Partition added to the group
Lobby CSS Group: 1 (Lobby), 2 (Employee)
Manager CSS Group: 1 (Lobby), 2 (Employee), 3 (Manager)
Employee CSS Group: 1 (Lobby), 2 (Employee), 3 (Manager)
Long Distance CSS Group: 2 (Employee), 3 (Manager)
Interpretation of this configuration
For one phone to call another, the phones partition must be a member of the CSS group, and the CSS group must permit it.
In the CSS layout above the Lobby can call the Employee, Employee can call the Lobby. Manager can call Employee, Lobby, and Long Distance. The Employee can call everyone and call long distance.
Well what cannot happen? The Lobby cannot call the Manager because the Manager phone is not a member of the Lobby CSS group. The Lobby also cannot call long distance because it is not a member of the Long Distance partition.
How many CallManager Servers do I need?
This is often the question that makes people go hurrmmmm?
Here’s the skinny (no pun intended).
For one CCM cluster you can have a maximum of 8 CallManagers. It is recommended that one CCM be a dedicated TFTP server since that is how the phones get their configuration. There is only one primary CCM server, the other 6 CCM’s are secondary servers.
A single CCM has a value of 5,000 points. The secondary CCM’s should run 90% load of your services with the primary CCM acting as “the front man”. There are point values for certain features though. For reference, a single IP phone = 1 point. That being said a single CCM cluster can support a hardware maximum of 30,000 IP Phones.
Every CallManager runs SQL – this is how it “knows†about CSS groupings and phones assigned to the respective partitions assigned to the CSS groupings. CCM 4.2 only supports the G.711 and G.729 codec’s. Conversion between these codec’s must happen at the CallManager. However, if you want to talk to the outside world you need a H.323 analog to digital gateway converter.
Now you should have a full scope understanding of how a Cisco VoIP network works. You have learned the background of the layered communication for digital voice, as well as the operation of the actual devices that provide services.
If you have any feedback please email notquiteleet [@] gmail.com

Forrest Jan 2
Your very good at distilling core info from the fluff. Thank you!