Dial plan

1. Description

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

  • Analyze numbers, including caller number and called number, to get routing information.
  • Route call to final destination.

dial plan basic process

2. Analyze numbers

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.

2.1 Maximum length matched

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.

2.2 Procedures

miniSIPServer uses an independent menu to include all necessary configuration for "dial plan". Please refer to below figure.

dial plan menus

These configurations include several key procedures during whole "analyze numbers" procss:

  • Analyze caller number.
  • Analyze called number. It is the most important procedure because miniSIPServer will get final routing information according to its result.
  • Refine caller number.
  • Refine called number.
  • Change numbers in different procedures.

Below figure illusrates main flow and sequence of "analyze numbers" process in miniSIPServer.

basic procedures in dial plan

In this document, we don't describe "dial plan" configurations. Please refer to manual document for more details.

3. Routing

At this time, miniSIPServer supports several "route type" defined in "analyze called number" procedure:

  • Local user
  • External line
  • SIP trunk
  • Routing group
  • Intercept
3.1 Local user

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

3.2 External line

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

  • In 'analyze called number', we can configure "specific external line" item at the same time. That means miniSIPServer should route call to such external line.
  • analyze called number with specific external line
  • In 'local user' configuration, we can indicate 'use specific external line' too. That means miniSIPServer should route out-group call to such external line for the local user.
  • local user with specific external line

Below figure illustrates the basic relationship between these special configurations if route type is "external line".

relationship between specific external lines

3.3 SIP trunk

Please refer to "SIP trunk" document for more details.

3.4 Routing group

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

3.5 Intercept

In fact, this type is not used to route call. It is used to indicate miniSIPServer to reject current call directly.