Advanced Dial Peer Concepts and Configuration

The first article in this series on Basic Dial Peer Concepts and Configuration  included an overview of the call leg and dial peer concepts and basic dial peer configuration. To review from the previous article, a dial peer is a physical implementation of the call legs that exist between voice equipment. In modern networks, this mainly includes two types of dial peer: Plain Old Telephone Service (POTS) and Voice over IP (VoIP). This article takes a slightly deeper look at dial peer configuration with explanations of dial plan options and the dial plan features and configuration options available.

Dial Plans

The first thing that must be reviewed is the concept of a dial plan. Most people are familiar with the concept of a dial plan as they use it every day when using the public phone system. Basically, a dial plan is used to organize a group of numbers so that dialing parties know how to reach a specific destination. The example of this is the use of area codes and prefixes in the U.S.; for example, calling parties know that if they dial the 212 area code they are reaching someone in the New York City, New York area.

The biggest part of the configuration of a dial peer includes implementing a call routing logic so that the voice device knows how to route traffic to specific destinations; the configuration of this routing logic is covered in the next section.

Dial Peer Matching

One part of dial peer configuration involves whether the selection of the dial peer is based on the called number (Dialed Number Identification Service (DNIS)) or the Calling number (Automatic Number Identification (ANI)) or both. The other part includes whether the matching is being done inbound from a dial peer or outbound to a dial peer. To make this distinction, this article will review these separately.

Inbound Dial Peer Matching

Each dial peer configured on a device must be matched to a specific inbound and outbound dial peer. Often, the distinction is not clear as many configurations simply utilize outbound dial peer matching to route calls and use default dial peer routing for inbound connections. This works fine as long as the default parameters of the default dial peer (peer 0) meet the requirements of the connection, these default parameters include:

  • No non-default voice application negotiations will occur (dtmf-relay, no vad..)
  • Direct-Inward-Dial (DID) is not supported
  • TCL Applications are not supported
  • Any codec is supported
  • vad is enabled
  • no RSVP support

When matching an inbound dial peer, there is a specific order of matching that is based on the configured parameters on a dial peer. The order followed includes:

Step 1. Called number matching based on the DNIS (Configured with the incoming called-number command)

Step 2. Calling number matching based on the ANI (Configured with the answer-address command)

Step 3. Calling number matching based on the ANI (Configured with the destination-pattern command)

Step 4. Port matching (Used for POTS dial peers and configured with the port command)

Step 5. Default dial peer 0 is used

Inbound Dial Peer Matching Configuration

The incoming called-number, answer-address, and destination-pattern commands each use the same number matching syntax; the general rules of matching include:

  • The matching string can include digits from 0 through 9, letters A through D, the pound sign (#), and the asterisk (*)
  • A comma can be used to insert a 1 second pause
  • A period can be used to match any single entered digit
  • The ‘T’ character can also be used to denote variable-length dial string matching

The steps required to setup inbound dial peer matching include:

Enter global configuration mode router#configure terminal
Create or enter dial-peer configuration mode router(config)#dial-peer voice number {pots | voip}
Configure called number (DNIS) inbound matching (optional) router(config-dialpeer)#incoming called-number string[T]
Configure calling number (ANI) inbound matching (optional) router(config-dialpeer)#answer-address string[T]
Configure calling number (ANI) inbound matching (This command is required for outbound matching) router(config-dialpeer)#destination-pattern string[T]
Configure port based matching (This command is required on POTS dial peers to associate a physical voice port to a dial peer) router(config-dialpeer)#port port
Exit Configuration Mode router(config-dialpeer)#end

Outbound Dial Peer Matching Configuration

When matching a dial peer outbound, the device will always use the destination-pattern command. The matching parameters work the same as with inbound matching but are simply done in the opposite direction. As stated above, the destination-pattern command is considered when doing inbound matching as well but only if the incoming called-number and answer-address commands are not also specified.

Being able to correctly specify which dial-peer that is to be matched and used is a big part of dial-peer configuration. While it is possible that many configurations can be created without using some of these commands; some functionality can be limited if the requirements are outside those provided by the default dial-peer. Hopefully the information in this article has made the differentiation between inbound and outbound dial peer matching a little clearer and can make future configuration easier to implement.