Common Practices
The following three sections cover the bare essential configuration steps necessary to support voice transmission and reception on a typical voice gateway router in your network:
Voice Ports
Your dial peer configuration cannot function until you have logically assigned a voice port to one or more dial peers. Assigning voice ports to dial peers identifies the physical hardware in the router that will be employed to complete voice communication to and from associated voice network endpoints.
Assigning Voice Ports
The purpose of this task is to assign a voice port to a plain old telephone system (POTS) dial peer.
SUMMARY STEPS
- enable
- configure terminal
- dial-peer voice number pots
- port string
DETAILED STEPS
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enters privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
dial-peer voice number pots Example:
|
Enters dial-peer voice configuration mode and defines a local POTS dial peer.
|
Step 4 |
port string Example:
|
Specifies the voice port associated with the given dial peer. The port command syntax is platform-specific. For more information about the syntax of this command, refer to the port command in the Cisco IOS Voice, Video, and Fax Command Reference . |
What to do next
Note |
Voice port assignments are configured for POTS dial peers only. |
Session Targets
The session target is the network address of the remote router to which you want to send a call once a local voice-network dial peer is matched. It is configured in voice-network dial peers by using the session target command. For outbound dial peers, the destination pattern is the telephone number of the remote voice device that you want to reach. The session target represents the path to the remote router that is connected to that voice device. The figure below illustrates the relationship between the destination pattern and the session target, as shown from the perspective of the originating router.
The address format of the session target depends on the type of voice-network dial peer:
-
VoIP--IP address, host name of the Domain Name System (DNS) server that resolves the IP address, ras for registration, admission, and status (RAS) if an H.323 gatekeeper resolves the IP address, or settlement if the settlement server resolves the IP address
-
VoFR--Interface type and number and the data link connection identifier (DLCI)
-
VoATM--Interface number, and ATM virtual circuit
-
MMoIP--E-mail address
Note |
For inbound dial peers, the session target is ignored. |
Configuring Session Targets
The purpose of this task is to assign a session target to a voice-network dial peer.
SUMMARY STEPS
- enable
- configure terminal
- dial-peer voice number voip | vofr | voatm
- session-target ip-address
DETAILED STEPS
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enters privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
dial-peer voice number voip | vofr | voatm Example:
|
Enters dial-peer voice configuration mode and defines a local dial peer.
|
Step 4 |
session-target ip-address Example:
|
Defines the IP address identifying the next-hop location of the voice network component associated with this dial peer. |
Destination Patterns
The destination pattern associates a dialed string with a specific telephony device. It is configured in a dial peer by using the destination-pattern command. If the dialed string matches the destination pattern, the call is routed according to the voice port in POTS dial peers, or the session target in voice-network dial peers. For outbound voice-network dial peers, the destination pattern may also determine the dialed digits that the router collects and then forwards to the remote telephony interface, such as a PBX, a telephone, or the public switched telephone network (PSTN). You must configure a destination pattern for each POTS and voice-network dial peer that you define on the router.
Configuring Destination Patterns
The purpose of this task is to configure a destination pattern for a dial peer.
SUMMARY STEPS
- enable
- configure terminal
- dial-peer voice number pots | voip | vofr | voatm
- destination-pattern + ] string [T]
DETAILED STEPS
Command or Action | Purpose | |||
---|---|---|---|---|
Step 1 |
enable Example:
|
Enters privileged EXEC mode.
|
||
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
||
Step 3 |
dial-peer voice number pots | voip | vofr | voatm Example:
|
Enters dial-peer voice configuration mode and defines a local dial peer.
|
||
Step 4 |
destination-pattern + ] string [T] Example:
|
Defines the phone number that identifies the destination pattern associated with this dial peer. The keywords and argument are as follows:
|
Digit Manipulation
The router may need to manipulate digits in a dial string before it passes the dial string to the telephony device. Which can be necessary, for instance, when calling PBXs with different capabilities to accept digits, or for PSTN and international calls. You may need to consider different strategies for configuring digit manipulation within your dial peers depending on your existing dial plan, the digits users are expected to dial, and the capabilities of your PBX or key system unit (KSU). These digit-manipulation options, in conjunction with the destination pattern, determine the dial string that the router forwards to the telephony device.
Wildcards
The destination pattern can be either a complete telephone number or a partial telephone number with wildcard digits, represented by a period (.) character. Each "." represents a wildcard for an individual digit that the originating router expects to match. For example, if the destination pattern for a dial peer is defined as "555....", then any dialed string beginning with 555, plus at least four additional digits, matches this dial peer.
In addition to the period (.), several other symbols can be used as wildcard characters in the destination pattern. These symbols provide additional flexibility in implementing dial plans and decrease the need for multiple dial peers in configuring telephone number ranges.
The table below shows the wildcard characters that are supported in the destination pattern.
Symbol |
Description |
||||
---|---|---|---|---|---|
. |
Indicates a single-digit placeholder. For example, 555.... matches any dialed string beginning with 555, plus at least four additional digits. |
||||
[ ] |
Indicates a range of digits. A consecutive range is indicated with a hyphen (-); for example, [5-7]. A nonconsecutive range is indicated with a comma (,); for example, [5,8]. Hyphens and commas can be used in combination; for example, [5-7,9].
|
||||
( ) |
Indicates a pattern; for example, 408(555). It is used in conjunction with the symbol ?, %, or +. |
||||
? |
Indicates that the preceding digit occurred zero or one time. Enter ctrl-v before entering ? from your keyboard. |
||||
% |
Indicates that the preceding digit occurred zero or more times. This functions the same as the "*" used in regular expression. |
||||
+ |
Indicates that the preceding digit occurred one or more times. |
||||
T |
Indicates the interdigit timeout. The router pauses to collect additional dialed digits. |
The table below shows some examples of how these wildcard symbols are applied to the destination pattern and the dial string that results when dial string 4085551234 is matched to an outbound POTS dial peer. The wildcard symbols follow regular expression rules.
Destination Pattern |
Dial String Translation |
String After Stripping1 |
---|---|---|
408555.+ |
408555, followed by one or more wildcard digits. This pattern implies that the string must contain at least 7 digits starting with 408555. |
1234 |
408555.% |
408555, followed by zero or more wildcard digits. This pattern implies that the string must contain at least 408555. |
1234 |
408555+ |
40855, followed by 5 repeated one or more times. |
1234 |
408555% |
40855, followed by 5 repeated one or more times. Any explicitly matching digit before the % symbol is not stripped off. |
51234 |
408555? |
40855, followed by 5. Any explicitly matching digit before the ? symbol is not stripped off. |
51234 |
40855[5-7].+ |
40855, followed by 5, 6, or 7, plus any digit repeated one or more times. |
51234 |
40855[5-7].% |
40855, followed by 5, 6, or 7, plus any digit repeated one or more times. |
51234 |
40855[5-7]+1234 |
40855, followed by 5, 6, or 7 repeated one or more times, followed by 1234. |
51234 |
408(555)+1234 |
408, followed by 555, which may repeat one or more times, followed by 1234. |
5551234 |
In addition to wildcard characters, the following characters can be used in the destination pattern:
-
Asterisk (*) and pound sign (#)--These characters on standard touch-tone dial pads can be used anywhere in the pattern. They can be used as the leading character (for example, *650), except on the Cisco 3600 series.
-
Dollar sign ($)--Disables variable-length matching. It must be used at the end of the dial string.
Note
If you have an exact match that needs preference or demands preference on the dial-peer, you can add a $ at the end of that dial string. This method allows the exact match preferred over the other random wildcard, creating a consistent result wherein there are two dial-peers with an 'overlap' of destinations and one dial-peer being a range wildcard and the other being an exact match.
-
Circumflex symbol (^)--When used within brackets, allows you to eliminate a digit from consideration for dial peer matching purposes. For example, a destination pattern including [^7] would not match any string beginning with 7.
Multiple digits can also be called out within brackets to eliminate more than one initial digit from dial peer matching. For example, a destination pattern including [^4^6^8] would not match any digit string beginning with 4, 6, or 8.
Note |
A destination pattern including [^752] would allow matching only for digit strings beginning with 5 or 2, but would not match any digit strings beginning with 7. This destination pattern entry essentially behaves the same way as if you had simply included [52] in the destination pattern. |
To eliminate a multiple digit string from dial peer matching consideration, you must represent each digit in the string as a succession of individual exceptions. For example, if you wanted to eliminate matching any digit string beginning with 537 from consideration for dial peer matching, you must ensure that your destination pattern includes [^5][^3][^7].
The same destination pattern can be shared across multiple dial peers to form hunt groups.
Digit Stripping and Prefixes
When a terminating router receives a voice call, it selects an outbound POTS dial peer by comparing the called number (the full E.164 telephone number) in the call information with the number configured as the destination pattern in the POTS dial peer. The access server or router then strips off the left-justified digits that match the destination pattern. If you have configured a prefix, the prefix is added to the front of the remaining digits, creating a dial string, which the router then dials. If all numbers in the destination pattern are stripped out, the user receives a dial tone.
For example, consider a voice call whose E.164 called number is 1(408) 555-2222. If you configure a destination-pattern of "1408555" and a prefix of "9," the router strips off "1408555" from the E.164 telephone number, leaving the extension number of "2222." It then appends the prefix, "9," to the front of the remaining numbers, so that the actual numbers dialed are "9, 2222." The comma in this example means that the router will pause for 1 second between dialing the "9" and dialing the "2" to allow for a secondary dial tone.
When the terminating router matches a dial string to an outbound POTS dial peer, by default the router strips off the left-justified digits that explicitly match the destination pattern. Any remaining digits, called> excess digits, are forwarded to the telephony interface, such as a PBX or the PSTN.
Some telephony interfaces require that any digits stripped from the dial string be recovered to support a particular dial plan. You can strip these digits either by using the no digit-strip dial-peer voice configuration command to disable the default digit-stripping behavior or by using the prefix dial-peer voice configuration command to add digits to the beginning of the dial string before it is forwarded to the telephony interface. These commands are supported only in POTS dial peers.
The no digit-strip command disables the automatic digit-stripping function so that matching digits are not stripped from the dialed string before it is passed to the telephony interface. For example, in the following dial peer configuration, the entire seven-digit dialed string is passed to the telephony interface:
dial-peer voice 100 pots
destination-pattern 555....
no digit-strip
port 1/0:1
Disabling digit stripping is useful when the telephony interface requires the full dialed string. With some dial plans, however, the dialed digits must be manipulated according to specific rules. The prefix command can be used to add specific digits to the beginning of the dialed string before it is forwarded to the telephony interface.
For example, consider a telephone whose E.164 called number is 1(408)555-1234. This telephone can be reached within the company by dialing its extension number, 51234. If you configure a destination pattern of "1408555...." (the periods represent wildcards) for the associated outbound POTS dial peer, the terminating gateway will strip off the digits "1408555" when it receives a call for 1(408)555-1234. For the terminating gateway to forward the call to the appropriate destination, the digit "5" needs to be prepended to the remaining digits. In this case, you would configure a prefix of 5, as shown in the following dial peer configuration.
dial-peer voice 100 pots
destination-pattern 1408555....
prefix 5
port 1/0:1
A prefix can also include commas (,). Each comma indicates a 1-second pause in dialing. For example, consider a telephone whose E.164 called number is 1(408)555-1234; to reach this device, you must dial "9." In this case, you might configure "1408......." as the destination pattern, and "9" as the prefix. In this example, the terminating router will strip the digits "1408" from the called number and append the digit "9" to the front of the remaining digits, so that the actual number dialed is" 9,5551234." The router pauses for 1 second between dialing the "9" and the "5551234" to allow for a secondary dial tone. In this example, you would configure the router as follows:
dial-peer voice 100 pots
destination-pattern 1408.......
prefix 9,
port 1/0:1
Using a comma with the prefix command is useful when the router must allow for a secondary dial tone; otherwise the router does not wait for the dial tone before playing out excess digits. Putting commas in the prefix makes the router pause 1 second per comma, allowing for a dial tone to occur before the router transmits the remaining digits.
The figure below shows an example of a network using the no digit-strip command. In this example, a central site (Site D) is connected to remote sites through routers (Sites A, B, and C), and through a Centrex system for sites still using the PSTN (Sites E and F). The Centrex service requires the full 7-digit dial string to complete calls. The dial peers are configured with a fixed-length 7-digit dial plan.
When Site E (8204...) dials 8201999, the full 7-digit dialed string is passed through the Centrex to the router at Site D. Router D matches the destination pattern 8201... and forwards the 7-digit dial string to Router A. Router A matches the destination pattern 8201..., strips off the matching 8201, and forwards the remaining 3-digit dial string to the PBX. The PBX matches the correct station and completes the call to the proper extension.
Calls in the reverse direction are handled similarly, but because the Centrex service requires the full 7-digit dial string to complete calls, the POTS dial peer at Router D is configured with digit stripping disabled. Alternatively, digit stripping could be enabled and the dial peer could instead be configured with a 4-digit prefix, in this case 8204, which would result in forwarding the full dial string to the Centrex service.
Router A |
Router D |
---|---|
|
|
Forwarding Digits
The forward-digits command controls the number of digits that are stripped before the dialed string is passed to the telephony interface. On outbound POTS dial peers, the terminating router normally strips off all digits that explicitly match the destination pattern in the terminating POTS dial peer. Only digits matched by the wildcard pattern are forwarded. The forward-digits command can be used to forward a fixed number of dialed digits, or all dialed digits, regardless of the number of digits that explicitly match the destination pattern.
For example, the forward-digits 4 command tells the router to forward the last four digits in the dialed string. The forward-digits all command instructs the router to forward the full dialed string. If the length of the dialed string is longer than the length of the destination pattern, the forward-digits extra command forwards the extra trailing digits. Extra digits are not forwarded, however, if the dial peer destination pattern is variable length; for example, 123T, 123...T.
Note |
The forward-digits command is supported only in POTS dial peers. |
The figure below shows an example of routing voice calls through a PBX using forward digits. In this configuration, Routers T1 and T2 are tandem nodes that must support forward digits so that calls from Routers A, B, or C can make a call to extension 8208.
In this example, all digits matched with destination 8... are forwarded to the appropriate port. For a call from Router A to reach extension 8208, the call first terminates at Router T1, which transmits the digits 8208 to the voice port connected to the PBX. The PBX then routes the voice call to Router T2. The forward-digits all command is used here, but the forward-digits 4 command could also be used in this example.
The following dial peer configurations are required on each router for this example:
Router T1 |
Router T2 |
---|---|
|
|
Router A |
---|
|
Number Expansion
In most corporate environments, the telephone network is configured so that you can reach a destination by dialing only a portion (an extension number) of the full E.164 telephone number. You can define an extension number as the destination pattern for a dial peer. The router can be configured to recognize the extension number and expand it into its full E.164 dialed number when the num-exp global configuration command is used with the destination-pattern dial-peer voice configuration command.
Number expansion is a globally applied rule that enables you to define a set of digits for the router to prepend to the beginning of a dialed string before passing it to the remote telephony device. Automatically prepending digits in the dial peer configuration reduces the number of digits that a user must dial to reach a remote location. Number expansion is similar to using a prefix, except that number expansion is applied globally to all dial peers.
Using a simple telephony-based example, suppose that user A works in a company where employees extensions are reached by dialing the last four digits of the full E.164 telephone number. The E.164 telephone number is 555-2123; user A’s extension number is 2123. Suppose that every employee on user A’s floor has a telephone number that begins with the same first four digits: 5552. You could define each dial peer’s destination pattern using each extension number, and then use number expansion to prepend the first four digits onto the extension. In this example, the router could be configured as follows:
num-exp 2... 5552...
dial peer voice 1 pots
destination pattern 2123
Number expansion can also be used to replace a dialed number with another number, as in the case of call forwarding. Suppose that for some reason, user A needs to have all of his telephone calls forwarded to another number, 555-6611. In this example, you would configure the router as follows:
num-exp 2123 5556611
dial peer voice 1 pots
destination pattern 2123
In this example, every time the device receives a call for extension 2123, the dialed digits will be replaced with 555-6611 and the call will be forwarded to that telephone.
Before you configure the num-exp command, it is helpful to map individual telephone extensions to their full E.164 dialed numbers. This task can be done easily by creating a number expansion table.
Creating a Number Expansion Table
The figure below shows a network for a small company that wants to use VoIP to integrate its telephony network with its existing IP network. The destination patterns (or expanded telephone numbers) associated with Router A are 408 115-xxxx, 408 116-xxxx, and 408 117-xxxx, where xxxx identifies the individual dial peers by extension. The destination pattern (or expanded telephone number) associated with Router B is 729 555-xxxx.
The table below shows the number expansion table for this scenario. The information included in this example must be configured on both Router A and Router B.
Extension |
Destination Pattern |
Num-Exp Command Entry |
---|---|---|
5.... |
408115.... |
num-exp 5.... 408115.... |
6.... |
408116.... |
num-exp 6.... 408116.... |
7.... |
408117.... |
num-exp 7.... 408117.... |
1... |
729555.... |
num-exp 1... 729555.... |
The period (.) character represents wildcards (such as extension numbers) in a telephone number.
Configuring Number Expansion
The purpose of this task is to expand an extension number into its full telephone number.
SUMMARY STEPS
- enable
- configure terminal
- num-exp extension-number expanded-number
DETAILED STEPS
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enters privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
num-exp extension-number expanded-number Example:
|
Configures number expansion globally for all dial peers. The arguments are as follows:
|
Translation Rules
Digit translation rules are used to manipulate the calling number (ANI) or called number (DNIS) digits for a voice call, or to change the numbering type of a call. Translation rules are used to convert a telephone number into a different number before the call is matched to an inbound dial peer or before the call is forwarded by the outbound dial peer. For example, within your company you may dial a 5-digit extension to reach an employee at another site. If the call is routed through the PSTN to reach the other site, the originating gateway must use translation rules to convert the 5-digit extension into the 10-digit format that is recognized by the central office switch.
Translation rules are defined by using the translation-rule command. After you define a set of translation rules, you can apply the rules to all inbound VoIP calls, to all inbound calls that terminate at a specific voice port, and to individual inbound or outbound call legs according to the dial peer.
The following example shows a dial peer that is configured to use translation-rule set 1, which contains ten translation rules. The first rule defined is rule 0, in which 910 is the pattern that must be matched and replaced, and 0 is the pattern that is substituted for 910.
translation-rule 1
rule 0 ^910 0
rule 1 ^911 1
rule 2 ^912 2
rule 3 ^913 3
rule 4 ^914 4
rule 5 ^915 5
rule 6 ^916 6
rule 7 ^917 7
rule 8 ^918 8
rule 9 ^919 9
!
!
dial-peer voice 2 voip
destination-pattern 91..........
translate-outgoing called 1
session target ras
The configuration results in the stripping of the leading digits 91 from any called number that begins with 91 before the number is forwarded by the outbound VoIP dial peer. Use the caret (^) symbol to specify that the matched digits must occur at the start of a dial string.
Note |
Wildcard symbols such as the period (.), asterisk (*), percent sign (%), plus sign (+), and question mark (?) are not valid in translation rules. The router ignores these symbols when converting a number if they are used in a translation rule. |
Translation rules can also be used to change the numbering type for a call. For example, some gateways may tag any number with more than 11 digits as an international number, even when the user must dial a 9 to reach an outside line. The following example shows a translation rule that converts any called number that starts with 91, and that is tagged as an international number, into a national number without the 9 before sending it to the PSTN:
translation-rule 20
rule 1 91 1 international national
!
!
dial-peer voice 10 pots
destination-pattern 91..........
translate-outgoing called 20
port 1:D
!
Note |
Using digit translation rules with the num-exp or prefix command is not recommended unless it is the only way to minimize confusion. |
To create digit translation rules, perform the tasks in the following sections:
-
CreatingDigitTranslationRules (required)
To apply digit translation rules to VoIP calls, perform one or more of the following procedures:
CreatingDigitTranslationRules
The purpose of this task is to enter translation-rule configuration mode and specify a set of translation rules.
To create additional individual translation rules to include in the translation-rule set, repeat Step 4 .
Note |
Applying translation rules to more than one call leg in an end-to-end call is not recommended. |
SUMMARY STEPS
- enable
- configure terminal
- translation-rule name-tag
- rule name-tag input-matched-pattern substituted-pattern [match-type substituted-type ]
DETAILED STEPS
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enters privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
translation-rule name-tag Example:
|
Defines a digit translation-rule set and enters translation-rule configuration mode. All subsequent commands that you enter in this mode before you exit will apply to this translation-rule set.
|
Step 4 |
rule name-tag input-matched-pattern substituted-pattern [match-type substituted-type ] Example:
|
Defines an individual translation rule. This command can be entered up to 11 times to add an individual translation rule to the translation rule set defined in Step 1. The arguments are as follows:
|
Applying Translation Rules to Inbound POTS Calls
The purpose of this task is to apply a translation rule set to all inbound POTS calls that terminate on the same voice port.
Note |
When this method is used, the digit translation rules are executed before the inbound POTS dial peer is matched. |
SUMMARY STEPS
- enable
- configure terminal
- voice-port location
- translate {called | calling } name-tag
DETAILED STEPS
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enters privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
voice-port location Example:
|
Specifies the voice port through which the call enters the router. The voice-port command syntax is platform-specific. For more information about the syntax of this command, refer to the Voice Port Configuration Guide . |
Step 4 |
translate {called | calling } name-tag Example:
|
Specifies the translation rule set to apply to the called number or calling number. The keywords and argument are as follows:
|
Applying Translation Rules to Inbound VoIP Calls
The purpose of this task is to apply a translation rule set to all inbound VoIP calls that originate at an H.323 gateway.
Note |
When using this method, the digit translation rules are executed before the inbound VoIP dial peer is matched. |
SUMMARY STEPS
- enable
- configure terminal
- voip-incoming translation-rule {called | calling } name-tag
DETAILED STEPS
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enters privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
voip-incoming translation-rule {called | calling } name-tag Example:
|
Specifies the translation rule set to apply to all inbound VoIP call legs that originate from an H.323 gateway. The keywords and argument are as follows:
|
Applying Translation Rules to Outbound Call Legs
The purpose of this task is to apply a translation rule set to an outbound VoIP or POTS call leg.
Note |
Translation rules that are configured in a dial peer using the translate-outgoing command are not applied to inbound call legs. When two-stage dialing is used, the translation rules that are configured in the voice port using the translate command are applied twice: after the inbound dial peer is matched, and again after the digits are collected. |
Note |
If the prefix command is also configured in the dial peer, the translate-outgoing command is executed first. |
SUMMARY STEPS
- enable
- configure terminal
- dial-peer voice number pots | voip | vofr | voatm
- translate-outgoing {called | calling } name-tag
DETAILED STEPS
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable Example:
|
Enters privileged EXEC mode.
|
Step 2 |
configure terminal Example:
|
Enters global configuration mode. |
Step 3 |
dial-peer voice number pots | voip | vofr | voatm Example:
|
Enters dial-peer voice configuration mode and defines a local dial peer.
|
Step 4 |
translate-outgoing {called | calling } name-tag Example:
|
Specifies the translation rule set to apply to the calling number or called number. The keywords and argument are as follows:
|