"Dial plan" is core function of miniSIPServer. Once miniSIPServer receives a call, miniSIPServer will invoke "dial plan" to analyze numbers of the call and get final routing information. So during "dial plan" process, there are two key procedures:
As we know, each call has several numbers, such as caller number and called number. In this process, miniSIPServer will process several procedures, such as recongnize caller number, analyze called number and change 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 current call.
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 |
---|---|---|
1 | 12 | ... ... |
2 | 123 | ... ... |
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 procedures will follow this rule.
miniSIPServer uses an independent menu to include all necessary configuration for "dial plan". Please refer to below figure.
These configurations include several key procedures during whole "analyze numbers" procss:
Below figure illusrates main flow and sequence of "analyze numbers" process in miniSIPServer.
In this document, we don't describe "dial plan" configurations. Please refer to manual document for more details.
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.
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.