SPA Dial Plan Basics

Most Session Internet Protocol (SIP) VoIP ATAs provide means for users to modify their dial plans. Whilst dial plans for Linksys/Sipura SIP ATAs will differ from say Leadtek devices, there are some commonalities between VoIP devices from differing manufacturers. Probably the best way to explain the basics of VoIP dial plans is to decipher a reasonably common one that you can adapt to suit your needs. I recommend that you follow along with a piece of paper and writing implement so that you can craft a custom dial plan string as you read.
There are three things that you need to know before we begin. Firstly, in the above example customer is in the USA and dialing numbers in North America. The local area code assumed is ‘780’. Third and finally, your PAP2 will interpret the dial plan in the order that it’s written (i.e., from left to right). In other words, if you dial a sequence of numbers that could ‘fit’ more than one section of the dial plan, the PAP2 will use the first numerical sequence that ‘fits’ in order to process your key inputs.
let’s break down the following dial plan and highlight the features that we’ll talk about in detail.

(<:1780>[2-4]xxxxxxS0|*xx|S0|011[2-9]x.|1[2-9]xx[2-9]xxxxxx|1900xxxxxxx!)

(: To begin with, the entire dial plan must be enclosed within a pair of brackets ‘()’. So, go ahead and jot down an open bracket ‘(‘ on a piece of paper to begin.

(<:1780>[2-4]xxxxxxS0|*xx|S0|011[2-9]x.|1[2-9]xx[2-9]xxxxxx|1900xxxxxxx!)

<:1780>[2-4]xxxxxxS0: This first component in this string is extremely useful. Let’s have a closer look:


This part of the dial plan is telling the PAP2 to replace any characters within the <> brackets before the :,with what’s written after the :. So in this case, there isn’t anything written before the :, yet 1780 is written after the :. So it’s telling the PAP2 to prefix all numbers that match the remainder of the dial plan string ([2-4]xxxxxxSO) with ‘1780’.

Let’s look at the next part:
[2-4]
Anything enclosed within ‘[]’ brackets represents 1 number. In the above case, it’s a number range allowing either a 2,3 or 4 to fit the dial plan. In other words, if I pick up the phone and dial a ‘3’ as the first character, this fits the first part of the dial plan.
xxxxxx
In PAP2 dial plans, an ‘x’ represents any single number between 0 and 9. In the case of the above (xxxxxx), any six individual numerical digits would match the dial plan. e.g., 123456, 654321, 555555, etc.
S0
S0 (S followed by the number 0) represents ‘Straight Out’. So this part of the dial plan is saying to your PAP2 that should a person dial a sequence of keys that ‘fit’ the above portion of the dial plan, process the call immediately (i.e., without waiting for more digits to be pressed on the keypad).
This first section of the dial plan allows me to dial local numbers within my calling area without dialing the area code and number first. In my city (area code 780), I know that all local calls begin with either a 2,3 or 4 (Hence the [2-4] numerical range for the first digit). Following the first digit, there are 6 more digits to dial for a local number for a total of 7 including the first. So this first part of the dial plan is saying that if I dial a 7 digit number that begins with either a 2,3 or 4, my PAP2 should transparently add ‘1780’ at the beginning of that number and send it ‘Straight Out’. Clear as mud?

Ok, don’t worry if that’s not making perfect sense just yet. Read on and we’ll see if we can alleviate your concerns.

([2-4]xxxxxxS0|*xx|S0|011[2-9]x.|1[2-9]xx[2-9]xxxxxx|1900xxxxxxx!)
|: The ‘|’ in a dial plan merely separates each component of that dial plan.
([2-4]xxxxxxS0|*xx |S0|011[2-9]x.|1[2-9]xx[2-9]xxxxxx|1900xxxxxxx!)
*xx: Okay, this next part of the dial plan allows me to use calling features on my phone such as *69 etc. The * represents the * key on your telephone while the x represents any number from 0 to 9 (as stated previously). So, this tells the PAP2 to allow me to dial the Star key followed by any two sequence of numbers. Note: Even though my dial plan allows for call feature management, my VoIP service provider must also allow for these features in order for them to work.

([2-4]xxxxxxS0|*xx|S0|011[2-9]x.|1[2-9]xx[2-9]xxxxxx|1900xxxxxxx!)
S0: Ok, this component of the dial plan deals with handling of calls to emergency services (911). In this example, dialing ‘911’ tells the PAP2 to dial ‘17805542252’ transparently and send the call Straight Out (without delay). If you live in Australia, and your VoIP provider was in North America this section of your dial plan may look something like this:

Where ‘000’ represents the emergency calling number in Australia and ‘011612131444’ represents the international dialing prefix ‘011’ (remember, in this example the VoIP provider is in North America and expecting you to dial an international sequence in order to reach someone in Australia – police or otherwise), country code for Australia ’61’ area code for Sydney (2) and the number for the NSW police service ‘131444’. Note: there are some obvious limitations to using your PAP2 to make calls to emergency services. Firstly, the emergency operator won’t see accurate information regarding your location on his or her computer screen. Secondly, the call won’t necessarily go to an emergency operator in the first place! The number you put behind the colon ‘:’ will govern where calls to the emergency services are routed by your PAP2.
 

([2-4]xxxxxxS0|*xx|S0|011[2-9]x.|1[2-9]xx[2-9]xxxxxx|1900xxxxxxx!)

011[2-9]x.: This part of the dial plan allows for international calls. Let’s break it down a little further.

011: The international dialing prefix for North America

[2-9]: Any single number from 2 to 9 inclusive (i.e., a 2,3,4,5,6,7,8 or a 9). In this case, the first digit in the country code we’re calling

x: Any single digit from 0-9 inclusive

.: the Period at the end of the above sequence represents that the preceding digit can be repeated one or more times. In the above example, the preceding digit is an ‘x’ representing any single number from 0-9 inclusive. Therefore, by placing a period ‘.’ after the ‘x’, the dial plan is allowing for any number to be processed one or more times.
So as an example, dialing 01161292251919 would satisfy the dial plan since it allows for ‘011’ followed by any single digit between 2 and 9 inclusive (in this case, a ‘6’), followed by any combination of numbers ‘x.’. Note: Even though the plan allows for an unlimited number of digits to be dialed given the period after the ‘x’, your VoIP service provider is expecting you to dial a certain number of digits maximum and may not know hot to handle your call if you keep pressing numbers beyond what they’re expecting.
([2-4]xxxxxxS0|*xx|S0|011[2-9]x.|1[2-9]xx[2-9]xxxxxx|1900xxxxxxx!)
1[2-9]xx[2-9]xxxxxx: This part of the dial plan allows for the dialing of North American long distance numbers. Here’s a breakdown again:
1: The long distance prefix in North America

[2-9]: Any single number between 2 & 9 inclusive. In this part of the dial plan, this digit represents the first number in the area code of the number we’re calling

xx: any two numbers (0-9 inclusive)

[2-9]: Any single number between 2 & 9 inclusive. In this part of the dial plan, this digit represents the first number in the phone number (immediately after the 3 digit area code).

xxxxxx: Any 6 number combination. These represent the last 6 digits in the phone number we’re calling.

([2-4]xxxxxxS0|*xx|SO|011[2-9]x.|1[2-9]xx[2-9]xxxxxx|1900xxxxxxx!)

1900xxxxxxx!: This last part of the dial plan is one that blocks access to certain numbers (The ‘!’ denotes ‘block access’ to the preceding sequence of dialed numbers). So in this case, 1900 followed by any 7 digit numerical sequence is not allowed to be dialed using my PAP2 and is hence, blocked.

([2-4]xxxxxxS0|*xx|S0|011[2-9]x.|1[2-9]xx[2-9]xxxxxx|1900xxxxxxx!)

): The close bracket ‘)’ denotes the end of the dial plan and must be used at the end of your string.