Calculating the number of DSP resources required is a challenging task because of the number of variables involved. Cisco has published a DSP calculator on Cisco.com that helps simplify the calculation. Even with this excellent tool, you need to thoroughly understand all the variables involved.
Note
The URL for the DSP calculator is http://www.cisco.com/cgi-bin/Support/DSP/cisco_dsp_calc.pl.
DSP Types
Cisco voice gateways use various DSP models with different capabilities. Some gateway models and Network Modules (NM) use modular DSPs, or Packet Voice DSP Modules (PVDM). Some gateways and NMs, such as the NM-HD-2V, have fixed DSPs. These NMs are provisioned with the number of DSPs required to support the voice interfaces in the NM and are not usable for any other purpose. Table 14-1 lists the most common DSPs and where they are found.
DSP Type |
Where Found |
---|---|
C542 |
NM-1V NM-2v AS5300 VCF (single-density) MC3810 VCM |
C544 |
WS-SVC-CMM-ACT |
C5421 |
NM-HDA AIM-VOICE-30 AIM-ATM-VOICE-30 |
C549 |
PVDM-12 WS-X6608-T1/E1 AS5800 AS5300 VFC (double-density) 7200/7500 HC Voice PA 1750, 1751, 1760 MC3810 HCM |
C5510 (2505) |
PVDM2-8 |
C5510 (2510) |
PVDM2-16 (1 DSP) PVDM2-32 (2 DSPs) PVDM2-48 (3 DSPs) PVDM2-64 (4 DSPs) |
Note
Cisco.com refers to the DSPs that are installed in the PVDM2 modules as both C5510s and 2505/2510s. Cisco IOS references the DSP as C5510. 2505/2510 refers to the actual part number of the DSP.
PVDM Versus PVDM2
The remainder of this section focuses on the capabilities of the PVDM and PVDM2. The PVDM utilizes the C549 DSP and is available on the NM-HDV series of network modules. Only one model of PVDM exists, and it is equipped with three C549 DSPs. The actual part number is the PVDM-12. The -12 indicates that the PVDM can terminate a maximum of 12 voice callsfour calls on each of the C549 DSPs.
The PVDM2 utilizes the C5510 DSP and is available in the NM-HDV2 series of network modules and the Intermediate Session Routing (ISR) family of routers. The newer DSP that is used in the PVDM2 allows for higher-density voice termination and increased transcoding and conferencing sessions. Five models of the PVDM2 exist, as shown in Table 14-1, each equipped with a different number of DSPs. As with the PVDM-12, the xx in the PVDM2 part number indicates the maximum number of voice channels that the PVDM2 can terminate.
The C549 DSPs are dedicated to one task. When you use PVDMs, the DSPs are statically assigned to voice termination when the router is started, or in the case of T1 and E1 ports, when the voice port is created. If additional DSPs are available, you can configure them to provide transcoding or conference bridge resources.
C5510 DSP allocation is more complex. For analog and BRI ports, C5510 DSPs are statically assigned to voice termination when the router is started. C5510 DSPs are dynamically assigned to provide voice port termination for T1 and E1 ports and for transcoding. A single C5510 DSP can provide both functions simultaneously. Conferencing is still statically defined, and a C5510 DSP that is configured as a conferencing resource cannot serve any other function.
Note
A PVDM-12 or PVDM2 (32 or higher) can provide voice termination, transcoding, and conferencing simultaneously. The restriction on conferencing is per DSP, not per PVDM.
Voice Termination
The number of voice calls that a DSP can terminate depends on both the model of the DSP and the codec complexity that is configured on the voice card. Example 14-1 illustrates the process of defining a ds0-group on a T1, which results in the assignment of C549 DSPs to voice port 1/0:1.
[View full width] Gateway#show voice dsp voice DSP DSP DSPWARE CURR BOOT PAK TX/RX TYPE NUM CH CODEC VERSION STATE STATE RST AI VOICEPORT TS ABORT PACK COUNT ==== === == ======== ======= ===== ======= === == ========= == ===== ============ Gateway#config terminal Enter configuration commands, one per line. End with CNTL/Z. Gateway(config)#controller t1 1/0 Gateway(config-controller)#framing esf Gateway(config-controller)#linecode b8zs *Apr 16 19:25:37.727: %CONTROLLER-5-UPDOWN: Controller T1 1/0, changed state to up Gateway(config-controller)#ds0-group 1 timeslots 1-4 type e&m-wink Gateway(config-controller)# *Apr 16 19:26:03.303: %LINK-3-UPDOWN: Interface recEive and transMit1 /0:1(1), changed state to up *Apr 16 19:26:03.303: %LINK-3-UPDOWN: Interface recEive and transMit1 /0:1(2), changed state to up *Apr 16 19:26:03.303: %LINK-3-UPDOWN: Interface recEive and transMit1 /0:1(3), changed state to up *Apr 16 19:26:03.303: %LINK-3-UPDOWN: Interface recEive and transMit1 /0:1(4), changed state to up Gateway(config-controller)#end Gateway# *Apr 16 19:26:07.831: %SYS-5-CONFIG_I: Configured from console by console Gateway# Gateway#show voice dsp voice DSP DSP DSPWARE CURR BOOT PAK TX/RX TYPE NUM CH CODEC VERSION STATE STATE RST AI VOICEPORT TS ABORT PACK COUNT ==== === == ======== ======= ===== ======= === == ========= == ===== ============ C549 004 01 {medium} 4.4.702 IDLE idle 0 0 1/0:1 01 0 0/0 02 {medium} 4.4.702 IDLE idle 0 1/0:1 02 0 0/0 03 {medium} 4.4.702 IDLE idle 0 1/0:1 03 0 0/0 04 {medium} 4.4.702 IDLE idle 0 1/0:1 04 0 0/0 |
The output of the show voice dsp voice command in the example lists the model of the DSP in use. The DSP NUM lists the number of the DSP. The DSP numbering scheme varies depending on the router platform and the NM in which the DSP is installed. The CH column indicates the DSP channel used for each physical DS0. The number of channels that a DSP can support depends on both the DSP model and the codec complexity in use, which is indicated in the fourth column of the output.
If you try to configure more voice port terminations than your DSP configuration can support, you will receive an error message similar to Example 14-2.
Gateway#config terminal Gateway(config)#controller e1 3/0 Gateway(config-controller)#pri-group timeslots 1-31 Current dsp resources can support 12 timeslots;need 5 extra dsps to support the requested configuration Gateway(config-controller)# |
Examples 14-3, 14-4, and 14-5 illustrate the process of configuring a T1 port in an ISR gateway using a PVDM2 that is installed on the main board.
[View full width] GW_2811#show voice dsp voice ----------------------------FLEX VOICE CARD 0 ------------------------------ *DSP VOICE CHANNELS* DSP DSP DSPWARE CURR BOOT PAK TX/RX TYPE NUM CH CODEC VERSION STATE STATE RST AI VOICEPORT TS ABRT PACK COUNT ===== === == ======== ======= ===== ======= === == ========= == ==== ============ C5510 001 01 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 02 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 03 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 04 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 05 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 06 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 07 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 08 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 09 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 10 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 11 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 12 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 13 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 14 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 15 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 16 None 5.4.1 idle idle 0 0 0 0/0 ------------------------END OF FLEX VOICE CARD 0 ---------------------------- GW_2811#config terminal Enter configuration commands, one per line. End with CNTL/Z. GW_2811(config)#network-clock-participate wic 2 GW_2811(config)#controller t1 0/2/0 GW_2811(config-controller)#ds0-group 1 timeslots 1-4 type e&m-wink GW_2811(config-controller)# *Dec 31 15:20:59.839: %LINK-3-UPDOWN: Interface recEive and transMit0 /2/0:1(1), changed state to up *Dec 31 15:20:59.839: %LINK-3-UPDOWN: Interface recEive and transMit0 /2/0:1(2), changed state to up *Dec 31 15:20:59.839: %LINK-3-UPDOWN: Interface recEive and transMit0 /2/0:1(3), changed state to up *Dec 31 15:20:59.839: %LINK-3-UPDOWN: Interface recEive and transMit0 /2/0:1(4), changed state to up GW_2811(config-controller)#end ! |
As shown in the initial show voice dsp voice output, the router has a PVDM2-16 installed on the main board. This is indicated by the 16 channels that are available on a single C5510 DSP in voice card 0. The network-clock-participate wic 2 command is required to synchronize the clock on the voice port in HWIC slot 2 and the DSP on the main board.
In Example 14-4, the show voice dsp voice command shows available DSPs but does not show them assigned to a physical port. This is because C5510 DSPs are dynamically assigned to T1 and E1 ports.
[View full width] ! GW_2811#show voice dsp voice ----------------------------FLEX VOICE CARD 0 ------------------------------ *DSP VOICE CHANNELS* DSP DSP DSPWARE CURR BOOT PAK TX/RX TYPE NUM CH CODEC VERSION STATE STATE RST AI VOICEPORT TS ABRT PACK COUNT ===== === == ======== ======= ===== ======= === == ========= == ==== ============ C5510 001 01 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 02 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 03 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 04 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 05 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 06 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 07 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 08 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 09 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 10 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 11 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 12 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 13 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 14 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 15 None 5.4.1 idle idle 0 0 0 0/0 C5510 001 16 None 5.4.1 idle idle 0 0 0 0/0 ------------------------END OF FLEX VOICE CARD 0 ---------------------------- ! |
The gateway does track the number of voice ports that are allocated to prevent oversubscription of DSPs. Even though the DSPs are not assigned to a specific voice port, the number of DSPs available for other purposes has been reduced.
Example 14-5 illustrates the eight channels that are reserved for the voice port signaling. Four of these channels are assigned to the DS0 group that is added to the T1. The other four channels support analog voice ports that are installed in HWIC slots 0/0/0 and 0/1/0.
[View full width] ! GW_2811#show voice dsp detailed DSP DSP DSPWARE CURR BOOT PAK TX/RX TYPE NUM CH CODEC VERSION STATE STATE RST AI VOICEPORT TS ABORT PACK COUNT ==== === == ======== ======= ===== ======= === == ========= == ===== ============ ----------------------------FLEX VOICE CARD 0 ------------------------------ *DSP VOICE CHANNELS* DSP DSP DSPWARE CURR BOOT PAK TX/RX TYPE NUM CH CODEC VERSION STATE STATE RST AI VOICEPORT TS ABRT PACK COUNT ===== === == ======== ======= ===== ======= === == ========= == ==== ============ C5510 001 01 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 02 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 03 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 04 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 05 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 06 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 07 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 08 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 09 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 10 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 11 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 12 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 13 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 14 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 15 None 7.4.1 idle idle 0 0 0 0/0 C5510 001 16 None 7.4.1 idle idle 0 0 0 0/0 *DSP SIGNALING CHANNELS* DSP DSP DSPWARE CURR BOOT PAK TX/RX TYPE NUM CH CODEC VERSION STATE STATE RST AI VOICEPORT TS ABRT PACK COUNT ===== === == ======== ======= ===== ======= === == ========= == ==== ============ C5510 001 01 {flex} 7.4.1 alloc idle 0 0 0/0/0 02 0 36/0 C5510 001 02 {flex} 7.4.1 alloc idle 0 0 0/0/1 06 0 36/0 C5510 001 03 {flex} 7.4.1 alloc idle 0 0 0/1/0 02 0 15/0 C5510 001 04 {flex} 7.4.1 alloc idle 0 0 0/1/1 02 0 15/0 C5510 001 05 {flex} 7.4.1 alloc idle 0 0 0/2/0:1 01 0 3/12 C5510 001 06 {flex} 7.4.1 alloc idle 0 0 0/2/0:1 02 0 3/12 C5510 001 07 {flex} 7.4.1 alloc idle 0 0 0/2/0:1 03 0 3/12 C5510 001 08 {flex} 7.4.1 alloc idle 0 0 0/2/0:1 04 0 3/12 ------------------------END OF FLEX VOICE CARD 0 ---------------------------- GW_2811# |
Codec Complexity
Codec complexity groups the various codecs into three categories based on the amount of DSP processing that is required to support the particular codec. Codecs are classified as low, medium, or high complexity. Table 14-2 shows the codecs and features that each complexity level supports.
Codec Complexity |
Codec |
---|---|
Low |
G.711 (μ-law, a-law) Fax passthrough Modem passthrough Clear channel |
Medium |
All low-complexity codecs plus the following: G.729A G.729AB Fax Relay G.726 |
High |
All low- and medium-complexity codecs plus the following: G.729 G.729B Modem RelayG.728 G.723.1, G.723.1A |
The gateway determines how many voice calls each DSP can terminate based on codec complexity. If the codec complexity is set to medium, the number of voice ports that can be terminated per DSP is higher than if the codec complexity is set to high.
Voice cards that do not have C5510 DSPs can be configured only for medium or high complexity. Voice cards that are equipped with C5510 DSPs have an additional complexity option called flex complexity. Setting the codec complexity to medium or high sets the number of voice terminations per DSP to a static number. Flex complexity allows a variable number of calls per DSP based on runtime calculations. Flex complexity is the default for voice cards that have C5510 DSPs. This configuration allows the DSPs to support the maximum number of voice calls but introduces the possibility of oversubscribing the DSP resources.
Configuring Codec Complexity
You configure codec complexity by using the codec complexity command under voice-card configuration mode, as shown in Examples 14-6 and 14-7.
[View full width] ! ! 3725 with NM-HDV in slot 0 ! Gateway#config terminal Gateway(config)#voice-card 0 Gateway(config-voicecard)#codec complexity ? high Set codec complexity high. High complexity, lower call density. medium Set codec complexity medium. Mid range complexity and call density. Gateway(config-voicecard)#end Gateway# |
[View full width] ! ! 2811 with PVDM2-16 installed on main board. ! GW_2811#config terminal Enter configuration commands, one per line. End with CNTL/Z. GW_2811(config)#voice-card 0 GW_2811(config-voicecard)#codec complexity ? flex Set codec complexity Flex. Flex complexity, higher call density. high Set codec complexity high. High complexity, lower call density. medium Set codec complexity medium. Mid range complexity and call density. GW_2811(config-voicecard)#end GW_2811# |
Note
To simplify DSP engineering, it is recommended that you set all voice cards in a gateway to the same codec complexity.
You should set codec complexity before you allocate DSPs. You cannot change codec complexity if the DSP is allocated to a voice port. If you need to change something after you have allocated the voice ports, you must remove the voice ports. This also removes the port configuration in the corresponding plain old telephone service (POTS) dial peers.
PVDMs support medium and high complexity, with medium complexity being the default. PVDM2s support medium, high, and flex complexity, with flex being the default.
Flex Complexity
Flex complexity allows a mix of low-, medium-, and high-complexity calls to be supported. This enables more calls to be supported when multiple codecs are in use. The risk is that you can oversubscribe the DSPs if more high-complexity codecs are used than the DSPs can support. If the DSPs are oversubscribed, calls will be connected, but no audio path will exist when all available DSP channels are in use.
Note
Low complexity is not configurable. You must configure flex complexity to enable the DSP to terminate additional low-complexity calls.
Table 14-3 lists the number of voice calls that each DSP can terminate per codec complexity.
Codec Complexity |
C549 |
C5510 (PVDM2-8) |
C5510 |
---|---|---|---|
Low |
N/A |
8 |
16 |
Medium |
4 |
4 |
8 |
High |
2 |
4 |
6 |
Flex |
N/A |
48 |
616 |
DSP Sharing
The "DSP sharing" and "DSP farming" terms are sometimes used interchangeably in Cisco documentation. Because the Cisco IOS dspfarm command is used for both DSP sharing and DSP farming, people are confused about what these functions are. The DSP farming term was originally used to describe using DSPs as media resources for CallManager. DSP sharing allows C5510 DSPs to terminate a voice call from a voice port that is located in another hardware slot. This can reduce the possibility of oversubscription when using flex complexity. It can also make it easier to add DSPs to an existing gateway. It is physically much easier to add PVDM2s to an NM-HDV2 than it is to add them to the main board of an ISR.
DSP sharing has the following rules and definitions:
When you enable DSP sharing, voice cards "export" their DSPs so that another voice card can "import" the resource. When a call comes in a T1 or E1 voice port, the gateway must allocate a DSP for the call. If no local DSP is available for the call, the gateway searches for a remote DSP. The search begins with the DSPs in slot 0 and progresses through the configured voice cards. After the gateway allocates a remote DSP, the DSP remains allocated for the duration of the call, even if a local DSP becomes available.
Enabling DSP Sharing
To enable DSP sharing, you must configure at least one voice card to export its DSPs. All voice cards can import DSPs by default. DSP sharing is enabled with the dspfarm command in voice-card configuration. Example 14-8 illustrates the enabling of DSP sharing on a 2811 ISR with a PVDM2-16 installed on the main board and NM-HDV2 in slot 1. With this configuration, the DSPs on the main board are exported, allowing them to be allocated to voice calls arriving on a T1 or E1 port in the NM-HDV2. The DSPs in the NM-HDV2 are not being exported in this example.
Note
The DSPs that are installed on the main board of an ISR are configured under voice-card 0.
GW_2811#config terminal GW_2811(config)#network-clock-participate wic 2 GW_2811(config)#network-clock-participate slot 1 GW_2811(config)#voice-card 0 GW_2811(config-voicecard)#dspfarm GW_2811(config-voicecard)#end GW_2811# |
Although DSP sharing can reduce the possibility of DSP oversubscription, it does not eliminate it. To ensure that sufficient DSP resources are always available, configure either medium or high complexity and provide sufficient local DSPs to terminate all possible voice calls.
Transcoding and MTP Resources
You can configure transcoding on the following devices:
Transcoding on the C549 DSP is not based on codec complexity. Each C549 DSP on a PVDM-12 supports four transcoding sessions. In the 1751/1760 gateways, two transcoding sessions are supported per DSP. Codec complexity does impact the C5510 DSP. The transcoding capabilities of the C5510 DSP are the same as the voice termination capabilities.
Table 14-4 lists the number of transcoding sessions that each DSP supports.
Device |
Transcoding Sessions |
---|---|
WS-6608-T1/E1 |
24 per port, 192 per module |
WS-SVC-CMM-ACT |
64 |
C549 |
4 |
C549 in 1751/1760 |
2 |
C5510 medium complexity |
8 |
C5510 high complexity |
6 |
c5510 flex complexity |
16 (see the following Note) |
Note
It is only possible to support 16 transcoding sessions when you are transcoding between two low-complexity codecs. Because this situation is rare, the practical maximum number of transcoding sessions per DSP is 8.
Software-based MTPs can support two voice streams with the same packetization rates. If the voice streams use different packetization rates, a DSP is required. The number of software-based MTP sessions is CPU bound and varies per router platform. You can configure only the C5510 DSP to provide hardware-based MTP services. Each DSP can support 16 MTP sessions. If a call requires MTP services and no MTP is configured, a transcoder is used if available.
Conference Bridge Resources
You need to consider only one factor when calculating conference bridge DSP requirements: the number of conferences required. Many documents on Cisco.com list only a maximum number of conference participants derived by multiplying the number of conferences by the maximum participants per conference. This leads to much confusion as to the actual capabilities of the DSPs. For example, the C5510 supports two mixed-mode conferences with up to eight participants each. Therefore, it is technically accurate to say that the C5510 supports 16 conference participants. When only the absolute maximum number of participants is listed, many people infer that you could have one conference with 16 participants or four conferences with 4 participants. When you are determining the number of DSPs required, only the number of conferences matters. The number of participants per conference is not relevant.
Note
Conferences cannot span a DSP. The maximum number of conferences per DSP and the maximum participants per conference are independent of each other.
Table 14-5 lists the conference capabilities of the various platforms, per DSP. The maximum number of conferences supported on a single Cisco IOS gateway is 50. This is because of CPU and I/O limitations.
Device |
Maximum Conferences |
Maximum Participants per Conference |
---|---|---|
WS-6608-T1/E1 |
See the following Note |
16 |
WS-SVC-CMM-ACT |
42 |
128 |
C549 |
1 |
6 |
C5510 (G.711 only) |
8 |
8 |
C5510 (G.729a/G.729) |
2 |
8 |
1751/1760 |
1/DSP, 5/Gateway |
6 |
Note
The WS-X6608 module does not follow the same rules for calculating DSP requirements as the IOS-based gateways. Each port on the 6608 can support up to 32 G.711/G.723 conference participants or 24 G.729 conference participants. The number of conferences per port is not a limitation, but there can be no more than 16 participants in a single conference.
Part I: Voice Gateways and Gatekeepers
Gateways and Gatekeepers
Part II: Gateways
Media Gateway Control Protocol
H.323
Session Initiation Protocol
Circuit Options
Connecting to the PSTN
Connecting to PBXs
Connecting to an IP WAN
Dial Plans
Digit Manipulation
Influencing Path Selection
Configuring Class of Restrictions
SRST and MGCP Gateway Fallback
DSP Resources
Using Tcl Scripts and VoiceXML
Part III: Gatekeepers
Deploying Gatekeepers
Gatekeeper Configuration
Part IV: IP-to-IP Gateways
Cisco Multiservice IP-to-IP Gateway
Appendix A. Answers to Chapter-Ending Review Questions
Index