Features/XML Dial Plan
From Snom User Wiki
Contents |
Overview
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
- Using an ASCII editor, open a new file.
- Type <dialplan> to indicate the start of the dial plan template.
- 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.
- If desired, specify at the end of each string where comment defines the type of plan (for example, Long Distance or Corporate Dial Plan).
- When completed, specify </dialplan> to indicate the end of the dial plan template.
- Give the file a name of 'dialplan.xml'.
Special note on dialplan nomenclature
- The special characters supported in 'match' include '.' for any digit between 0-9.
- '*' as a wildcard for all charcaters 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 secondary local dialtone. It often follows a digit usually 9 or 0.
- 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.
- 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 lower case.
Example
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>
Factory Default (empty) Dial Plan
<?xml version="1.0" encoding="utf-8"?> <dialplan> </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" />
<!-- Anything else -->
</dialplan>
Dialplan expansion after 7.1.16
<?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>
Backward compatibility to Regular Expression Dialplan from > V7.1.28
Previosuly used configuration parameters "user_dp_str" & "user_dp_exp" can be used again to setup "Regular Expression Dial Plans" for each SIP identity. This can be done either through provisioning or via the web user interface. If a corresponding "Regular Expression Dial Plans" for the outgoing SIP identity is not found, then the universal basic xml digitmap explained above will be used (if set).
