Sunday, December 29, 2013

Cisco CUCM: The new Location model in CUCM 8 and above

Hi Guys!

Been ages since I have done a post on VOIP stuff for you guys, I am going to talk about the new locations in CUCM 8 and above in this blog post.

Just a quick refresher: Locations in CUCM are a form of Call Admission Control (CAC) that is  used in CUCM to protect VOIP traffic from itself, sounds funny right? Let's see how it's applicable.

Let's say you have a 512kbps location, and you dedicate let's say 128 kilobits of that to VOIP calls, this is a simple example, that might not be the right amount, you need to take into account IP Overhead, etc. etc. But for our purposes let's use this example.

OK, So how do we normally QoS our VOIP Calls? We Prioritze them right? We use the priority keyword: priority 128 or something to that effect  in our QoS behaviour.

So now we are guaranteeing that VOIP traffic will be put to the front of the queue in times of congestion and will get highest priority. What we are ALSO doing, is not allowing that traffic during times of congestion to get MORE than 128kilobits per second, So not only are we prioritizing, we are policing as well. Remember this is ONLY during times of congestion: if the link is not congested, we can run as much VOIP traffic as we like.

So, let's say we have two calls to this location, two calls, G.711 we are getting 64kilobits per second for each call so a total of 128, even if this link gets congested: no problem,  we have our priority queue taking care of it. But suppose a third call is attempted while this link is congested: Now we have three calls, totalling 192 kilobits per second of bandwidth fighting for 128 kilobits of available bandwidth and being policed down so dropping packets indiscrimentley, leading not only to a bad quality voice call for the new VOIP caller but for all VOIP callers!

So now you understand the purpose of CAC. Let's talk quickly about the methods we can use to control it.

First of all, a standards-based protocol to deal with this problem, called RSVP, was created. This protocol uses a reservation system (Hence RSVP) to reserve bandwidth on a link at the time of call. RSVP has the main advantage of being dynamic: meaning it responds to changes in the network topology such as links going up or down to determine bandwidth, if implemented properly RSVP works quite well, the main issue with RSVP is that it is quite complicated to setup. So a simpler method was created within CUCM called locations.

Locations are configured per-site in CUCM by specifying the maximum amount of bandwidth allowed for that location, calls that would exceed this total are denied and are redirected using AAR (Automatic Alternative Routing) which uses a local PSTN breakout to complete the call.

The problem with locations is the exact opposite of RSVP: It is static, meaning it can't take into account changes in the topology.

These two methods of performing CAC are known as "Topology Aware" (RSVP) and "Topology Unaware" (Locations)

CUCM 8 and 9 introduced a few methods to get around this problem, and that will be the focus of our article.

Location Basics

When you first login to CUCM 8 and above you will notice three default locations that will already exist, it's important that we go through each of them.

Hub_None - This location has been around for a while and is basically a location with unlimited bandwidth for audio and video. No Restrictions are made with this location. This is the default and you will also notice that if you are creating a new phone etc, this hub_none location is selected by default, so does that mean your phone will use this location instead of that in the device pool? NO! The hub_none location is only used on a phone if a device pool location is not specified so keep that in mind.

Shadow - The shadow location is a new location created as part of Enhanced Location CAC (more on this later) and is only used on the SIP intercluster trunks that you configure when doing intercluster CUCM. If you where to assign this to anything other than a intercluster SIP Link, the location is ignored and the device treated as if it was in the hub_none location.

Phantom - This location is used for intercluster trunks. This location is set on InterCluster Trunks and allows the calling and called party to exchange an Information Element (IE) reflecting their own location. This helps with a hairpin situation.

Let's say you have Phone A and Phone B in one Cluster, Cluster A, which is attached to Cluster B. For some reason your call routing is configured so that the call goes from Phone A to Phone B Via the Intercluster Trunk, This would mean that you would reduce bandwidth twice: 1 for the inbound call and one for the outbound call to those locations even though Phone A and Phone B are in the same location! The Phantom Location allows you to have the real location transferred as part of the call and therefore the correct amount of bandwidth will be removed from the locations.

So the only one of the locations we might use in a single cluster environment as per the above is the hub_none location. Phantom and Shadow are useful for inter-cluster situations.

Let's continue to look at locations.

The screenshow below shows the settings we have to add a location:


Let's go through each of the options.

First of all we can specify the amount of bandwidth to other locations, the Audio Bandwidth controls the maximum bandwidth for all audio calls, video for video calls and finally Immersive Video Bandwidth is used for most telepresence endpoints to have their CAC bandwidth treated diffierently to standard video. An endpoint can not be configured to either use immersive video or normal video locations but rather this is a fixed configuration decided by Cisco as they release endpoints (Does the endpoint qualify as "Immersive" Is entirely up to them)

No comments:

Post a Comment