Not that anyone probably cares what I think, but anyone who regularly reads this blog (or any of the other VoIP-related that cover F—PBX and Asterisk) may have noticed that Asterisk’s support for Google Voice has become less and less reliable over time, particularly for incoming calls. You have to do all sorts of “tricks” to make it work, and these usually involve adding delays that don’t always fix the problem, inconvenience your callers, and possibly cause more hangups as people get tired of waiting for you to answer the phone.
Therefore, I suggest you stop using Asterisk’s Google Voice support completely. Assuming that you feel you must keep using Asterisk, then I suggest trying one or more of the following:
- Use an Obihai VoiP device as a gateway between Asterisk and Google Voice. This works best if you only have one Google Voice account (unless you have more than one Obihai device).
- Install a minimal FreeSWITCH installation on your Asterisk server, and use FreeSWITCH as a bridge between Asterisk and Google Voice. FreeSWITCH has far superior Google Voice support — the difference is like night and day. Calls complete much faster in both directions! This also lets you use multiple Google Voice accounts (PBX in a Flash and other F—PBX users, also see my January 28, 2012 comment in this thread).
- Use Bill Simon’s Google Voice-SIP gateway to handle your Google Voice calls. Some people may not want to rely on an external service for this, while others may very much appreciate having the option. I mention it for those in the latter group.
- Use SipBri, IF you can actually create an account (it appears they don’t always allow new accounts to be created). See How to set up a SipBri account to make and receive Google Voice calls from an ATA or SIP device (or to use as a F***PBX trunk) and Link: SipBri: How to make Google Voice calls from any ATA. Again, this is just another option you could explore.
- You could also try setting up a gateway using YATE instead of FreeSWITCH, similar to #2. YATE is what powers Bill Simon’s gateway (mentioned in #3)
, but so far I’ve not found anyone that’s published instructions for “doing it yourself”(see comments by Bill and pianoquintet under this article).
At this point, any of those would likely produce better results than using Asterisk’s Google Voice support. Maybe , some day, the Asterisk folks will wake up and try to figure out what all those other folks are doing that they aren’t, but for now, fixing Google Voice support seems to be a rather low priority for the folks at Digium. Which means they probably never should have rolled it out in the first place, because once you add a feature people sort of expect you to keep it up to date, and not let it languish into a state of “barely working, if it works at all”.
EVERYTHING in this article is my personal opinion. Nothing here should be taken as a statement of fact.
EDIT: Ward Mundy reports that he just may have found a workaround for the incoming calls issue — see this thread in the PBX in a Flash forum.
Related articles
- Updated two Obihai/VoIP-related posts today (michigantelephone.wordpress.com)

Will said
Wow, great suggestion! With the wife working at home, we don’t want to give out the primary number and I have many google voice numbers so I’ll look into setting up one of those numbers for her to make and use as incoming/outgoing.
Bill said
Re: YATE…
The instructions for connecting Yate to Google Voice are all here (http://yate.null.ro/pmwiki/index.php?n=Main.ConnectingToGoogleVoice) and there’s no magic behind it. A step-by-step howto for adding it to your Asterisk box for GV connectivity might be in order. I have exchanged e-mail with a fellow who added Yate to his Asterisk PogoPlug for this very purpose. Cool project.
Will said
I came across this: http://www.opentut.com/
I know it applies to 1.8.7.x but do you think it would work with 1.8.8.x?
Have you tried it?
michigantelephone said
Thanks for the link, Bill. Maybe it will help someone create an Asterisk <–> Google Voice bridge using YATE.
michigantelephone said
Will, that’s basically a variation of the method we’ve been using, and it SUCKS for incoming calls. Did you happen to notice this line:
exten => s,n,Wait(8)
That’s a big old red flag that things aren’t working as they should. You should never need to make callers wait an extra 8 seconds to get an answer. Some WON’T wait, and even for those who will, it’s just plain rude to waste their time like that. But the worst part is, even doing that doesn’t guarantee that a call will get through. Sometimes it will, and sometimes your phone will ring and when you pick it up there will be no one there, while the caller will still be hearing a ringing tone. If you have the presence of mind to do so, you might still be able to get the call if you quickly press “1″, but obviously it’s NOT working the way it should. With any of the methods I’ve mentioned, to the best of my knowledge you do not have to put up with that kind of nonsense (and I speak from personal experience in the case of #1 and #2).
nsdemon said
which one of these methods is the best to do>? also which one takes less time to setup and get going?
thanks in advance.
michigantelephone said
nsdemon, if you only have one Google Voice account then I would say using an Obihai device as a gateway would provide the best results, and it is pretty easy to configure. However, if you don’t wish to buy an Obihai device or have multiple Google Voice accounts then I’d give Bill Simon’s gateway a try, particularly if you’re looking for something as easy as possible to set up. FreeSWITCH would be best if you have multiple accounts (or don’t want to buy an Obihai device) and you don’t want to rely on someone else’s gateway. YATE might work better than FreeSWITCH but it would be the hardest to set up, because there are no published instructions for setting it up for this application that completely describe what would need to be done (the only instructions I have found that address the subject at all are these, and I’m afraid that just isn’t quite enough set up a working gateway between Asterisk and Google Voice using YATE).
michigantelephone said
Also found these instructions for using YATE:
Yate Server: Free Google Voice Calling
pianoquintet said
I have used the instructions at http://www.tuxguides.com/yate-server-free-google-voice-calling/ to create a bridge between Asterisk and GV through Yate and it seems to be working on 100% of the calls. The following were the adjustments I made:
1. I ignored regfile.conf, as this is not relevant.
2. I replaced the line for handling incoming calls with the following under [default] in regexroute.conf :
${in_line}GoogleVoice=sip/sip:[PUT THE DID ASTERISK WILL EXPECT HERE]@127.0.0.1;jingle_version=0;dtmfmethod=rfc2833;jingle_flags=noping
3 I put the following in ysipchan.conf (not sure if any of these were relevant, as there is no documentation, but it worked):
[general]
tcp_out_rtp_localip=127.0.0.1
[codecs]
mulaw=enable
[listener general]
enable=yes
default=yes
udp_force_bind=no
addr=127.0.0.1
port=5050
rtp_localip=127.0.0.1
[Yatesip]
type=udp
enable=yes
udp_force_bind=no
addr=127.0.0.1
port=5050
rtp_localip=127.0.0.1
4. I added a pipe before “1″ in the line below in regexroute.conf under [call.answered]
${peerid}^jingle/=;postanm_dtmf=true;postanm_dtmf_text=|1;postanm_dtmf_delay=2
On asterisk’s side, I followed the same instructions for integrating with Freeswitch found here http://www.personal.psu.edu/wcs131/blogs/psuvoip/2010/10/using_freeswitch_to_add_google.html
candrewsintegralblue said
Here’s the bug tracking the regression in Asterisk between 10 and 10.1 where Google Voice audio calling (in both directions) stopped working completely: https://issues.asterisk.org/jira/browse/ASTERISK-19374
nsdemon said
I am only want to setup one google voice account now, but may want to add more later.
I looked over the FreeSwitch how to and i think i can do that if i had to.
would it be goo if i want to add to it later.
would the Obihai device support more then 1 account?
i dont mind buying a good piece of hardware and this seems like a good buy.