News:

On Tuesday September 6th the forum will be down for maintenance from 9:30 PM to 11:59 PM PDT

Main Menu

Improved North American DigitMap?

Started by xzaphod, June 05, 2013, 01:24:54 PM

Previous topic - Next topic

xzaphod

From time to time I use the redial feature on my phone handset. If I'm calling another automated attendant, I end up pushing buttons which, sometimes, get remembered by my telephone handset as part of the most recent dialed phone number. For example, if I dial 1-800-555-1212 and press 0, my handset will remember 180055512120 (12 digits, in this example).

When I hit redial on my handset, the OBI202 uses the entire 12 digit phone number to try to place the North American phone call. This fails because it's not an international-style (011...) phone number. It seems the OBI202 ought to recognize and discard digits beyond the "North American 11". POTS does that.

Is there a modification to the OBI202 DigitMap (or elsewhere inside the OBI) that will truncate extra digits when dialing a North American phone number but not alter an international-style phone call?

Thanks.

ianobi

Digit maps can be improved/tailored to your use. Consider this default digit map:

Service Providers > ITSP Profile A > General > DigitMap:
(1xxxxxxxxxx|<1>[2-9]xxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)

If you dial 12 digits starting with "1", then this rule will match it "xx." therefore it will be sent out as a valid number. The problem is that "xx." matches anything. It is there as a "catch-all" to match any number that does not match any other rule in the digit map. As far as digits are concerned this rule "[^*#]@@." behaves in the same way as "xx."

If you are using GV then these rules have no useful function: "xx.|(Mipd)|[^*#]@@." A much better digit map would be:

Service Providers > ITSP Profile A > General > DigitMap:
(1xxxxxxxxxx|<1>[2-9]xxxxxxxxx|011xx.)

This would achieve exactly what you want. As soon as eleven digits staring with "1" have been dialled it will match rule "1xxxxxxxxxx" and be used as a valid eleven digit number regardless of how many digits follow. It also cuts out a two second delay before the number is sent out.

If the default digit map is needed then it could be improved like so:

Service Providers > ITSP Profile A > General > DigitMap:
(1xxxxxxxxxxS0|<1>[2-9]xxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)

As soon as eleven digits staring with "1" have been dialled it will match rule "1xxxxxxxxxxS0" and be used as a valid eleven digit number regardless of how many digits follow.

The original default digit maps are designed to meet all formats for all service providers. As such they ensure calls get through, but can be slow and clunky. Fine tuning them to your exact needs can make a lot of difference.

xzaphod

Thank you ianobi.

This is a good explanation of DigitMap management to improve the OBI. I just received my second OBI202 to install OBIPLUS (woohoo!). I'll implement an improved digit plan when I get my phones working again. I'll look into the regular expressions needed to support 7-digit, 10-digit and 11-digit NA dialing plans discarding extra digits after the 10th/11th. That doesn't look like a stumper given what you've already shown. Both my lines are provided by Google Voice at this time.

I'd guess the DigitMap should handle 3-digit phone numbers too such as 411 and 311. A good DigitMap should handle someone accidentally keying "4111" ("41111", etc.) when trying to get Information.

Does the OBI software recognize 911 and handle it separately? OBI recognizes E911 which suggests the software *might* handle 911 not using DigitMaps (at the expense of lack of internationalization).

Is there a complete, rigorous description of DigitMap regex construction somewhere?

Much thanks.

ianobi

A much used digit map for GV is:

Service Providers -> ITSP Profile A -> General -> DigitMap:
(1xxxxxxxxxx|<1>[2-9]xxxxxxxxx|<1aaa>[2-9]xxxxxxS4|011xx.)
Replace aaa with your local code.

The S4 puts in a 4 second delay after dialling seven digits just in case you intended dialling ten digits and you are a slow button pusher.


In most case I prefer that 911 is kept out of digit maps and is sent direct to the intended service provider. You can do this in the Phone Port OutboundCallRoute  such as:

{911:sp2},{([1-9]x?*(Mpli)):pp},{(<#:>):ph2},{**0:aa},{***:aa2},{(<**1:>(Msp1)):sp1},{(<**2:>(Msp2)):sp2},{(<**3:>(Msp3)):sp3},{(<**4:>(Msp4)):sp4},{(<**9:>(Mpp)):pp},{(Mpli):pli}

Some users like this method for other numbers too, but I prefer to put those in the digit maps. There's a lot of personal preferences in digit map design. Ask three users here and you will probably get three different answers   :)


The ObiDeviceAdminGuide has some of the answers:
http://www.obihai.com/docs/OBiDeviceAdminGuide.pdf

Page 183 onwards deals with digit maps and "Matching Against Multiple Rules in Digit Map". That gets quite deep, but it does tell you how to get them digits sent out as fast as possible!

This forum has some good descriptions of how it all works. The Master Digit Map Guru was RonR - it's well worth searching for posts by him.