"Dial plan" is core function of cloud miniSIPServer. Once miniSIPServer receives a call, it will invoke "dial plan" to analyze called number of the call and get final routing information. So during "dial plan" process, there are two key procedures:
Cloud miniSIPServer has a simpler "dial plan" feature than local miniSIPServer. In cloud system, miniSIPServer will only analyze called number, and change called numbers if necessary according to configuration, to get final routing information.
During these procedures, miniSIPServer uses 'maximum length matched' rule to match configuration records with incoming calls.
For an instance, there is an incoming call whose number is '1234' (here we don't care this number is caller number or called number), and miniSIPServer has two records illustrated below.
|Record ID||Number prefix||Other|
Both of them can match current call since their 'number prefix' is exact number prefix of '1234', then which record will be selected by miniSIPServer? miniSIPServer will use record 2 because its number prefix length is greater than record 1.
In miniSIPServer, this rule is named as 'maximum length matched'. All "dial plan" procedures will follow this rule.
miniSIPServer uses an independent menu to include all necessary configuration for "dial plan". Please refer to the figure below.
These configurations include several key procedures during whole "analyze numbers" procss:
The figure below illusrates main flow and sequence of "analyze numbers" process in cloud miniSIPServer.
At this time, miniSIPServer supports several "route type" defined in "analyze called number" procedure:
"Local user" type means miniSIPServer should try to find the local user whose number is exact "called number" in current call. If miniSIPServer cannot find this user or it is not online, miniSIPServer should release current call.
By default, miniSIPServer processes all calls as "local user" calls if there isn't any "analyze called number" record matched these calls.
"External line" type means miniSIPServer should route current call to external line to final outside users. There are some special configurations for this route-type.
If the "specific external line" item is blank, miniSIPServer will try to select an available external line to route the call.
Below figure illustrates the basic relationship between these special configurations if route type is "external line".
Please refer to "SIP trunk" document for more details.
"Routing group" can combine "external line" and "SIP trunk". It is very flexible for routing selection. Please refer to "routing group" document for more details.
In fact, this type is not used to route call. It is used to indicate miniSIPServer to reject current call directly.
"Dial plan" feature may have several tables to be configured.
"Transition" is used to change numbers. Please click menu "Dial plan / Transition" to get its details.
|Item||Type or value||Description|
|ID||Integer (>0)||Transition ID. It will be referred by other records.|
|Type||1: Add prefix||
Add a prefix before current called or caller string.
"Prefix / Replace string" item must be configured together.
Replace target string with a specific string which should be configured in "Prefix / Replace string" item.
The target string is confirmed by "start position" and "length" items.
|3: Delete||Delete a string which should be confirmed by "start position" and "length" items|
The start position from where current transition will be done.
Valid value is between 0 and 31. 0 means the first digit of the number.
The target transition length. It indicates how many characters should be deleted or replaced.
Valid value is between 1 and 31.
|Prefix / Replace string||String||The specific strings which will be added as a prefix or replace target strings.|
Since 'transition' is a very important and useful element in dial-plan and analysis process, we give some examples to describe how to use it.
Example 1: Change "1234" to "Holly1234".
Transition type = Add Prefix/Replace string = Holly
Example 2:Change "1234" to "34".
Transition type = Delete Start position = 0 Length = 2
Example 3: Change "1234" to "Holly34".
Transition type = Replace Start position = 0 Length = 2 Prefix/Replace string = Holly
This is the core procedure in miniSIPServer "dial plan" process. Its result will get final routing for calls and might change numbers.
Please click menu "Dial plan / Analyze called number" to get its details.
|Item||Type or value||Description|
|Called number prefix||String||The target called number prefix to be analyzed. miniSIPServer uses longest-match method to match called numbers with this prefix.|
|Route Type||Local user (extension)||The call should be routed to a local user.|
The call will be routed to outside through an external line.
If "Specific external line" is configured at the same time, the call will be routed through this specific external line.
The call will be routed to a specific SIP server which is indicated by "SIP trunk ID".
Please refer to "SIP trunk" service document for more details.
The call will be routed to a routing group.
Please refer to "routing-group" service document for more details.
|Intercept||Current call should be intercepted and released immediately.|
|Specific external line||String||If route type is "external line" and this item is configured, the current call will be routed to such external line.|
|SIP trunk ID||Integer (>0)||If route type is "SIP trunk", this item MUST be configured together and the current call will be routed to such trunk.|
|Routing group ID||Integer (>0)||If route type is "Routing group", this item MUST be configured together and the current call will be routed to such group.|
Call right for current record.
If it is 0, that means no limitation, all local users can make calls with this prefix.
If it is non-zero, that means only local users who have the same call right can make calls with such prefix.
|Maximum duration (seconds)||Integer(>=0)||
The Maximum duration of matched call.
If timer expired, miniSIPServer will force to release the call automatically.
'0' means no limitation.
|Change called number||Yes or No||It indicates whether the called number should be changed.|
|Transition ID||Integer (>0)||If the called number is configured to be changed, this item MUST be configured. The transition should be configured firstly.|
|Re-analyze after transition||Yes or No||If it is selected, it means analysis process should be done again after the called number is changed.|
If calls are routed to external lines or SIP trunks, miniSIPServer can use this procedure to refine their final called numbers before sending calls out.
Please click menu "Dial plan / Refine called number" to get its details.
|Item||Type or value||Description|
|Outgoing group ID||Integer (>0)||
This ID will be referred by outgoing calls configuration of external lines and SIP trunks.
|Called number prefix||String||"dial plan" process will use this item with "outgoing group ID" item to match calls. If calls are matched, "dial plan" will refine their called numbers.|
|Transition ID||Integer||If current record matchs the call, "dial plan" will use this transtion to the change called number of current call.|