Dial Plan

The Dial Plan feature, intended for inclusion in the OpenStage SIP V2R0 release is a means by which the phone can be given some knowledge of the structure of the numbering plan supported by the server it is registered with. This allows the phone to make intelligent decisions about the numbers dialled by the user which allows it to make the dialling process more efficient in UI terms.

General
The Dial Plan feature allows an OpenStage phone to determine the completeness of a dialled number so that the phone can start the dialling process without the user explicitly having to select a further option such as dial or OK after entering the last digit.

Dial plan data may be downloaded directly to a phone via the DLS. The dial plan once loaded on the phone may be enabled/disabled via DLS, WBM or local phone administration. The phone will perform some validation checks on the dial plan data that it receives. If this data is found to be incorrectly for-matted, this will be alerted to the administrator and the data discarded.

Included in the dial plan feature is the introduction of a “dialling mode” option that allows the user to switch between Hot keypad and Context dialling (see glossary for definition of these terms). This new option will also be applied to the emergency numbers configured within the canonical dial set-tings.

The dial plan will also provide the ability to define numbers which can be dialed when the phone is locked, including wildcards which would allow a range of numbers to be dialed when the phone is locked (E.g. all internal numbers). The existing capability which allows emergency numbers to be defined using the canonical dial settings which overide the phone lock will also be maintained. It may however be a future requirement to differentiate between emergency calls and calls which simply bypass the lock in which case future enhancements may be needed.

Note: There is currently no provision for the support of a digit translation capability (whereby the digits dialled by the user can be converted into a different digit string before being sent to the server).

Note: There is currently no provision for the support of multiple dial plans associated with different servers. In particular, this means that if a phone registers with multiple servers for the purposes of survivability, the dial plan will be applied irrespective of which server is used to route calls. Note: there is no means to automatically ensure that the dial plan data in the phone is correctly syn-chronised with the numbering plan in the server; this needs to be part of the overall administration process.

Dial Plan
The dial plan of the phone should not be confused with the dial plan of the server. Phone documentation uses the term number plan for the server’s dial plan. The phone’s terminology usage is supported by standards – RFC.

The purpose of the dial plan is to reduce or remove the post dialling delay caused by other methods of determining end of dialling – either use of a timer or pressing of a done key. Both alternatives are supported by the phone: the timer defaults to 6 seconds and the done key is either the tick or lifting the handset.

The dial plan makes a critical assumption about the number plan – it is possible to determine the total number of digits required from the leading digits. It does support a variable range of lengths for a given set of initial digits, but in this scenario it is not as efficient and brings some restrictions.

It is possible to create a SIP number plan which prevents effective use of the dial plan. If it is desired to use a dial plan, it has to be considered when the number plan is created. Dial plans are supported by other manufacturer’s SIP phones.

A well planned dial plan can significantly impact on a user’s perception of the system. Absence of a dial plan gives the appearance of a slow system. A bad dial plan gives a view more akin to sometimes it’s very slow – the user sees both fast and slow responses.

The Make-up of a Dial Plan
Currently a dial plan is restricted to 48 entries. This figure was believed to be enough while avoiding excessive searching.

Each entry consists of a number of fields:
 * Leading digits – a string to match the dialled digits against. Both * and # can be included. There is also the wildcard X to represent any single digit. There is no any sequence value.
 * Action(s) – Originally, there were two, but these have been joined by a third.
 * – S – Send the digits when the maximum digits have been received or if the timer expires af-ter the minimum digits have been received oron receipt of the terminator after the minimum digits.
 * – C – Check for other actions. Minimum and maximum must match the length of the string. The timer is run at this point only; sending will occur on expiry. If more digits are received, further entries will be checked. It is possible to use C in combination with D and have no timer.
 * – D – Give secondary dial tone when the leading digits match. This action does not depend on later parameters. In theory, there is a choice of 9 tones, but only digit 1 is currently valid. D can be used in combination with C or S.


 * Minimum length – Automatic sending will not occur until at least this many digits have been dialled.
 * Maximum length – Automatic sending will occur when this many digits have been dialled.
 * Timer – A shorter than normal interdigit timer to be used once the minimum number of digits have been dialled or when the check function occurs. The timer can be zero if the two lengths are equal or with CD1. Actually, the timer can be set to values larger than the phone’s interdigit timer (it can be as high as 9, while the default internal timer is 6).
 * Terminator – A digit used to indicate that dialling is complete before reaching the maximum number of digits. The terminator can only be * or #. The terminator is sent as part of the digit string.
 * Option – A special function to be applied when the digits are sent. Currently two options are supported:
 * – B – Lock by-pass. Strings with this attribute can be dialled when the phone is locked (other strings are barred by the phone).
 * – E – Emergency; implies B. Dialling these numbers will cancel both forwarding and DND to allow the emergency service to return calls to this caller. There is nothing to prevent the user re-invoking these features later.


 * Comment – although this can be left blank, it is useful to explain why this entry is present.

Field separators depend on exactly how the dial plan is put on the phone. Raw database entries use the separator ^, while an external document uses , (comma).

