Mango's Guide to Configuring an OBi100, OBi110, OBi202, OBi200, OBi302, and OBi300 ATA
January 18, 2018
We used Linksys ATAs for many years but upgraded to Obihai when we needed a device with an FXO port. Obihai has outdone themselves and created some devices that are even more configurable than their older PAP2T, SPA2102, and SPA3102. OBi ATAs are deficient in only a few ways - for example a mediocre jitter buffer, and no way of routing calls based on Caller ID Name or customizing Caller ID Name. Fortunately, OBi ATAs' good qualities - particularly their excellent audio and powerful call routing - far exceed their shortcomings and they are what we believe to be the finest ATAs available today.
UPDATES FOR 2021:
Did you know there is modded third-party firmware available for your OBi that adds new features? See obifirmware.com for details.
OBi ATA Configuration
Mango claims he hasn't used all default settings on anything since '73, and his OBi110 is not an exception to the rule. However, the setup required much less effort than PAP/SPA devices. Note that if you use the OBiTALK Portal to configure your device, and you want to use our suggested configuration, you may need to enter "OBI Expert Configuration". System Management >> Network Settings:Time Service Settings >> LocalTimeZone: (set appropriately for your location)
System Management >> Device Admin:
Web Server >> AdminPassword: (pick a strong password)
Web Server >> UserPassword: (pick a strong password)
Service Providers >> ITSP Profile x >> SIP:
RegistrationPeriod: 1800
(The default RegistrationPeriod of 60, while effective, can in many cases be safely raised to reduce resource requirements. 1800 is somewhat of an arbitrary number and will cause the device to register every 15 minutes. Note: set to 3600 for FreePhoneLine.)
TimerT1: 1000
X_ProxyServerRedundancy: (Checked)
Voice Services >> SPx Service >> SPx Service:
X_KeepAliveEnable: (Checked)
KeepAlive is an appropriate and less expensive alternative to a short registration interval.
Physical Interfaces >> LINE Port: (OBi110 only)
LINE Port RingDelay: We were able to lower this to 2750, discovered that it took less time for our phone to ring, and still allowed Caller ID to function. If you have Caller ID problems after changing this, just change it back.
LINE Port DetectOutboundConnectMethod: None
LINE Port DialDigitOnTime: 75
LINE Port DialDigitOffTime: 50
(We came up with the above settings by trial and error. This made outgoing POTS calls connect much faster. However, if you are unable to make POTS calls after setting this, relax the settings or set them back to default.)
PSTN Disconnect Detection SilenceTimeThreshold: 900
This feature disconnects the call if no audio is received for some time. However, if you call someone and they place you on hold without hold music, the OBi will disconnect the call after 60 seconds. You may wish to increase this. If you don't use voicemail provided by your POTS provider, you should test your voicemail after making this change to ensure it still works properly.
OBi ATA Security
If you don't use a "restricted cone NAT" router (and we think you should!) you may wish to set the following so that your OBi ATA doesn't accept calls from SIP scanners: Voice Services >> SPx Service:Enable: Uncheck this if you don't intend to use this service provider.
X_UserAgentPort: 52355
The above number is a random number; you can use any valid UDP port number.
The above number is a random number; you can use any valid UDP port number.
X_InboundCallRoute: {>Insert your AuthUserName here:ph}
By default, OBi devices accept calls destined for any username. The above syntax rejects calls that are not intended for whatever you have configured as AuthUserName. (Credit to Oleg for this excellent solution!)
If you're particularly security conscious, need to be protected from liability, or otherwise want to prevent the OBi device from automatically updating its firmware, reporting its configuration to OBiTALK, and updating its configuration from OBiTALK, you can set the following settings.
System Management >> Auto Provisioning:
Auto Firmware Update >> Method: Disabled
ITSP Provisioning >> Method: Disabled
OBiTalk Provisioning >> Method: Disabled
The following will disable OBiTALK. If you require the features of OBiTALK, you should skip the next two steps.
Voice Services >> OBiTALK Service:
Enable: (Unchecked)
Physical Interfaces >> PHONE Port:
DigitMap: (add !**5S0| as the first sequence of the DigitMap)
OBi ATA Dial Plan
The default dial plan on the OBi110 allows you to configure a "Primary Line" and use star codes to select different lines. We decided to change our dial plan so that the device would use the appropriate "line" based on the number dialed. Here is an example, which is the dial plan we use. With the dial plan below, one can add or remove sequences from the DigitMap of the LINE Port or a Service Provider. Since we will include these DigitMaps in the PHONE Port's DigitMap and OutboundCallRoute, you needn't make the same change in multiple places. With this technique, if you use substitutions in a DigitMap, the result of the substitution must also be included in the DigitMap for things to work properly. Physical Interfaces >> LINE Port: (OBi110 only)DigitMap: ([2-9]xx[2-9]xxxxxxS0|[3456798]11S0|18(00|88|77|66|55)xxxxxxxS0|<#:>|)
Take a look at the two sequences <#:>| which you'll see at the end of the DigitMap above. Yes, there are two here - one that matches and removes #, and one that matches nothing at all. These sequences will allow the user to dial # and be presented with a POTS dial tone.
Service Providers >> ITSP Profile A >> General: (configured for SIP)
DigitMap: (1[2-9]xx[2-9]xxxxxxS0|011xxxxxxx.)
Service Providers >> ITSP Profile B >> General: (configured for Google Voice)
DigitMap: (<0:001>[2-9]xx[2-9]xxxxxx|001[2-9]xx[2-9]xxxxxx)
Why <0:001> and 001? 001 is a legitimate prefix for North America numbers that works with Google Voice, and doesn't interfere with the rest of this dial plan. <0:001> allows the shortcut of dialing 0 instead.
Physical Interfaces >> PHONE Port: (sp3 and sp4 may be added for the OBi202. li may be removed for non-OBi110.)
DigitMap: ((Mli)|(Msp1)|(Msp2))
(The above combines the DigitMaps of the LINE Port, SP1 Service, and SP2 Service.)
OutboundCallRoute: {(Mli):li},{(Msp1):sp1},{(Msp2):sp2}
(The above routes outbound calls via li, sp1, or sp2, whichever matches first.)
This is how the above dial plan functions:
- x11, 10-digit calls, and toll-free calls are routed via POTS.
- 11-digit calls and international calls are routed via a SIP provider.
- 11-digit calls prepended with a 0 (instead of 1) are routed via Google Voice. Granted, this isn't much of a step up from a star code, but the main purpose of our device is use of POTS and SIP. Google Voice is a bonus.
This OBi device's annual support entitlement has expired. An important software update with enhanced security and ease of use features is required to maintain Google Voice service on this OBi device. To automatically upgrade this device using the OBiTALK portal as well as get access to Obihai’s Premium Support help desk, a paid support plan is required. To purchase 1-year of Obihai Premium Support, use the button found in the Support and Warranty tab. When device's support status is Active, the software update can continue by selecting the update triangle adjacent to the device, in the OBiTALK dashboard."
The obi device still works, but not with GV with obitalk.
I keep coming back to your blog over the years. This has been one of the most useful and succinct/comprehensive resources for my OBi ATA that I've found anywhere. I wholeheartedly agree that the OBi ATA devices are such a nice piece of tech equipment.
I sure hope my OBi keeps working for Google Voice after the December 2023 "end of life" (product support) by Polycon.