December 14, 2017, 04:49:46 pm *
Welcome, Guest. Please login or register.
News:
 
   Forum Home   Search Login Register OBiTALK  
Pages: [1]
  Print  
Author Topic: Dialing OBI Device from ObiON  (Read 23639 times)
dbdoshi
Newbie
*
Posts: 9


« on: May 25, 2016, 07:41:12 pm »

Hello, I have been reading out single stage vs 2 stage dialing from the ObiON app on my iPhone. I have a single OBI202 currently set up. My setup is:

SP1: Main GV (for just dialing out)
SP2: Callcentric (forwarded from GV on SP1, use it for 911, CNAM, toll-free calls outgoing)
SP3: Another GV account (only used for dialing out international, because GV will not transfer my existing not insignificant GV credit on this account to the GV on SP1. nor will give me a refund)

I have the app installed on my iPhone, eventually it will go on 3 other iOS devices.

I can dial my OBI number (device number) from the app by dialing **9xxxxxxxxx and that gets me to the AA. I press 2, Pin, # and AA then lets me dial out to whatever number. I like that setup. I can also direct dial from the app without going through the AA. I had a few clarifications that I am not sure on.

1. I don't want the direct dialing feature of the app. Is there any way to make sure that I always have to go through the AA and authenticate the PIN before any outgoing calls are made? Is there any way to ONLY ALLOW the "**9xxxxxxxxx" (my OBI202 device number) or only allow a whitelist of numbers to be dialed from the app and reject all other numbers? I wish the app had a PIN protect feature before you can use the app, but unfortunately it is not available. So, I want to lock it down. Is there a way to structure this restriction so that I can go back to direct dial on a temporary basis in the future if the situation so demands?

2. Once, I authenticate to AA using PIN, is there any way to apply my existing outbound trunking rules to AA dialed calls as well? I have set up my Phone to dial 911 from SP2 or 011xx. from SP3 or toll-free from SP2. When using the AA, I have to put the **2 or **3 to use those trunks. Any way to apply those same rules to AA managed outgoing calls as well so that I don't have to specifically target a trunk?

3. During travelling overseas, in some countries VOIP is blocked. Does anyone have any experience using the app in one of those countries? I do have my own PPTP and OPENVPN servers running on my ASUS router (my OBI is a LAN client of this router) at my home. Any real life experiences doing this setup?

4. If my app does not work, is there a way to get to AA without using the app as a backup, maybe using a regular phone line or through SIP (currently using Groundwire on my iPhone)? Is there any to set it up where PIN authenication is still mandatory to dial out?

Thanks a lot for all your help.
Logged
ianobi
Hero Member & Beta Tester
*****
Posts: 1828


« Reply #1 on: May 26, 2016, 07:01:32 am »

If you are happy to dive into the Expert Configuration Pages, then most of what you want can be done.


Quote
I have the app installed on my iPhone, eventually it will go on 3 other iOS devices.

Thatís ok, but only one app will be logged into your OBi account at any time. This is normally the last one to log in. Each account has one softphone number and by default it uses your OBi202 as a gateway. If you have more than one account, then several softphone numbers would be able to use the same OBi202 as their gateway.


With these answers Iím assuming that sp1 is your Primary Line and 290123456 is your softphone number.

1. At the moment your config will look something like this:

Voice Services -> OBiTALK Service -> InboundCallRoute:
{(290123456)>(xx.):sp1},{(290123456):aa},{ph}

The first rule means incoming calls from OBi number 290123456 with dialled digits will be routed directly to sp1. Second rule means incoming calls from OBi number 290123456 with no dialled digits will be routed to the Auto Attendant. Third rule means route all other call incoming on the OBiTALK network direct to the Phone Port. Delete the first rule to prevent single stage dialling.


2. The Auto Attendant works very much like the Phone Port. It has its own:
Voice Service > Auto Attendant > PrimaryLine
Voice Services > Auto Attendant > DigitMap
Voice Services > Auto Attendant > OutboundCallRoute
The same methods you used for the Phone should also work for AA.

3. I have no experience in using from a voip blocked country. However, it is worth saying that the OBiTALK network uses unusual ports for a voip network and also it uses an Obihai proprietary protocol, which does not show as SIP when I look at it with a protocol analyser. So maybe?

4. Yes, much the same as answer 1 above, but using the other incoming services, not OBiTALK. For example, if calls are incoming on sp1, then something like this:

Voice Services -> SP1 Service -> X_InboundCallRoute:
{(12135551212|140755551212|16815551212):aa},{ph}

The first rule routes incoming calls with any of those three CallerIDs to the Auto Attendant. All other calls will route direct to the Phone Port. So call in using any SIP softphone or Hangouts or PSTN. If PIN authentication is set up on the Auto Attendant, then it will apply to any call that reaches the Auto Attendant Option 2.

