Thursday, September 11, 2014

Custom Caller ID Names with Google Voice, OBi202, OpenCNAM and YATE (Updated for September 2014)

In September, 2013 I previously authored a three-part series (123) on customizing caller ID on an Obi202 connected to Google Voice. Soon thereafter, Google announced that it was turning off the XMPP protocol, which would render Obi devices unable to connect to Google Voice. That was the case until the recent announcement that Obi + Google Voice would again be supported! (Announcement) Therefore, I provide the following update to get my previous scripts working with this generation of Obi + Google Voice support.


Step #1: Set up your YATE server

The instructions in Part 1 of my previous series should still be generally valid. Do that first.

You will also need to install and configure the Caller ID script, as per Part 3. These instructions have not changed either. In Part 3 you'll do these sections:
  • Install the YATE script libraries
  • Verify perl dependencies
  • Install custom caller ID script
  • Configure custom caller ID script
  • Create local caller ID map file
  • Configure YATE to use your script
Be sure you have YATE installed and the script installed (albeit untested in the real world) before continuing.

Step #2: Configure your Obi and Google Voice with obitalk.com

In the period when Google Voice was not supported, I had signed up for a plan with a VOIP provider which required me to configure my Obi with the "obitalk.com" portal instead of logging in directly. To get Google Voice up and running quickly, I used the wizard on that site. It seems to be integrated with Google accounts single sign-on and authorizing of apps now.

It may be possible to configure this by logging directly into the Obi, but I didn't try.

Be forewarned: if you had configured things by directly logging in to the Obi, switching over to obitalk.com will blow away all those configurations. (That's exactly what I wanted to do back in March as I set up my new VOIP provider, but may not be what you want to do now. Use caution.)

So you do this:

  1. Sign in to obitalk.com
  2. Add a Google Voice account (mine went in SP2 since my VOIP provider was in SP1)
  3. Test - call your Google Voice number and make sure your Obi-attached phone rings. Dial out from your Obi-attached phone and make sure the call goes through. Have this all tested and working before you go on.

Step #3: Route Google Voice calls from Obi through YATE

These instructions will replace Part 2 of my previous series. I didn't link it because you don't want to follow those instructions. You want to follow these!
  1. In obitalk.com, look under "Configure Service Providers" and click the (Service Provider Setup) button.
  2. Skip past the "recommended" service providers to the section where it says many different service providers will work, and click the (Next) button.
  3. There is a long list of service providers. Click the "Generic Service Provider" link.
    1. Set the configuration name to "YATE Server" (doesn't really matter)
    2. For "Primary Line for Outgoing Calls" uncheck both. You don't want your calls to go OUT through YATE.
    3. For "Incoming Calls Will Ring On" select one or both phones. These will be the phones that ring when you get a call.
    4. For "Voicemail Notification" uncheck both. YATE won't be serving voicemail.
    5. For "7-Digit Dialing for USA & CAN" just leave it blank. You won't be placing outbound calls through YATE.
    6. For "Use This Service for Emergency 911 Calls" be sure you uncheck it. It is very important that you uncheck this box for your safety. If you use my setup, YATE can't place outgoing calls. You should have already configured your Obi to use a 911-compatible service like Anveo.
    7. For "Service Provider Proxy Server" enter the IP address (or FQDN) of your YATE server.
    8. For "Service Provider Proxy Server Port" leave this at 5060 unless you've made unusual configurations to YATE.
    9. The "Outbound Proxy Server" can be left blank.
    10. For "Outbound Proxy Server Port" just leave it at the default 5060.
    11. For "Username" enter the username from Part 1 (in my example the username was "obi202user" but I hope you chose something more secure!)
    12. For "Password" enter the password from Part 1 (in my example the password was "obi202password" but I hope you chose something more secure!)
    13. The "URI" field can be left blank.
    14. Click the (Submit) button and make sure the page reloads with a success message.
  4. Click back to the "Device Configuration" screen and make sure that the status of the YATE connection you just set up is "Registered." You might also look in your YATE log to make sure the client registered.
  5. Now you will make the change for the inbound route of the Google Voice so it routes the call into YATE.
    1. From the Device Configuration screen, click the (Obi Expert Configuration) button.
    2. Click the (Enter Obi Expert) button.
    3. Expand Voice Service - SPx Service (where SPx is your Google Voice setup, either SP1, SP2, SP3, SP4)
    4. Next to "X_InboundCallRoute" uncheck both the "OBiTalk Settings" box and the "Device Default" box. Neither box should be checked.
    5. Following the examples and instructions from Part 3, enter the appropriate "X_InboundCallRoute" for your setup. This is the string that looks like:

      sp#(xxxxxxxxxx/$1@192.168.1.1;ui=obi202user:obi202pass)
    6. Click the (Submit) button.
  6. The final step is to disable the "X_EnforceRequestUserID" setting for the YATE service provider.
    1. Still in the Obi Expert menus, expand Voice Service - SPx Service (where SPx is your YATE setup, either SP1, SP2, SP3, SP4)
    2. Next to "X_EnforceRequestUserID" uncheck the box. (You may have to uncheck the OBiTalk Settings or Device Default. Either way you want the box unchecked.
    3. Click the (Submit) button.
  7. Wait about 60 seconds for your Obi device to reboot. (This is triggered automatically by your submit action in the prior step.)


Step #4: Test

Call your Google Voice number from an external phone and see if it works.

If it does, congratulations and well done!

If it doesn't, you did something wrong. You should do it the right way instead. :) (Seriously speaking, post in comments and I'll try to help.)


Step #5: Optional additional setup

Refer to Part 3 if you'd like to do any of the following additional setup steps:
  • Setting up OpenCNAM professional tier
  • Advanced Topic: Multiple Google Voice numbers
  • Maintaining your system
  • Ideas

1 comment:

  1. I've been using this configuration you outlined for years now. After several years of working great (when I don't accidentally forget to restart the YateServer VMWare on my home PC), ObiHai for some reason deleted my SP4 YateServer config on OBiTalk.

    Having been several years since I had looked at this, I struggled to remember what I had done. But, I eventually found this post again (I had it bookmarked in an odd location). Once I found it, it actually at that point in time realized that my SP4 config on OBiTalk had been removed. I then created it again following your instructions and Viola!!!

    So, I just wanted to give you a huge THANK YOU!

    This is a wonderful solution for CallerID and you've saved me now twice with this most excellent post!

    Regards,
    Steve

    ReplyDelete