News:

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

Main Menu

What is the exact meaning of the DigitMap concept

Started by VOIP_JoeSummy, April 03, 2015, 09:02:26 AM

Previous topic - Next topic

VOIP_JoeSummy

Hi, I have a question about exactly what DigitMap mean in my OBI110 ( SP1 -> Google Voice. SP2 -> VOIP.ms. LINE -> Bell Canada local phone service ).

I found that DigitMap is defined on the following pages:

        Service Providers   - ITSP Profile A
        Service Providers   - ITSP Profile B
        Voice Services      - SP2 Service
        Voice Services      - OBiTALK Service
        Voice Services      - Auto Attendant
        Physical Interfaces - PHONE Port
        Physical Interfaces - LINE Port

Say, for example, on the PHONE port, does DigitMap control what numbers can be dialed from the phone, or does it mean what ( incoming call ) numbers can be received at the PHONE port, or both?

Thanks in advance!


VOIP_JoeSummy

Thanks so much for the quick reply.

So it seems DigitMap only controls what can be dialed out from the PHONE port, or ITSP A/B, or OBiTALK, or LINE port.

DigitMap does NOT control what incoming calls are accepted or rejected. This is set up by the InboundCallRoute entry for the corresponding terminal/trunk instead. Right?

lrosenman


drgeoff

The InboundCallRoute can refer to a DigitMap (typically a user defined one). That mechanism can be used to block incoming calls with certain CIDs.

azrobert

I wrote the following for a previous post.
Hopefully, it will help you understand the OBi.

This is how an OBi works:
With the exception of the Phone Port (PP), the DigitMaps do NOTHING on their own.
After a number is dialed the (PP) DigitMap gets control.
The PP DigitMap validates the dialed number.
You have the option of modifying the dialed number, like add/removing a prefix.
If you modify the dialed number, it is actually changed at this point.
The last rule (Mpli) points to the Primary Lines's (PL) DigitMap.
So if the PL is SP1, the ITSP A DigitMap's rules are included with the PP DigitMap.
If the number is validated by the PP DigitMap, it is passed the PP OutboundCallRoute.
If the number doesn't match a rule, you will get a Busy tone.

OutboundCallRoute Processing:
Rule {(Mpli):pli} routes un-prefixed (without **n) numbers to a trunk.
(Mpli) points to the PL DigitMap and pli points to the PL.
If the PL is SP1 and the dialed number matches a rule in the ITSP A DigitMap the call is routed to SP1.

The PP DigitMap also determines the delay before a call is routed to the outbound trunk.
The DigitMap analyses the number as it's being dialed.
If dialed number matches a DigitMap rule and it can't match any other rule there is no delay.
If dialed number matches a DigitMap rule, but it can potentially match another rule there is a 2 second delay.
If there are rules xxxxxxxxxx and xxxxxxx
If you dial 7 digits it matches xxxxxxx and can potentially match xxxxxxxxxx
The OBi doesn't know if you will dial any more digits, so it waits 2 seconds.
If dialed number only matches a DigitMap rule like "xx.", there is a 10 second delay.
x matches a single digit and x. matches zero or more digits.
xx. will match 1 or more digits.
Since this rule is open ended, the OBi waits 10 seconds.
You can override the delay by coding the rule like this: xx.S3
Now there will be a three second delay.

Edit:
After reading this again, it's not 100% accurate.
The Auto Attendant DigitMap will validate dialed numbers by itself.
Trunk Groups automatically use the ITSP DigitMaps.

VOIP_JoeSummy

Let's say I pick up the phone ( connected to the PHONE port ), dial a number that goes out via SP1 Google Voice.

OBI110, I think, does 3 rule-checkings on this number, in the sequence of PHONE_Port:DigitMap -> PHONE_Port:OutboundCallRoute -> ITSP_Profile_A:DigitMap.  I noticed that these 3 rules can be potentially overlapping each other, or worse, running into conflict with each other ( due to user mistakes ).

So is it possible to ask OBI110 to disable the PHONE_Port:DigitMap and ITSP_Profile_A/B:DigitMap checking?  So that I can create only one (long) rule for PHONE_Port:OutboundCallRoute, to control how outbound calls are processed and via which trunk. I definitely do not want to maintain duplicate or almost-identical rules over all the places.

azrobert

#7
Here is a simple configuration example. It seems my last post wasn't clear.
Assume SP1 is set as the Primary Line and you only dial 11 digit numbers.

ITSP A DigitMap: (1xxxxxxxxxx)

Like I said in my blurb, this doesn't do any checking by itself.

Phone Port DigitMap: (Mpli)

This points to the Primary Line's (SP1) DigitMap, so rule "1xxxxxxxxxx" is included with any other Phone Port DigitMap rules.

