# CME – Dial Peers

A critical part of any CME setup are the dial peers.  Dial peers are what are used to make calls in and out of the CME system.  In modern telephone systems (generally speaking) there are two types of dial peers, POTS and VOIP dial peers.  The POTS type is used when we are connecting to any traditional type voice connection and the VOIP type is used when defining IP addressable voice device.  Since my labs have dealt with VOIP phones and SIP trunks (IP Voice connectivity) I’ll be talking mostly about the VOIP dial peers.  The dial peers themselves consists of several critical pieces.  Let’s walk through the two major pieces one at a time.

Destination Patterns
I like to think of destination patterns sort of like route statements.  When a call is placed the router looks through the available dial peers and their associated destination patterns.  It takes the digits that were dialed and matches them against all of the possible destination patterns looking for a match.  When it finds a match, it uses that dial peer to place the call.

Destination Patterns are composed of numbers and ‘operators’.  The most basic of operators are the wild card operators.  These come in handy when you are only interested in matching part of a number.  For instance, you might want to match 4 digit extensions at your second office.  Since all of the numbers start with 2 at the second office, you want the dial peer to match a number that looks like…

4 , <Any Number>, <Any Number>, <Any Number>

Operators help you complete tasks such as this.  Lets run through them quick and give an example of each. Note – I’m going to use spaces in my examples below between each character.  In real life, don’t use spaces when defining your destination patterns.

Period (.)
Used to represent the wild card for any digit 0-9.
Example
6 1 2 . . . . . . .
Matches
Any 10 digit number that begins with ‘612’

The Letter T (T)
Extended wildcard
Example
1 T
Matches
The digit 1 followed by a variable digits (anything else)

Brackets ([])
Used to represent a range of digits.  The range can be represented by a contiguous number of digits (1-3), by individual digits (6,9), or as a combination (1-3,6,9).  Additionally, you can use the ^ operator as a ‘not’ symbol to create a range that shouldn’t be matched.
Example 1
1 [ 1 – 3] . . . . . . . . [ 6 , 8 ]
Matches
A number that starts with 11 digit number whose second digit is 1 through 3 and last digit is a 6 or a 8.
Example 2
1 [ ^ 0 – 7] . . . . . . . . [ 6 , 8 ]
Matches
The digit one followed by 8 or 9, 8 wild card digits, and a 6 or a 8.

Plus Sign (+)
Used to match one or more instances of the preceding digit.
Example
1 + 6 1 2  4 5 6 3
Matches
1 or more 1s followed by 6, 1, 2, 4, 5, 6, and 3

Session Protocol / Target
The other critical piece of the dial peer is the session protocol and target settings.  Once the router has matched the destination pattern and decided which dial peer to use, we have to know where and how to send the call.  In my case, this was the SIP-UA.com SIP trunk.  I walked through how those worked in an earlier port.