News:

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

Main Menu

please help: OutboundCallRoute

Started by YongChen, January 13, 2013, 08:01:03 PM

Previous topic - Next topic

YongChen

I have a Obi110 with the following settings:
SP1 with FreePhoneLine, primary line.
SP2 with Google Voice.

I add {(1xxxxxxxxxx):sp2} in the beginning of PHONE Port::OutboundCallRoute, try to do :
- If dial xxx-xxx-xxxx, go to SP1
- If dial 1-xxx-xxx-xxxx, go to SP2

It does not work. When I dial xxx-xxx-xxxx, it always goes to SP2. Please help. (All other settings are default.)

Thanks,

Felix

What's the full value in Phone - OutboundCallRoute? Also, what are the values in   ITSP Profile A General - DigitMap and ITSP Profile B General - DigitMap? I know you said "default" - but still...

YongChen

Quote from: Felix on January 13, 2013, 11:53:34 PM
What's the full value in Phone - OutboundCallRoute? Also, what are the values in   ITSP Profile A General - DigitMap and ITSP Profile B General - DigitMap? I know you said "default" - but still...

Thanks for the reply. My settings are:

PHONE Port::DigitMap = ([1-9]x?*(Mpli)|[1-9]S9|[1-9][0-9]S9|911|**0|***|#|**1(Msp1)|**2(Msp2)|**8(Mli)|**9(Mpp)|(Mpli))

PHONE Port::OutboundCallRoute = {911:sp1},{(1xxxxxxxxxx):sp2},{([1-9]x?*(Mpli)):pp},{(<#:>|911):li},{**0:aa},{***:aa2},{(<**1:>(Msp1)):sp1},{(<**2:>(Msp2)):sp2},{(<**8:>(Mli)):li},{(<**9:>(Mpp)):pp},{(Mpli):pli}

SP1 Digitmap = (1xxxxxxxxxx|<1>[2-9]xxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|<1>[2-9]xxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)

azrobert

SP1 Digitmap = (xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)

Change {(1xxxxxxxxxx):sp2} to {(xxxxxxxxxx):sp1}.

If you want it to go out sp1 as 1xxxxxxxxxx:
Change {(1xxxxxxxxxx):sp2} to {(<1>xxxxxxxxxx):sp1}.

The reason your config didn't work is because the digit map is processed first.
In the digit map you add a prefix of "1", so when the call route is processed the outbound number always has a prefix "1".

azrobert

This is better:

SP1 Digitmap = (xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)

Add {(xxxxxxxxxx):sp1}, before {(1xxxxxxxxxx):sp2}.

If you want it to go out sp1 as 1xxxxxxxxxx:
Add {(<1>xxxxxxxxxx):sp1}, before {(1xxxxxxxxxx):sp2}.

The reason your config didn't work is because the digit map is processed first.
In the digit map you add a prefix of "1", so when the call route is processed the outbound number always has a prefix "1".

YongChen

Quote from: azrobert on January 14, 2013, 08:04:54 AM
The reason your config didn't work is because the digit map is processed first.
My understanding is, when making a outbound call:
- apply PHONE Port::DigitMap to see if it is allowed, if yes,
- apply PHONE Port::OutboundCallRoute to see which trunk to use
- apply DigitMap of the chosen trunk, and make call with the truck

For my settings, if I dial xxx-xxx-xxxx, it should go through my OutboundCallRoute as following:
{911:sp1} not-match
{(1xxxxxxxxxx):sp2} not-match
{([1-9]x?*(Mpli)):pp} not-match
{(<#:>|911):li} not-match
{**0:aa} not-match
{***:aa2} not-match
{(<**1:>(Msp1)):sp1} not-match
{(<**2:>(Msp2)):sp2} not-match
{(<**8:>(Mli)):li} not-match
{(<**9:>(Mpp)):pp} not-match
{(Mpli):pli} match, my pli is SP1 (FreePhoneLine)

But the person answer the call see my Google Voice #, not my FreePhoneLine #. Why?

azrobert

- apply PHONE Port::DigitMap to see if it is allowed.
  substitution also occurs at this time.
  In the Phone digit map you refer to sp1 digit map with "(Mpli)".
  In sp1 digit map you add prefix "1".
-  Phone outbound call route determines trunk AND makes call.
   Substitution can also occur here.

The spx digit map does NOTHING to determine what is allowed on spx or where the call is routed.
It's more for documentation.
It only has relevance when it's referred to in the phone digit map or phone outbound call route.

If you don't believe me:
 set sp1 digit map to xxxxxxxxxx|1xxxxxxxxxx
 set sp2 digit map to xxxx

I bet it will still work.


Did you try my suggestions and did it work?

ianobi

YongChen,

azrobert is quite right. I'm going to throw my suggestion into the mix to show a different way of doing things.

I think the neatest way, which keeps the modular concept of the Phone Port DigitMap and OutboundCallRoute is as follows:

Leave Phone Port DigitMap and OutboundCallRoute at default.

SP1 Digitmap = (<**2>1xxxxxxxxxx|xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)

SP2 Digitmap = (1xxxxxxxxxx|011xx.)


azrobert

Forgot the parens.

If you don't believe me:
  set sp1 digit map to (xxxxxxxxxx|1xxxxxxxxxx)
  set sp2 digit map to (xxxx)

I bet it will still work.

YongChen

Quote from: azrobert on January 14, 2013, 09:35:06 AM
Did you try my suggestions and did it work?

Hi azrobert, here are the results of your suggestions (without changing any digitmaps):

Quote from: azrobert on January 14, 2013, 07:42:19 AM
Change {(1xxxxxxxxxx):sp2} to {(xxxxxxxxxx):sp1}.
Result 1:
Dial xxx-xxx-xxxx, goes to SP1, working.
Dial 1-xxx-xxx-xxxx, goes to SP1, not working.

Quote from: azrobert on January 14, 2013, 08:04:54 AM
Add {(xxxxxxxxxx):sp1}, before {(1xxxxxxxxxx):sp2}.
Result 2:
Dial xxx-xxx-xxxx, goes to SP2, not working.
Dial 1-xxx-xxx-xxxx, goes to SP2, working.

Quote from: azrobert on January 14, 2013, 08:04:54 AM
Add {(<1>xxxxxxxxxx):sp1}, before {(1xxxxxxxxxx):sp2}.
Result 3:
Dial xxx-xxx-xxxx, goes to SP2, not working.
Dial 1-xxx-xxx-xxxx, goes to SP2, working.

The results show that you were right about the (SP1) digit map adds a prefix "1" before pass the number to the route.

Now the question is, how to let xxx-xxx-xxxx go to SP1 and 1-xxx-xxx-xxxx go to SP2, if I still want add prefix "1" to xxx-xxx-xxxx when using SP1? I mean, dial xxx-xxx-xxxx, but send 1-xxx-xxx-xxxx to SP1; dial and send 1-xxx-xxx-xxxx to SP2.

azrobert

Sorry if I was unclear.
My first post had a logic error, therefore the second post.
You missed that I removed "<1>[2-9]xxxxxxxxx" from your digit maps.
The second post I gave you 2 options.
One if you didn't want the prefix and the other if you did.

Anyway, below is what I think you need:

SP1 Digitmap = (xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)

Add {(<1>xxxxxxxxxx):sp1}, before {(1xxxxxxxxxx):sp2}.


The "(<1>xxxxxxxxxx)" portion of the outbound call route acts as another digit map and adds the "1" prefix before routing the call to sp1.

azrobert

#11
If you want to use ianobi's method do the following:

Leave Phone Port DigitMap and OutboundCallRoute at default.

SP1 Digitmap = (<**2>1xxxxxxxxxx|<**11>xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)

SP2 Digitmap = (1xxxxxxxxxx|011xx.)

His approach is the add **1 or **2 to the dialed number.
The default phone outbound call route will strip these off and route the number to the correct spx.
The above example I'm adding **11. The extra 1 is the country code prefix.


ianobi

#12
OK, now I understand the question. It often takes me a few days  :)

To send out 1xxxxxxxxxx both on sp1 and sp2 and have automatic routing is a tricky problem. I don't think the last solution from azrobert will work because when the **1 is stripped from **11xxxxxxxxxx, there is no plain 1xxxxxxxxxx rule in the sp1 DigitMap to route the call to sp1 in the OutBoundCallRoute. It may well get **2 prepended to it because of the <**2>1xxxxxxxxxx rule. You cannot put the plain rule 1xxxxxxxxxx in sp1 DigitMap because it is Mpli and will take the calls meant for sp2. Anyone still following this ...  ::)

Here's what I suggest:

Leave Phone Port DigitMap and OutboundCallRoute at default.

SP1 Digitmap = (<**2>1xxxxxxxxxx|<FPL>xxxxxxxxxx|<FPL:1>xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)

SP2 Digitmap = (1xxxxxxxxxx|011xx.)

When Phone Port DigitMap is processed:
1xxxxxxxxxx has **2 prepended
xxxxxxxxxx has FPL prepended

When Phone Port OutBoundCallRoute is processed:
**21xxxxxxxxx matches sp2 DigitMap, **2 is removed and the call routes out on sp2 (GV).
FPLxxxxxxxxxx matches sp1/pli DigitMap, FPL is replaced by 1 transforming the number to 1xxxxxxxxxx and the call routes out on sp1 (FPL).


azrobert

Quote from: ianobi on January 15, 2013, 04:28:31 AM
I don't think the last solution from azrobert will work because when the **1 is stripped from **11xxxxxxxxxx, there is no plain 1xxxxxxxxxx rule in the sp1 DigitMap to route the call to sp1 in the OutBoundCallRoute.

I believe my suggestion will work.  You are correct that there is no 1xxxxxxxxxx rule in the sp1 digit map, but there is a xx. rule. "<**1:>xx." will get a match.

ianobi

Azrobert. Your reply #10 I'm sure would work, even though it's not my preferred way of doing things. There's definitely more than one way of sorting this routing problem.

QuoteYou are correct that there is no 1xxxxxxxxxx rule in the sp1 digit map, but there is a xx. rule. "<**1:>xx." will get a match.

I'm not so sure about that. I know it does not look likely, but I think <**1:><**2>1xxxxxxxxxx is a better match for **11xxxxxxxxxx than <**1:>xx. Also the xx. rule adds a ten second delay to dialling out. What we really need is an expert opinion from RonR   ;)  or maybe someone keen enough to try all these different configurations on their OBi110.

Anyhow, I'm sure that your reply #10 or my reply #12 will both work. I guess there's something slightly odd about those of us who find this stuff interesting  :D

azrobert

You are correct.  My reply #11 would not work properly.
<**1:><**2>1xxxxxxxxxx would get a match before  <**1:>xx.
The call would go out sp1, but as **21xxxxxxxxxx.

YongChen

#16
Thank you azrobert and ianobi,

Here are the results:

Reply #10
Quote from: azrobert on January 14, 2013, 07:18:56 PM
SP1 Digitmap = (xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)
Add {(<1>xxxxxxxxxx):sp1}, before {(1xxxxxxxxxx):sp2}.
Result:
Dial xxx-xxx-xxxx, goes to SP1, working.
Dial 1-xxx-xxx-xxxx, goes to SP2, working.

Reply #12
Quote from: ianobi on January 15, 2013, 04:28:31 AM
Leave Phone Port DigitMap and OutboundCallRoute at default.
SP1 Digitmap = (<**2>1xxxxxxxxxx|<FPL>xxxxxxxxxx|<FPL:1>xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|011xx.)
Result:
Dial xxx-xxx-xxxx, goes to SP1, working.
Dial 1-xxx-xxx-xxxx, goes to SP2, working.


Now I want to call 1-8xx-xxx-xxxx from my SP1(FPL). Do you see any issues with the following settings:
Quote
SP1 Digitmap = (xxxxxxxxxx|*98|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)
Phone Port::OutboundCallRoute, adding to beginning: {(18(00|22|33|44|55|66|77|80|81|82|88)xxxxxxx|<1>xxxxxxxxxx):sp1}, {(1xxxxxxxxxx):sp2},

or
Quote
Leave Phone Port DigitMap and OutboundCallRoute at default.
SP1 Digitmap = (18(00|22|33|44|55|66|77|80|81|82|88)xxxxxxx|<**2>1xxxxxxxxxx|<FPL>xxxxxxxxxx|<FPL:1>xxxxxxxxxx|*98|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)

or, I just dial 8xx-xxx-xxxx without the "1" with your suggestions.

ianobi

YongChen,

I think you have answered your own question. All three of your suggestions look like they will work. The simple answers are usually the best. Dial without the "1", then it becomes a ten digit number which will go out to FPL anyhow.

If you go with this:

Leave Phone Port DigitMap and OutboundCallRoute at default.
SP1 Digitmap = (18(00|22|33|44|55|66|77|80|81|82|88)xxxxxxx|<**2>1xxxxxxxxxx|<FPL>xxxxxxxxxx|<FPL:1>xxxxxxxxxx|*98|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)

Then it should work with or without the "1".

I like to delete any rules not being used. xx. and [^*#]@@. can cause problems as they both match any number of any digits. None of these are useful in a GV DigitMap: xx.|(Mipd)|[^*#]@@.

donly

Quote from: YongChen on January 17, 2013, 08:27:43 AM

Here are the results:

Reply #10
Quote from: azrobert on January 14, 2013, 07:18:56 PM
SP1 Digitmap = (xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)
Add {(<1>xxxxxxxxxx):sp1}, before {(1xxxxxxxxxx):sp2}.
Result:
Dial xxx-xxx-xxxx, goes to SP1, working.
Dial 1-xxx-xxx-xxxx, goes to SP2, working.

Reply #12
Quote from: ianobi on January 15, 2013, 04:28:31 AM
Leave Phone Port DigitMap and OutboundCallRoute at default.
SP1 Digitmap = (<**2>1xxxxxxxxxx|<FPL>xxxxxxxxxx|<FPL:1>xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|011xx.)
Result:
Dial xxx-xxx-xxxx, goes to SP1, working.
Dial 1-xxx-xxx-xxxx, goes to SP2, working.


Now I want to call 1-8xx-xxx-xxxx from my SP1(FPL). Do you see any issues with the following settings:
Quote
SP1 Digitmap = (xxxxxxxxxx|*98|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)
Phone Port::OutboundCallRoute, adding to beginning: {(18(00|22|33|44|55|66|77|80|81|82|88)xxxxxxx|<1>xxxxxxxxxx):sp1}, {(1xxxxxxxxxx):sp2},

or
Quote
Leave Phone Port DigitMap and OutboundCallRoute at default.
SP1 Digitmap = (18(00|22|33|44|55|66|77|80|81|82|88)xxxxxxx|<**2>1xxxxxxxxxx|<FPL>xxxxxxxxxx|<FPL:1>xxxxxxxxxx|*98|011xx.|xx.|(Mipd)|[^*#]@@.)
SP2 Digitmap = (1xxxxxxxxxx|011xx.|xx.|(Mipd)|[^*#]@@.)

or, I just dial 8xx-xxx-xxxx without the "1" with your suggestions.

I have the same setup with FPL on SP1 and GV on SP2 and would like to do that same thing with outbound call routing and glad I came across this thread. I do have one question, with this setup does 911 go out on SP1 (FPL)?

Thanks!

ianobi

donly, welcome to the forum.

In reply #2 the relevant rule is this one:
PHONE Port::OutboundCallRoute = {911:sp1},...

911 is being sent out direct to sp1 (FPL) with no reference to DigitMaps etc. This avoids any delays and any chance of 911 being misrouted. I'm guessing that OBi inserted this rule when YongChen configured FPL and checked the "Use this Service Provider for 911" box.