Features/Dial Plan/XML

From Snom User Wiki

(Difference between revisions)
Jump to: navigation, search
(Special note on dialplan nomenclature)
(Special note on dialplan nomenclature)
Line 26: Line 26:
== Special note on dialplan nomenclature ==
== Special note on dialplan nomenclature ==
#The special characters supported include '.' for any digit between 0-9.
#The special characters supported in 'match' include '.' for any digit between 0-9.
#'*' as a wildcard for all charcaters and digits.
#'*' as a wildcard for all charcaters and digits.
#'[' & ']' to specify a range for single digit input e.g. matche="[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.
#'[' & ']' to specify a range for single digit input e.g. matche="[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.

Revision as of 17:49, 27 November 2007



The following explanation refers to:

Dial plans enable the snom SIP phone to support automatic dialing and automatic generation of a secondary dial tone. If a single dial plan is to be used for a system of phones, the dial plan is best specified in the default configuration file that is used to provision the phone in the beginning. When creating a dial plan, remember the following:

  • Dial plans must be in an .xml format and be stored on your phone or provisioned through http or tftp server.
  • <DIALPLAN> indicates the start of a dialplan and </DIALPLAN> indicates the end of a plan.
  • Rules are matched from start to finish with the longest matching rule taken as the one to use.

How to Create a XML Dialplan

  1. Using an ASCII editor, open a new file.
  2. Type <DIALPLAN> to indicate the start of the dial plan template.
  3. For each of the numbering schemes that you wish to define, add the following string to the template, each starting on a separate line: <TEMPLATE MATCH=”pattern” Timeout=”sec” User=”type” Rewrite=”altstrng” where:
    • MATCH=”pattern” is the dial pattern to match. While entering the pattern: use a period (.) to match any character or use an asterisk (*) to match one or more characters. To have the phone generate a secondary dial tone when the part of the template matches, use a comma (,).
    • 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 dial immediately, specify 0.
    • User=”type” is the 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.
  4. If desired, specify at the end of each string where comment defines the type of plan (for example, Long Distance or Corporate Dial Plan).
  5. When completed, specify </DIALPLAN> to indicate the end of the dial plan template.
  6. Give the file a name of 'dialplan.xml'.

Special note on dialplan nomenclature

  1. The special characters supported in 'match' include '.' for any digit between 0-9.
  2. '*' as a wildcard for all charcaters and digits.
  3. '[' & ']' to specify a range for single digit input e.g. matche="[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.
  4. ',' is used to indicate secondary local dialtone. It often follows a digit usually 9 or 0.
  5. The closest logical match through all the dialplans would be selected for ay given input match. Ascending or descending order does not over rule this feature.
  6. 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.
  7. The dialplan attributes can be saved either in capital or small letters. The phone would internally store them in lower case.


Sample North American Dial Plan

<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"/> 

Factory Default (empty) Dial Plan

<?xml version="1.0" encoding="utf-8"?>

Working Sample Dial Plan

<?xml version="1.0" encoding="utf-8"?>
        <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" />
        <!-- Anything else -->

Dialplan expansion after 7.1.16

<?xml version="1.0" encoding="utf-8"?>
    <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="" /> 

Backward compatibility to v6 Regular Expression Dialplan v > 7.1.28

Previosuly used settings user_dp_str & user_dp_exp can be used again to setup RE dialplans for each SIP line. This can be done either through provisioning or via the web interface. If a corresponding RE dialplan for the outgoing SIP identity is not found, then the universal basic xml digtmap explained above will be used (if set).

Personal tools