Content

Page tree

The dial plan settings (<dialplan> or <dial-plan> tag) contain the global dial plan parameters. For further description please see the detailed XML dial plan feature description.


Index:



Syntax

The XML Dial plan can be placed either inside the <settings> tag

inside the <settings> tag
<?xml version="1.0" encoding="utf-8" ?>
 <settings>
  <phone-settings></phone-settings>
  <functionKeys></functionKeys>
  <tbook></tbook>
  <uploads></uploads>
  <certificates></certificates>
  <dialplan e="2">
   <!--Example North American Dialplan-->
   <TEMPLATE MATCH="0" Timeout="1" User="Phone"/> 
   <TEMPLATE MATCH="9,011*" Timeout="6" User="Phone"/> 
   <TEMPLATE MATCH="9,0" Timeout="1" User="Phone"/> 
   <TEMPLATE MATCH="9,11" Timeout="0" User="Phone" Rewrite="9911"/> 
   <TEMPLATE MATCH="9,.11" Timeout="0" User="Phone"/> 
   <TEMPLATE MATCH="9,101..............." Timeout="0" User="Phone"/> 
   <TEMPLATE MATCH="9,10.............." Timeout="0" User="Phone"/> 
   <TEMPLATE MATCH="9,10*" Timeout="6" User="Phone"/>  
   <TEMPLATE MATCH="9,1.........." Timeout="0" User="Phone"/> 
   <TEMPLATE MATCH="9,......." Timeout="0" User="Phone"/> 
   <TEMPLATE MATCH="*" Timeout="15"/> 
  </dialplan>
 </settings>

or as an individual XML file whose URL is listed inside <setting-files> tag:

<dialplan> tag as an individual XML file
<?xml version="1.0" encoding="utf-8"?>
<dialplan e="2">
 <!--Example North American Dialplan-->
 <TEMPLATE MATCH="0" Timeout="1" User="Phone"/> 
 <TEMPLATE MATCH="9,011*" Timeout="6" User="Phone"/> 
 <TEMPLATE MATCH="9,0" Timeout="1" User="Phone"/> 
 <TEMPLATE MATCH="9,11" Timeout="0" User="Phone" Rewrite="9911"/> 
 <TEMPLATE MATCH="9,.11" Timeout="0" User="Phone"/> 
 <TEMPLATE MATCH="9,101..............." Timeout="0" User="Phone"/> 
 <TEMPLATE MATCH="9,10.............." Timeout="0" User="Phone"/> 
 <TEMPLATE MATCH="9,10*" Timeout="6" User="Phone"/>  
 <TEMPLATE MATCH="9,1.........." Timeout="0" User="Phone"/> 
 <TEMPLATE MATCH="9,......." Timeout="0" User="Phone"/> 
 <TEMPLATE MATCH="*" Timeout="15"/> 
</dialplan>

Attributes