If you wish to use ďwhitelistsĒ instead of long digitmaps such as (12135551212|140755551212|16815551212)
then you can put the numbers in User Defined Digit Maps to make things easier to manage.


Iím sure that has not answered all your questions, but a good start I hope   Smiley

« Last Edit: May 26, 2016, 07:04:08 am by ianobi » Logged
dbdoshi
Newbie
*
Posts: 9


« Reply #2 on: May 26, 2016, 11:43:26 am »

Iím sure that has not answered all your questions, but a good start I hope   Smiley

Thank you so much for the extensive reply. I think I understand what you have suggested and will check it out in the evening when I get home. I am pretty comfortable with expert config and digit maps (kinda like regular expressions in programming)

I did try one thing yesterday night for Question 1. I went into the OBITalk portal and removed my Voice Gateway for the Softphone from the settings. Then, rebooted my OBI and restarted the app on my phone. Now, when I try to direct dial from the app, all I get is a busy signal. But of course, it still allows for the app to dial into the OBI device though and get to the AA. If I am right, the inbound rule that needs to be taken out (the first one as you suggested) is what my removing the VG for the softphone ended up doing? Or maybe something similar? If so, I prefer your programming approach rather than using UI.
« Last Edit: May 26, 2016, 11:45:07 am by dbdoshi » Logged
dbdoshi
Newbie
*
Posts: 9


« Reply #3 on: May 26, 2016, 04:19:37 pm »

Ok, I was reading the admin guide and trying to understand the flow of calls through the OBI system. Even though I have OBI202, I will assume there is only one phone port (ph) and only 3 service providers (SP1,SP2,SP3). SP1 is the primary line for outgoing calls.

Do outbound calls follow this?

