Sipura Dial Plan Wizard for Windows

The Dial Plan Wizard is a Windows software application that assists in creating new dial plans, verifying existing dial plans and testing the plans. It is also an excellent tool for learning how to construct dial plans. The wiz greatly automates the otherwise difficult and confusing tasks of dial plan crafting and testing.

A dial plan is a string of characters that is entered into Sipura VoIP devices to control the device’s dialing behaviors. It is only relevant to Sipura devices.

This is the first beta of the wiz. I believe it to have suprising and considerable functionality, well worth the download/setup/learning-curve efforts — if you are a dial plan person.

The wiz is written in VB.Net 2003. The download is quite large (8MB) due to the large database and perhaps .Net stuff. The zip file probably contains the .Net framework installation. Installation is quite simple and fast on systems that already have .Net. I don’t know the experience for systems that do not. XP is certainly recommended but I believe that 98+ will work too. XGA or better resolution recommended. Feedback needed.

Please download a copy of the wizard here.

Instructions, release notes, screen shots to follow. More testing is needed on:

1. Timeout handling especially P delay
2. Situations where there are multiple matches.
3. Handling of extra dialing digits.

Macro Substitution

When the wiz encounters a text bounded by plus signs (+), it will attempt to resolve the contents according the macro processing rules. First, it tries to resolve using the builtin macro list. The values for builtin macros come from the user’s selections in the lines grid. There are four builtin macros:

1. +modelcode+ resolves to the Sipura device code (SPA3000)
2. +line code+ resolves to the devices line name (line1, gw0, etc.)
3. +line type+ resolves to the type of line (FXO, FXS)
4. +provider+ resolves to the VoIP provdiers name (BroadVoice)
5. +country name+ resolves to the selected country name
6. +country code+ resolves to the selected country code (1 for US)
7. +area code+ resolves to the selected area code
VoicePulse)

If the macro is not one of the above, it will next try to resolve the macro using the Macro table in the database (Dial Plan Wizard.mdb). There are 25 macros currently in the database such as (+Fire+, +Police+, +City Code+, +6d+). The substitution for the macro name can be either a substitute string from the Substitution column, which can also contain macros. If the substitution string is null (empty), the Query column is used. The Query column must either be null or contain a valid SQL SELECT statement. The SELECT will then be invoked. If successful, the returned result will be scaned for additional macros. If the macro still cannot be resolved, the wiz will assume it really isn’t a macro and the string will be passed on to the parser unchanged.

Here’s a dial plan that uses macro substitution:

( 011,xx. | *xx | +directory assistance+ | +fire+ | +police+ | 0 | 00 | < : 1+area code+>[2-9]+6d | 1[2-9]xx[2-9]+6d )

+area code+ is a builtin macro that resolves to, say 312 (Chicago)
+directory assistance+ is 411
+fire+ is 911
+police+ is 911
+6d is xxxxxx

Note that +6d is not terminated by a trailing +. The rules permit the omission of a trailing + if the next character would be invalid as a macro name. A macro name consists of the letters A-Z, a-z, 0-9, spaces or an underscore.

Thus, the above dial plan would resolve to:

( 011,xx. | *xx | 411 | 911 | 0 | 00 | < : 1312 >[2-9]xxxxxx | 1[2-9]xx[2-9]xxxxxx )

+fire+ and +police+ macros are resolved by the SQL SELECT statements such as:

SELECT Fire FROM Countries WHERE [Country Name] = “+Country Name+”

This SQL statement says to look in the table named Countries, in the column named Country Name for the string “United States” and return the entry under the column “Fire”. Thus 911 is retrieved for the United States but perhaps 18 or something else for other countries.

The macro feature permits generalized default dial plans such as (+fire+ | +police+ | 1[2-9]+2d[2-9]+6d | [2-9]xx.) which perhaps will resolve to a usable dial plan for many countries. Macros are also used to specify selections for the database.

All of this macro stuff is very powerful provided the database is well contructed.

Default Dial Plan/Element Selection

The wiz grabs default data elements from the Data Element table and supplies them to the data element grid according to a simple rule. If an entry is blank or matches the user’s selected value, then that dial element will be included in the plan and thus will appear in the grid. Relevant columns are Line Type, Provider, Country Code, and Area Code. For example, if a row has a Country Code of 1 (United States) and an area code of 312 (Chicago), and that matches the user’s selection, then that dial element will be included. Examining the various tables in the database will make this all clearer.

This feature, along with the macro processor, and a well stocked database, can provide a user with a smartly choosen default dial plan immediately upon his selection of his provider, country and area code.

Source: Voxilla