Dial plan entries are in priority order. The phone will lock onto a matching entry and not check later ones, except as described for the C action. It is bad practice to have conflicting or duplicate entries as these may confuse other investigations.

Examples of Dial Plans
Combinations of these examples can be used according to need. These examples are deliberately short to explain specific principles.

A SIP server can be used in one of three ways. The nature of the numbers used will vary according to the type of use – a PABX replacement, a complete private network or a public exchange.

A PABX replacement in the UK might have only a few entries:

2,S,,4,,,B,   internal numbers, can be dialled when locked 3,S,,4,,,B,   internal numbers, can be dialled when locked 9,S,4,20,3,,,, external numbers

Notice that minimum lengths need not be specified at input time, however the maximum length will be substituted internally (compare the results of viewing memory and file on the web page with any of these examples).

A few refinements can be added, according to need:

There could be an internal emergency number (3333). This has to be placed first. It does not conflict with the use of 3 as a first digit. Once the user deviates from a sequence of 3’s, the search will find the other entry. This entry is only required if it is desired to cancel forwarding and DND to allow calls to be returned to the caller.

3333,S,,4,,,E, internal emergencies

Refinements could be made to the public network entries as having critical timing over such a range of lengths might be hard on a caller. Also, only certain lengths actually exist. Nottingham’s local numbers are typical of large UK cities; smaller cities would have 7 digits, while London needs 9. Some of these entries are order sensitive.

9999,S,,4,,,E,  traditional public emergency number 99,S,,8,,,,     Nottingham local numbers 98,S,,8,,,,     Nottingham local numbers 9112,S,,4,,,E,  European standard emergency number 9118,S,,6,,,,   Directory enquiries, although this would often be barred by a PABX. 91XX,C,4,4,3,,, Special services, in theory, longer numbers can be used, but there are none at present. Use of “C” will allow these with changes to this plan. 900,S,13,20,3,,, International numbers 90,S, 11,12,3,,, National numbers

Secondary dial tone might be wanted after the initial 9. In the initial case, this can be done by changing the action from “S” to “SD1”. When the more refined set of numbers are used, they would need to be preceded by:

9,CD1,1,1,,,,   give dial tone after 9

Feature codes starting with * and # might be useful. Studies similar to that for the public numbers would be needed, but standard values might be possible for a given server.

A private network replacement would need longer local numbers, possibly with the leading digits be-ing used to nominally identify the site. Examples would add nothing to those above. British public network usage would need entries similar to the ones used to access the public network above, but removing the leading “9” (the access code) and having one less digit. More discrimination on the inter-national numbers might be used.

The American public network uses a different technique for discriminating between local and long distance numbers, so it might include:

*,S,3,15,3,#,, feature codes, 1 #,S,3,15,3,#,, feature codes, 2 911,S,,3,,,E,  police X11,C,3,3,3,#,, special service numbers X1,S,,10,,#,,  long distance, type 1 X0,S,,10,,#,,  long distance, type 2 X,S,,7,,#,,    local

This sequence is order critical, except that 911 could be moved higher.

What it doesn’t do well
Variable length local numbers involving subsets give a poor performance, needing the critical timer to dial the shorter numbers. If you have both 2 digit and 4 digit numbers beginning with 2, you need: 2,S,2,4,3,,,

Another drawback of this method is that the phone will send 3 digit numbers and these are not valid. You could make extensive use of the check function: 21,C,2,2,,, 22,C,2,2,,, 23,C,2,2,,, 24,C,2,2,,, 25,C,2,2,,, 26,C,2,2,,, 27,C,2,2,,, 28,C,2,2,,, 29,C,2,2,,, 20,C,2,2,,, 2,S,,4,,,,

This is cumbersome and would cause the table to be too big if other digits followed this practice or the lengths were 3 and 5 (you’d need 100 entries to handle the three-digit values).

The dial plan can not be edited on the phone or via the Web Interface. The dial plan is a CSV file. To load the dial plan to the phone, the deployment service (DLS) has to be used.

Another example for an US Dialplan
The dial plan should begin with a line of up to 14 characters providing a unique identification of the Dial Plan.

Dialplan_us.csv

555	S					Emergency 999    S                                       Emergency 0						Operator 1	S					Illegal 2	S		5			Extensions 3	S		4			Extensions 4	S		4			Extensions 5	S		4			Extensions 6	S		2			Communication Group 7	S	6		5		Private Network Trunks 900	S	10	18	5		International 901	S	11	12	3		National 902	S		12	3		National 903	S	11	12	3		National 9118	S		7			Directory Enquiries 99	S		8			Public Local Area 98	S		8			Public Local Area 9x	S		2			Illegal
 * S	6		5	#	Feature Codes
 * 1) 	S	6		5	#	Feature Codes

What it can’t do
You can’t have different entries which are used when the phone is locked. All entries are processed all of the time. Lock bypass is an option added to the basic functionality. You cannot bar the sending of digit strings, except when the phone is locked.

There is no mechanism to activate and deactivate individual entries, although it is possible to turn the whole plan off.