In this article, we will discover how Cisco Unified Communications Manager version 9 and above behave with the regions.
Here is the call setup:
HQ: CIPC phone 1: x1000
Branch1: CIPC phone 2 x2001
1. case #1: both phone 1 and phone 2 are in the Default region
Although phone 1 and phone2 are in different physical locations, I purposefully put both phones in the same region to experience codec selection within a region.
Note that, when I say “I put a phone in region X”, I mean that I configure the device with a device pool that points to that region X.
We will see the negotiated codec and the one that is finally selected to encode and decode media streams between phones, when both phones are in region Default.
1.1 The CUCM Default region
In Cisco Unified Communications Manager, we have a region called “Default”. The Default region uses:
-a) the default Audio Codec Preference List
-b) the default Maximum Audio Bit Rate
-c) the default Maximum Video Bit Rate
-d) the default Maximum Immersive Video Bit Rate
1.1.1 Default Audio Codec Preference List
Since we are putting both phones in the same region, we will focus on the default Audio Codec Preference List within a region; This is determined by a intuitive service parameter, under CallManager Service, called “Default Audio Codec List Within Region“.
This service parameter has two possible values:
- Factory Default low loss, which is the default value
- Factory Default lossy
The values of the Factory Default low loss codec preference list and the Factory Default low loss audio codec preference list are defined, in CUCM 9+, under Region Information-> Audio Codec Preference List.
Here is what the Factory Default low loss audio codec preference list looks like:
So CUCM has to choose, among this list, one codec that has a bandwidth which is below the Maximum Audio Bit Rate. The Audio Codec Preference List is one of the criteria of choosing a codec.
1.1.2Default Maximum Audio Bit Rate
This is the second criterion. The default Maximum Audio Bit Rate for intraregion calls is determined by Service Parameters -> Default Intraregion Maximum Audio Bit Rate, which is 64kbps (G.722, G.711)
So we can have a codec whose bandwidth is at maximum 64kbps in intraregion. But it does not mean that any codec that reaches the 64kbps will be the one.
1.1.3 Advertise G.722 Codec
Let’s see the default behavior regarding G.722. In Enterprise Parameters, the “Advertise G.722 Codec” is by default set to Enabled:
This means that, by default (if G.722 is not disabled in the phone config page), IP phones advertise to CUCM that they support G.722 codec in their capabilities.
And knowing that G.722 appears before G.711 in the Audio Codec Preference List, then the result is: G.722 is used for intraregion communication, if the default values are specified.
And here is the Wireshark trace to support what I’m saying.
Case #2: both phones are in region R_HQ
Here is the setup for region R_HQ:
With both phones being in the same region R_HQ, we get the same result as before.
3. Case #3: two phones in different regions
We put phone 1 in R_HQ and phone 2 in R_Branch1
Here is the region setup for R_Branch1
When we dial from phone2 to phone 1. The region of Phone2 allows a maximum of 8kbps. The codec that will be chosen will have at maximum a bandwidth of 8kbps. G.729 is an example of such a codec, but it’s not the final word.
CUCM looks at the Audio Codec Preference List. associated with the region. It says “Use System Default (Factory Default low loss)”. In this audio preference list, the first codec whose bandwidth is less than 8kbps is G.729
But it seems that endpoints do not support G.729b. So CUCM will choose the next available codec: G.729.