The following attributes are allowed:

  • e="2" defines that unicode-values inside xml-escapes (e.g. & # 6 4 ;) may be greater than 255.
  • MATCH=”pattern” is the dial pattern to match. While entering the pattern: numbers 0-9, *, and # represent the keys on the phone that are entered. Use a period (.) to match any key. An asterisk (*) at the very end of the pattern matches one or more characters. Matching just the * key without interference with the wildcard character is done by escaping it with a backslash "\*". To have the phone generate a secondary dial tone when the part of the template matches, use a comma (,). If you want to use * before the comma (,) do not escape it using a backslash, but use it as it is, for example: MATCH="*,..."
  • Timeout=”sec” is the number of seconds before a timeout will occur and the number will be dialed as entered by the user. To have the number dialed immediately, specify 0.
  • User=”type” is either IP or Phone. Enter User=phone or User=IP to have the tag automatically added to the dialed number. Currently, User=phone is supported.
  • Rewrite=”altstrng” is the alternate string to be dialed instead of what the user enters. This field can be left empty. Rewrite will rewrite the exact positions. You cannot add any prefix by the rewrite method.
  • Insert="altstring" is the alternate string to be added at the beginning of what the user enters. Insert can work with rewrites.
  • identity=”number” is the identity that is used to establish the call. If no identity is given, the active identity is used.

If desired, specify at the end of each string where the comment defines the type of plan (for example, Long Distance or Corporate Dial Plan).


Special note on the dialplan nomenclature:

  • The special characters supported in 'match' include '.' for any digit between 0-9.
  • '*' as a wildcard for all characters and digits.
  • '[' & ']' to specify a range for single digit input e.g. match="[4-7].." would mean any three digit number where the first digit is either 4, 5, 6 or 7 i.e. 4-7 inclusive of both limits.
  • ',' is used to indicate a secondary local dial tone. It often follows a digit usually 9 or 0.
  • The closest logical match through all the dial plans would be selected for any given input match. Ascending or descending order does not overrule this feature. Unless it is a standalone '*' rule which should be at the end of the file.
  • If one doesn't want to specify a timeout, rewrite or user; either leave them empty or do not include them at all. In this case, the default for all would be used.
  • The dialplan attributes can be saved either in capital or small letters. The phone would internally store them in lowercase.


Example

Example XML dial plan file, e.g. http://domain/snom3x0/dialplan.xml
<?xml version="1.0" encoding="utf-8"?>
<dialplan>
  <template match="0" timeout="4" scheme="sip" user="phone" rewrite="" />
  <template match="00" timeout="0" scheme="sip" user="phone" rewrite="" />
  <template match="011............" timeout="4" scheme="sip" user="phone" rewrite="" />
  <template match="*79" timeout="0" scheme="sip" user="phone" rewrite="" />
  <template match="*234" timeout="0" scheme="sip" user="phone" rewrite="" />
  <template match="9,......." timeout="0" scheme="sip" user="phone" rewrite="" />
  <template match="424#" timeout="0" scheme="sip" user="phone" rewrite="" />
  <template match="...#" timeout="0" scheme="sip" user="phone" rewrite="" />
  <template match="[7-9].." timeout="0" scheme="sip" user="phone" rewrite="" />
  <template match="*[5-7][1-9]" timeout="0" scheme="sip" user="phone" rewrite="" /> 
</dialplan>
Sample North American Dial Plan
<dialplan>
 <TEMPLATE MATCH="0" Timeout="1" User="Phone"/> 
 <TEMPLATE MATCH="9,011*" Timeout="6" User="Phone"/> 
 <TEMPLATE MATCH="9,0" Timeout="1" User="Phone"/> 
 <TEMPLATE MATCH="9,11" Timeout="0" User="Phone" Rewrite="9911"/> 
 <TEMPLATE MATCH="9,.11" Timeout="0" User="Phone"/> 
 <TEMPLATE MATCH="9,101..............." Timeout="0" User="Phone"/> 
 <TEMPLATE MATCH="9,10.............." Timeout="0" User="Phone"/> 
 <TEMPLATE MATCH="9,10*" Timeout="6" User="Phone"/>  
 <TEMPLATE MATCH="9,1.........." Timeout="0" User="Phone"/> 
 <TEMPLATE MATCH="9,......." Timeout="0" User="Phone"/> 
 <TEMPLATE MATCH="*" Timeout="15"/> 
</dialplan>
Working Sample Dial Plan
<?xml version="1.0" encoding="utf-8"?>
<dialplan>
 <Title>US Asterisk</Title>
 <TEMPLATE MATCH="25." Timeout="0" Scheme="sip" User="Phone" Rewrite="252" />
 <!-- test dp-->
 <TEMPLATE MATCH="\*.." Timeout="0" Scheme="sip" User="Phone" />
 <!-- Feature Access-->
 <TEMPLATE MATCH="9,763......." Timeout="0" Scheme="sips" User="Phone" Rewrite="763......." />
 <!-- Local 10 digit-->
 <TEMPLATE MATCH="9,612......." Timeout="0" User="Phone" Rewrite="612......." />
 <!-- Local 10 digit-->
 <TEMPLATE MATCH="9,651......." Timeout="0" User="Phone" Rewrite="651......." />
 <!-- Local 10 digit-->
 <TEMPLATE MATCH="9,952......." Timeout="0" User="Phone" Rewrite="952......." />
 <!-- Local 10 digit-->
 <TEMPLATE MATCH="9,0" Timeout="3" User="Phone" Rewrite="0" />
 <!-- Local operator-->
 <TEMPLATE MATCH="9,00" Timeout="0" User="Phone" Rewrite="00" />
 <!-- LD Operator-->
 <TEMPLATE MATCH="9,01*" Timeout="3" User="Phone" Rewrite="01%1" />
 <!-- International calls-->
 <TEMPLATE MATCH="9,011*" Timeout="3" User="Phone" Rewrite="011%1" />
 <!-- International calls-->
 <TEMPLATE MATCH="9,0.........." Timeout="0" User="Phone" Rewrite="0.........." />
 <!-- Operator assisted-->
 <TEMPLATE MATCH="9,.11" Timeout="0" Scheme="tel" User="Phone" Rewrite=".11" />
 <!-- Service numbers -->
 <TEMPLATE MATCH="9,101....1.........." Timeout="0" User="Phone" Rewrite="101....1.........." />
 <!-- Equal Access Service-->
 <TEMPLATE MATCH="9,101....0.........." Timeout="0" User="Phone" Rewrite="101....0.........." />
 <!-- Equal Access Service-->
 <TEMPLATE MATCH="9,1.........." Timeout="0" User="Phone" Rewrite="1.........." />
 <!-- Long Distance-->
 <TEMPLATE MATCH="9,......." Timeout="0" User="Phone" Rewrite="612......." />
 <!--  7 Digit Dialing-->
 <TEMPLATE MATCH="7.." Timeout="3" User="Phone" />
 <!-- Call Parking-->
 <TEMPLATE MATCH="1." Timeout="5" User="Phone" Rewrite="612548561." />
 <!-- Extension Dialing-->
 <TEMPLATE MATCH="611" Timeout="0" User="Phone" Rewrite="6519990888" />
 <!-- Sound Choice Comm Help -->
 <TEMPLATE MATCH="*" Timeout="15" />
 <!-- Insert prefix -->
 <TEMPLATE MATCH="9,......." Timeout="0" User="Phone" Rewrite="......." Insert="612" />
 <!-- Rewrite the string and insert the prefix -->
 <TEMPLATE MATCH="914" Timeout="0" Rewrite="925" Insert="888"/>
 <!-- Only insert prefix -->
 <TEMPLATE MATCH="914" Timeout="0" Insert="888"/>
 <!-- Anything else -->
</dialplan>