Mango's Guide to Configuring an OBi100, OBi110, OBi202, OBi200, OBi302, and OBi300 ATA

January 18, 2018
OBi100We 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:
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: Do we consider this the "right" dial plan for an OBi ATA? Not necessarily. OBi ATAs are infinitely variable, and dial plans can be crafted to satisfy nearly any situation. This is just one example of how it can be done. We hope you'll be as delighted with your OBi ATA as we are with ours!
b3l
April 22, 2013
Oops, I forgot to say thank you, Mango. Thank you for this guide and for everything else that you do for fellow techies and non-techies alike. It is folks like you that make the tech 'community' so great.
Kim
May 26, 2016
Have you seen the intentional disabling of obi devices for GV? They give you this message: "Please Note:
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.
Mango
May 26, 2016
Yes, and I know how to fix it, but you may never know that since you didn't leave me your email.
Mango
June 23, 2016
For anyone else having this problem, scroll up and check the second paragraph of this article for a fix.
George
March 25, 2018
Lots of time and effort went into this but it's useless to us that need it the most. Too much jargon and too little plain talk. If you can follow any of this you probably are so savvy you didn't need it anyway.
Mango
March 25, 2018
I make no apology for assuming readers will have a minimal level of intelligence.
L. Morningstar
August 24, 2018
Mango, assuming is dangerous habit. So, you want to communicate? Learn to do it without making comments about level of intelligence of your audience. Acting as if you are superior, at the same time longing to be respected for your special qualities and accomplishments by making them public is plain arrogance. Now hit this delete button, you do not want my comment to be visible, right?
Mango
August 28, 2018
OH NO. SOMEONE ON THE INTERNET DISCOVERED I AM ARROGANT. WHAT WILL I DO.