Pick ph. Dial a number. OBI checks to see if a particular trunk was explicitly targeted by using (**1/**2/**3/**9/...). If so, the call will be handed to that trunk. Is the phone's DigitMap checked before this call is handed to the targeted trunk in this case where the trunk is explicitly requested?

If no trunk was explicitly targeted, it goes through ph's DigitMap. The DigitMap will validate the number (it may also modify the number). If it passes through this sanity check, it will go next to the ph's OutboundCallRoute. Depending on this route, it will routed to that particular trunk.

Once a trunk is identified (either explicitly or through OutboundCallRoute):

Let's say the winner is SP2. OBI will then check SP2's current registration status. If it looks ok, SP2's DigitMap is checked to validate this number (and optionally, this DigitMap may also modify the number). If it passes this check, the dialed number is called using SP2's trunk.

Question1: If SP2's DigitMap check fails, does OBI stop processing this call and error out OR will it use the default primary line (SP1)?

Question2: If SP2 is supposed to dial out this number, but the its current status has an error (expired credentials, etc.), will OBI error out or will try to use the primary line (SP1)?

But, if no match is found in the OutboundCallRoute, and assuming that the Primary Line is SP1, SP1's DigitMap is checked. It it passes, all good. If not, OBI error outs and no call is placed.

Am I understanding the outbound calling right?
« Last Edit: May 26, 2016, 04:26:41 pm by dbdoshi » Logged
dbdoshi
Newbie
*
Posts: 9


« Reply #4 on: May 26, 2016, 07:58:11 pm »

Iím sure that has not answered all your questions, but a good start I hope   Smiley

Ok, I got 1 and 2 working as you suggested. Regarding 3, I will have to test it out when I am physically present somewhere it is blocked and try the VPN. Ordinarily, I would use Google Hangouts or Groundwire (with Callcentric) straight if I am outside the house (in US or anywhere) and not involve OBI as a middle man, but OBIoN could potentially be a backup solution. especially if its obfuscating VOIP traffic (and VPN is blocked).

Regarding 4. My GV SP1 never rings, it gets forwarded to SP2 (on GV server side). With this setup, if i use my cell to call my main GV, it will then always ring the AA (if I put the rule in SP2 and I have to press 1 to ring my home phone). Instead, do you see any issue in putting this rule in SP3 (which is again GV, but only used for outbound international calls and I will have to enable the chat forwarding for this phone number). In that way, my SP3 would act as a "pseudo" AA call in number... Any trip wires you see?
Logged
ianobi
Hero Member & Beta Tester
*****
Posts: 1828


« Reply #5 on: May 27, 2016, 12:47:38 am »

Quote
Pick ph. Dial a number. OBI checks to see if a particular trunk was explicitly targeted by using (**1/**2/**3/**9/...). If so, the call will be handed to that trunk. Is the phone's DigitMap checked before this call is handed to the targeted trunk in this case where the trunk is explicitly requested?

All strings of digits dialled must be validated by the Phone Port DigitMap before any further action is taken. If a string is validated, then that string of digits will be passed to the Phone Port OutboundCallRoute where it will be checked against every rule from left to right. The first match found will be used.


Quote
If no trunk was explicitly targeted, it goes through ph's DigitMap. The DigitMap will validate the number (it may also modify the number). If it passes through this sanity check, it will go next to the ph's OutboundCallRoute. Depending on this route, it will routed to that particular trunk.

In this case the string of digits may well match (Mpli) Ė Primary Line DigitMap, which has no ** code prepended in the Phone Port DigitMap. If your Primary Line is sp1, then (Mpli) = (Msp1) = Service Providers > ITSP Profile A > General > DigitMap. This is very useful. For example you may dial a number starting 011 and put this rule in the ITSP Profile A > General > DigitMap:
<**3>011xx. This prepends **3 to any number starting with 011
The modified number will now be passed to the Phone Port OutboundCallRoute where it will be matched by this rule:
{(<**3:>(Msp3)):sp3} This removes the **3 matches 011xx. with the (Msp3) digit map and routes the call via sp3.


Quote
Let's say the winner is SP2. OBI will then check SP2's current registration status. If it looks ok, SP2's DigitMap is checked to validate this number (and optionally, this DigitMap may also modify the number). If it passes this check, the dialed number is called using SP2's trunk.

Yes


Quote
Question1: If SP2's DigitMap check fails, does OBI stop processing this call and error out OR will it use the default primary line (SP1)?

If the number does not match any rule in the Phone Port OutboundCallRoute, then the call will fail. Numbers are checked against digit maps in the Phone Port OutboundCallRoute from left to right in turn. First match is used. If no match, then the call will fail.


Quote
Question2: If SP2 is supposed to dial out this number, but the its current status has an error (expired credentials, etc.), will OBI error out or will try to use the primary line (SP1)?

This needs some testing. The OBi will only try any route where the number matches the digit map. This leads us into discussing Trunk Groups Ė have a search around and then we can discuss that if you want Ė quite a big subject!
Edit: If not using Trunk Groups, then it all depends on this setting:
Voice Services > SPx Service > SPx Service > X_NoRegNoCall
If checked and registration fails, then the OBi will not attempt to route calls on that SPx service and the call will fail.
If unchecked and registration fails, then the OBi will attempt to route calls on that SPx. Calls may fail or not. Many voip providers accept calls without registration if the user credentials are correct. It depends on what has caused the registration failure.


Quote
But, if no match is found in the OutboundCallRoute, and assuming that the Primary Line is SP1, SP1's DigitMap is checked. It it passes, all good. If not, OBI error outs and no call is placed.

Sp1ís DigitMap is within the OutboundCallRoute referenced as (Mpli). Therefore if no match was found when checking the OutboundCallRoute, then the call will fail at that point.


Quote
Am I understanding the outbound calling right?

Mostly!

Iím in a different time zone to you, so replies may take time, but happy to continue this thread if you wish. Some good DigitMap / Call routing examples can be found in posts by RonR, azrobert and even by myself   Wink
« Last Edit: May 27, 2016, 06:00:44 am by ianobi » Logged
ianobi
Hero Member & Beta Tester
*****
Posts: 1828


« Reply #6 on: May 27, 2016, 12:54:23 am »

Quote
Regarding 4. My GV SP1 never rings, it gets forwarded to SP2 (on GV server side). With this setup, if i use my cell to call my main GV, it will then always ring the AA (if I put the rule in SP2 and I have to press 1 to ring my home phone). Instead, do you see any issue in putting this rule in SP3 (which is again GV, but only used for outbound international calls and I will have to enable the chat forwarding for this phone number). In that way, my SP3 would act as a "pseudo" AA call in number... Any trip wires you see?

The OBi will not care how the call arrives. So long as there is a CallerID on the incoming call, then it can route it anyhow you wish. In this case to AA. So just pick which service you want the incoming calls to arrive at and modify the InboundCallRoute accordingly. Bear in mind that as is the case in the OutboundCallRoute numbers are matched with rules from left to right and the first match will be acted upon.
Logged
dbdoshi
Newbie
*
Posts: 9


« Reply #7 on: June 06, 2016, 07:26:23 pm »

The OBi will not care how the call arrives. So long as there is a CallerID on the incoming call, then it can route it anyhow you wish. In this case to AA. So just pick which service you want the incoming calls to arrive at and modify the InboundCallRoute accordingly. Bear in mind that as is the case in the OutboundCallRoute numbers are matched with rules from left to right and the first match will be acted upon.

Ianobi, thank you for very comprehensive responses. I understand it (I think I do!). I will get back if I can't get something to work. I am re-reading the admin guide and some old posts on dialing rules and call routing. I will have some more Qs later on, LOL. Thanks.
Logged
drgeoff
Hero Member & Beta Tester
*****
Posts: 2722


« Reply #8 on: June 07, 2016, 01:06:09 am »

http://www.obihai.com/docs/OBi-DigitMapCallRoute-Tutorial-v1-1.pdf is a good tutorial on digit maps and call routeing.
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC