Google Voice to DID to Extension = OK, but if the call ends on IVR = Google Voice voicemail


I’m pretty new to the Asterisk/FreePBX scene, but did a lot of reading and was able to figure most of everything out, except this one thing. Here’s the situation and my setup.

I have a Google Voice trunk/inbound route/outbound route setup using the Google Talk client on Asterisk 1.8.4. Outbound calls are OK but I get unreliable results with inbound calls. I tried adding a Wait of 8 and sending DTMF of 1 and 11 as recommended by a few people on this forum but that didn’t improve the reliability of my system. It picks up every x calls, inconsistently.

Another thread I read earlier this week suggested to get a DID from another provider and forward the Google Voice number to that number. I got a free DID from IPComms and configured the trunk and inbound route. Everything works flawlessly and my IVR picks up every single time, no exception when I call my IPComms DID directly.

I deactivated the forward to Google Talk in my Google account and forwarded my Google Voice number to my IPComms number. I was able to confirm my IPComms number with Google Voice by setting my IPComms incoming route destination to an extension connected to a phone. When setup to ring to that extension it is 100% reliable, every single call to my Google Voice number is connected as soon as I answer the phone and I don’t have to push “1” to accept the call. It connects just like a regular phone, 100% of the time.

Here’s the problem. If I change the destination of the IPComms incoming route to ring an IVR instead of an extension, I can see Asterisk picking up, from the FreePBX System Status page, and I can see in the history of my IPComms that Asterisk really picked up the call and stayed online for 25-30 seconds, but the person calling never gets connected to the IVR and ends up on the Google Voice voicemail.

Just to be clear, here’s a recap:

  • Call IPComm DID > Extension = Answer
  • Call GV > forward to IPComms DID > Extension = Answer
  • Call IPComm DID > IVR = Answer
  • Call GV > forward IPComms DID > IVR = GV voicemail

I was actually able to reach my IVR calling the GV number once yesterday and once today, out of about 50 test calls, with the same settings. I just don’t get it.

I’m on Asterisk 1.8.4 with FreePBX 2.9.x, on a Centos 5.5. Call screening is turned OFF in the Google Voice account and Google Voice is setup to only forward to my IPComms number, not to Google Talk.

Has any of you run into something similar or has any suggestions or tricks to try?

I can post config files and logs, if that can help.

Thanks in advance!

good luck. it would be best not to use the google telephone number with an IVR because of these results until freepbx/asterisk finds a way around the google roadblock

For all those with similar problems with GV and IVRs here’s the workaround that seems pretty reliable to me, for now.

My IVR is at extension 1000.

I created a new virtual extension, left everything as default, gave it the name “Temporary Solution” and added a Follow Me to that extension.

In the Follow Me configuration, I left everything to default except in the follow me list I put 1000 (the extension associated with my IVR) and I set the play music on hold to “Ring” (it didn’t work with default or a recorded message). At the bottom, I set the Destination to extension 1000. Submit, then apply.

It all seems to work for now.

I am having the same problem getting GV to answer my IVR. If I set the gv trunk to my ring group of extensions it works fine, but when i try to fwd it to IVR I have problems. I dont quite understand what you are doing here. What do you mean you set the IVR to a extension?

your inbound trunk is set to what the virtual extension? then the call fails there and goes to the ring group? then it fails that too and is picked up by the IVR?

Sorry, if I wasn’t clear. Here’s my exact setup:

  1. My Google Voice account is set to forward to my IPComms DID. IPComms offers free DID with free incoming call.

  2. Forward to Google Talk is turned off in my Google Voice account, as well as call screening.

  3. Create the main extension that calls my IVR: Extension > Add Extension > Generic > User Extension: “1000” - Display Name “Switchboard”. Ring Time 1. At the bottom, all three destinations are set to “IVR” > “Level 1 - Welcome” (this is my main IVR).

  4. Create an extension for the Google workaround: Extension > Add Extension > None (Virtual Exten) > User Extension: “3000” - Display Name: “Temp Solution”.

  5. Add “Follow Me Settings” to extension 3000 and here’s the tricky part (other settings didn’t work for my for this does):

    • Follow-Me List: 1000 (the extension created above for my IVR);
    • Announcement: none;
    • Play music on hold: ring;
    • Destination if no answer: Extension 1000.
  6. IPComms Incoming Route: Set Destination > Extension “3000” - “Temp Solution”.

  7. IPComms trunk setup: copy pasted directly from my IPComms account.

  8. Google trunk setup with the jabber.conf and gtalk.conf (you probably already have this working).

  9. Outbound route: uses Google trunk.

I hope that works for you. Let me know if you have any questions.

Thank you so much for these detailed instructions. I don’t know why there is a problem with google voice forwarding to a SIP DID that autoconnects to an IVR but there definitely was inconsistent behavior. Following your workaround, I haven’t had one misfire.

I don’t have my freepbx version in front of me (I installed the freepbx distro downloaded in August of 2012) but the bug hasn’t been fixed yet.

One small change to your instructions though: In step 3, you say to add a “Generic” extension. I didn’t have that option so I used a “virtual extension” as mentioned in step 4 and that worked fine.

Thanks again - I was about to port my number from google voice to the sip provider and I really wanted to keep it with google voice. Now I can keep it with google voice.