Phone Port OutboundCallRoute: {(Mpli):pli}

Again, (Mpli) points to ITSP A DigitMap and pli points to sp1

You only define the 11 digit rule once then refer back to it.
____________________________________________________

Expanding the example. International to SP2. 7 digit numbers and 911 to PSTN.

ITSP A DigitMap: (1xxxxxxxxxx)
ITSP B DigitMap: (011xx.)
Line DigitMap: (xxxxxxx|911)
Phone Port DigitMap: ((Msp1)|(Msp2)|(Mli))
Phone Port OutboundCallRoute: {(Msp1):sp1},{(Msp2):sp2},{(Mli):li}
_____________________________________________________

Now to answer your question.
The trunk DigitMaps don't do anything unless referred to.
You can't disable the Phone Port DigitMap.
This is what you can do:
ITSP A DigitMap: ()
ITSP B DigitMap: ()
Line DigitMap: ()
Phone Port DigitMap: (xx.S3)
Phone Port OutboundCallRoute: {(1xxxxxxxxxx):sp1},{(011xx.):sp2},{(xxxxxxx|911):li}

I do not recommend coding the Phone Port DigitMap like that.
xx. will match any dialed number 1 or more digits long.
S3 is a 3 second delay.
You need a delay because without it and you pause while dialing, the call will go out prematurely.
xx. without the S3 would have a default of a 10 second delay.

202Owner

#8
Quote from: VOIP_JoeSummy on April 03, 2015, 09:02:26 AM
Hi, I have a question about exactly what DigitMap mean in my OBI110 ( SP1 -> Google Voice. SP2 -> VOIP.ms. LINE -> Bell Canada local phone service ).

I found that DigitMap is defined on the following pages:

       Service Providers   - ITSP Profile A
       Service Providers   - ITSP Profile B
       Voice Services      - SP2 Service
       Voice Services      - OBiTALK Service
       Voice Services      - Auto Attendant
       Physical Interfaces - PHONE Port
       Physical Interfaces - LINE Port

Say, for example, on the PHONE port, does DigitMap control what numbers can be dialed from the phone, or does it mean what ( incoming call ) numbers can be received at the PHONE port, or both?

Thanks in advance!


>>Say, for example, on the PHONE port, does DigitMap control what numbers can be dialed from the phone, or does it mean what ( incoming call ) numbers can be received at the PHONE port, or both?

The PH1 PHONE Port is an endpoint terminal.  The PH1 digit map is used to process the digits dialed and to route an outbound call.  It is not used for routing an inbound call.  The PH1 digit map should be used for the OBi's outbound dialing requirements including star codes by default, manual outbound routing via service access codes, auto attendants, # key, speed dials, ad hoc gateway(s), and automatic outbound routing via the Primary Line selection.  You could pile a bunch of other crap in there, but I would not as it is not the OBi way.

Digit maps and call routes (inbound and outbound) share many digit/number processing rules and syntax used by the Digit Map Processor (DMP) to process the digits dialed and to route calls.  At the very least, you must define inbound call routes to route incoming calls (easy); and you must define a dial plan (digit maps and outbound call route) to process the digits dialed and to route outbound calls (not easy).

Since you need a dial plan, I suggest you conquer that.  Then everything else will be familiar and ancillary.

A dial plan defines the active digit maps and outbound call route required to evaluate, modify, restrict, complete, and route the number that may be dialed or called according to the various outbound dialing requirements of the user/agent, the service provider(s), and the dialing location.  Before constructing a dial plan, determine the relevant outbound dialing requirements it must support for VoIP.ms, Google Voice, LINE, etc. and the OBi itself.

Once you have your outbound dialing requirements, you can construct the dial plan.  An OBi provides an organized way to construct a dial plan in a very methodical and efficient manner, but it does not explain how to do this.  You must dive in and figure it out.  Few do.

I did and documented what I came up with.  First you must identify the dial plan elements as you noted above.  Then you must define them as they relate to your dialing requirements.  The trick is to understand and respect their purpose and then use them accordingly.  Otherwise, you can easily build an illogical mess that is difficult to understand and maintain and extend.

If you are motivated, take a look at my OBi Dial Plan http://ozarkedge.mypressonline.com/index.htm.  I've done much of the heavy lifting.  You would just need to study it and figure it out.  If you do, I'm sure it will 'click' and you will then appreciate why the OBi has so many digit maps.  It is cool and elegant.

Edit:  Note that the default OBi digit maps are not sacrosanct.  The OBi has to ship with something that seems to work, and there is no way they can anticipate your dial plan in total.  Unfortunately, what they ship leads one in no particularly useful direction when having to build your own dial plan from the ground up.