FreePBX | Register | Issues | Wiki | Portal | Support

How-To Guide for Google Voice with Freepbx 14 & asterisk gvsip, Ubuntu 18.04

Tags: #<Tag:0x00007fdfa0f66aa8> #<Tag:0x00007fdfa0f66918> #<Tag:0x00007fdfa0f667d8>


@tmittelstaedt, I would suggest nothing is stopping that, it is a trivial solution, I would however suggest that this thread (no doubt countless hours spent) are trying to save that 50 bucks and have as many GV ‘trunks’ as they want.

There will always be tinkerers (I am definitely one) and a problem always elicits solutions, throwing money at it is not however this particular ethos and at $0.008 per minute from many VSP’s I personally don’t get it. I do however enjoy watching the work being (painfully) done.


(Andrew Nagy) #428

That’s a really extreme connection you are trying to make.

Again. When the settings are added in asterisk. We will add them into pjsip in freepbx. How is this any different from any other provider? We don’t have a voipms module. We don’t have a vitality module. We won’t have a google voice module. But this isn’t any different from anything we have or haven’t done in the past. A google voice module previously existed because the only way to connect to it was through xmpp. Now that you can connect through sip just configure it in the GUI.

(GPz1100) #429

This thread started over a month ago. I’m sure by now there are thousands of pbx’s connecting to gv in the manner explained in the OP. Does google/obi have a problem with this? Perhaps it’s too early to tell. If they did, I’m sure they could devise a way of blocking it. After all, simply review the details on the legacy site of an obi device connection and a gvsip connection. Chances are they have bigger fish to fry than spend the resources to block .01% of users trying to connect this way.

There are numerous daily posts on the obitalk forum of folks unable to make, receive or have other issues with calls since the migration to the sip platform. Maybe we’ll see some activity once those issues are mostly resolved.

I will say this, the software in the obi device is in part part of it’s failure for the typical consumer end user. The typical support response is factory reset and start over.

So this cat and mouse game continues… So far the mouse is winning :slight_smile:

(Tom Ray) #430

I’m not sure how the mouse is winning in this. As you said this thread as been up for a month and in that time users have had to recompile Naf’s fork twice due to the changes that he made. Now since most of the mice in here really don’t pay attention to Naf’s releases and are just follow these instructions verbatim, they are stuck until someone tells them what to do with those fixes.

Is the mouse “winning” when it takes them 5 hours or multiple installs to make it work to get “free” calls out of it? As someone pointed out this was a way to “save” $50 but is it really? How much usage is needed on GV to make your time worth it? Like I said, if you spend 5 hours doing this, you now need to make that 5 hours worth it. For some it might be but for others they would need to have a lot of usage to make up for their time.

Is the mouse “winning” when Google Voice has a problem (and history shows it will) and there is no one to call for support? No way to figure out what the actual issue is? Does the mouse win each time it has to stumble around on the Internet looking for why there is an issue and what is causing the issue?

Just remember something, while you mice are busy “winning” and getting your “free” Google Voice the cat is sitting back and getting fat on all you mice without having to eat you. If anyone thinks that Google Voice is actually “free” then they are naive as hell. That cat is making bank of the mice’s call data and activity hands down, always has. That’s the price of Google over all.

Perhaps the cat enjoys watching the mice dance each time they make a change to the platform and the mice scramble to figure out how to get a fix and get back to their “free” services. Yeah, I’d say the mice are winning big time.


Not sure why you are still participating in this thread, but as was previously stated, the folks here are enjoying the experimenting even at the cost of many hours of tinkering. I hope you can understand that there are different ways to use and enjoy FreePBX. If some people feel like they have “won” by figuring out some new technical challenge, that’s cool. You can keep on “winning” in whatever way you want…

(Ted Mittelstaedt) #432

Blaze is spot on. I didn’t get involved in Asterisk and FreePBX purely for the joy of experimenting. I did it for the joy of experimenting AND because I got a phone system out of it.

I spent many many hours in the beginning setting it up. And even many many more hours manually configuring an assortment of different manufacturers VoIP phone sets instead of using the GUI.

But, I got a stable, trouble free system out of it, that I’ve used every day since. And it has helped me. And one of these days an opportunity for me to sell a complete turnkey system to a customer is going to come along and Sangoma is going to get a pile of money for selling a bunch of phones. (since customers like to have all the same phonesets look all nice in the office)

The whole thing is about time investment. You invest the time - and for some (like me) you get a sense of accomplishment out of getting it working - but we all gotta eat ya know, and eventually that time investment needs to be converted into money, at some point. It’s called “monetization” Call me jaded perhaps but I am not a 20 something anymore who is willing to invest many many hours into a project that is leading to a dead end.

But this GV stuff - it seems to me that lots of time has been invested in it - but at some point it’s gotta be reliable or your never going to be onetizing it and your going to starve.

And also I will say one more thing on the “religious” aspect of this. I was involved with Open Source back in the early days and back then we did indeed force many manufacturers to grudgingly open their systems up by reverse-engineering stuff and writing drivers for hardware and so on.

But, it seems to me that far more would be accomplished to force Google to open GV to 3rd party by IGNORING THEM and letting them die on the vine. Once they realized everyone was going to some other open platform, then maybe they would realize the error of their ways - or shut down GV. But this business of reverse engineering Polycom’s stuff just to suck up to GV - that’s just confirming to Google that they made the right decision when they erected the walled garden. That’s NEVER been the OSS way in the past.


When Google was a handful of computers in a room in 1998, you might have been able to force them to do something. In 2018, even the European Union is having a hard time “forcing” Google to do anything.

Maybe we need to have separate forums for “serious” FreePBX users and one for tinkerers because it seems like the “serious” folks are really annoyed that others are tinkering around and having a little fun for their own personal use.

(Lorne Gaetz) #434

A couple years ago, my dad went salmon fishing for a few weeks in the Canadian far north. The cost of the trip, including the flights, accommodations, non-resident permit and guide costs, together with the catch limits meant that his meager collection of fish far exceeded the family’s annual grocery bill. I don’t recall a single person telling him about all the time and money he could’ve saved had he the wisdom to simply buy cans of salmon at the local Walmart.

(Andrew Nagy) #435

We don’t need to have separate forums. But everyone can have an opinion. Just because someone doesn’t agree with you doesn’t mean you need to go start your own echo chamber.

Of note no one in Sangoma is trying to stop this thread and I’d like to think we are the “serious” people.

However this thread is over 388 replies and it’s already had multiple splits. This means you’re going to have a wide variety of opinions. Sangoma’s stance is to not stop this thread but also not provide a Google Voice module because of the legal implications for our company. However, when the settings are in Asterisk then you can simply setup a trunk like normal and apply them like you would do for any other provider.

For now we are going to continue to watch this thread and participate in trying to make the resources available better, eg don’t use make samples and don’t use sudo. I’ve seen it done. @reraikes doesn’t use either of those in his implementation.


My comment about separate forums was entirely tongue-in-cheek.

(Itzik) #437

I really don’t understand why people come here and bash the idea of using Google Voice with FreePBX.

OP’s intention was, to help people that were affected by GV’s changes and are trying to “patch this issue”, and people just using GV with FreePBX as their “free lines”.

Again, I’m not a fan of using GV as a line you rely on, but there are many many tiny businesses I know which are using GV as their business line.

I know someone who connected GV + FreePBX + Google Home so he can make google searches, set reminders etc, while calling his GV. Now, saying that this is not a legit way of searching Google? I agree! But if he would’ve document it here, would you guys bash the idea because it’s not a legit way of doing things?..

Let’s just thank OP for coming here - the primary place where users are seeking help and solutions, and creating this beautiful step by step Wiki.

Thank you @xekon!

Peace :v:

(Chris162) #438

I installed the gvsip component without issue, however I’m still unregistered after hours.
gvsip1/ gvsip1 Unregistered

When I try to call, I have this error in my logs:
[2018-08-09 10:21:29] DEBUG[14753]: res_pjsip_outbound_registration.c:2577 handle_outgoing_request: Found matching outbound registration state
[2018-08-09 10:21:39] WARNING[1544]: pjproject:0 <?>: SSL 6 [SSL_ERROR_ZERO_RETURN] (Read) ret: 0 len: 32000

If anyone could help me I would really appreciate!



since your trunk seems to be Unregistered, seeing the trunk response(from googles server) would be helpful from when it tried registering. Issue a reboot, wait a few seconds, then grab that section of the log. (the gvsip trunk will attempt registering after a reboot.)

(Chris162) #440

Thanks for your message.

I’m new to this, which log would have the proper info?



Reports -> Asterisk Log Files should have the registration attempt following a reboot.

(Chris162) #442

[2018-08-09 09:42:24] WARNING[1544] pjproject: SSL 6 [SSL_ERROR_ZERO_RETURN] (Read) ret: 0 len: 32000
[2018-08-09 09:42:24] DEBUG[1544] res_pjsip/pjsip_transport_events.c: Reliable transport ‘tlsc0x7f01740057f8’ state:DISCONNECTED
[2018-08-09 09:42:24] DEBUG[1544] res_pjsip/pjsip_transport_events.c: Reliable transport ‘tlsc0x7f01740057f8’ state:SHUTDOWN
[2018-08-09 09:42:24] DEBUG[1544] res_pjsip_session.c: Source of transaction state change is TRANSPORT_ERROR
[2018-08-09 09:42:24] DEBUG[10255][C-000000be] channel.c: Channel 0x7f017803eec0 ‘PJSIP/gvsip1-00000001’ hanging up. Refs: 2
[2018-08-09 09:42:24] VERBOSE[10255][C-000000be] app_dial.c: Everyone is busy/congested at this time (1:0/1/0)
[2018-08-09 09:42:24] DEBUG[10255][C-000000be] app_dial.c: Exiting with DIALSTATUS=CONGESTION.
[2018-08-09 09:42:24] DEBUG[10255][C-000000be] app_macro.c: Executed application: Dial


your posting a lot of the WARNING/DEBUG, etc messages, but I do not see the PJSIP EVENT, you may need to post the full log, or atleast the full log surrouding the registration event, you can PM it to me if you want.

notice the sections
<— Transmitting SIP request
<— Received SIP response

Here is an example of the registration event following a reboot:

[2018-08-09 09:49:25] NOTICE[735] chan_skinny.c: Configuring skinny from skinny.conf
[2018-08-09 09:49:25] NOTICE[800] chan_sip.c: Peer '701' is now Reachable. (5ms / 2000ms)
[2018-08-09 09:49:25] DEBUG[786] res_pjsip.c: Transport override set!
[2018-08-09 09:49:28] VERBOSE[735] asterisk.c: Asterisk Ready.
[2018-08-09 09:49:36] DEBUG[786] res_pjsip_outbound_registration.c: Registration using newly created transport 0x5fabcd3c8013
[2018-08-09 09:49:36] VERBOSE[786] res_pjsip_logger.c: <--- Transmitting SIP request (884 bytes) to TLS: --->
Via: SIP/2.0/TLS;rport;branch=**********************************;alias
From: <>;tag=**********************************
To: <>
Call-ID: **********************************
CSeq: 24224 REGISTER
Authorization: Bearer token="**********************************", username="gv7775551234", realm=""
Contact: <sip:7775551234@;transport=TLS;line=*******>;obn=gv7775551234
Expires: 3600
Supported: path, outbound
Max-Forwards: 70
User-Agent: FPBX-
Content-Length: 0

[2018-08-09 09:49:36] VERBOSE[785] res_pjsip_logger.c: <--- Received SIP response (1090 bytes) from TLS: --->
SIP/2.0 200 OK
Via: SIP/2.0/TLS;rport=49799;branch=**********************************;received=;alias
Service-Route: <sip:**********************************:5060;uri-econt=**********************************;lr>
Service-Route: <sip:**********************************:5060;transport=udp;lr;uri-econt=*********>
Require: outbound
Contact: <sip:7775551234@;transport=TLS;line=*******>;obn=gv7775551234;expires=3137
To: <>;tag=********
From: <>;tag=**********************************
Call-ID: **********************************
CSeq: 24224 REGISTER
P-Associated-URI: <sip:**********************************>
Content-Length: 0

[2018-08-09 09:49:36] DEBUG[786] res_pjsip_outbound_registration.c: Stored service-route: <sip:**********************************:5060;uri-econt=**********************************;lr>r>
[2018-08-09 09:49:36] DEBUG[786] res_pjsip_outbound_registration.c: Stored service-route: <sip:**********************************:5060;transport=udp;lr;uri-econt=*********>
[2018-08-09 09:49:36] DEBUG[786] res_pjsip_outbound_registration.c: Stored associated uri: <sip:**********************************>

(United States) #445

Is anyone else having trouble with outgoing Caller ID on the pjsip (gvsip ) trunk? I have tried everything I know and all calls are successful but come in as unknown caller or no caller id… I even got a new GV voice number on another gmail account with the same end results.

Any comments welcomed.

EDIT: My problem with outbound CallerID was self inflicted with a setting on my SIPURA SPA-3000 … all is well now.

(Chris162) #446

I just verified and I still have this issue. The unregistered is probably related to this:

[2018-08-09 19:27:05] ERROR[10180] res_pjsip/config_transport.c: Transport ‘’ could not be started: Object with the same type exists (PJSIP_ETYPEEXISTS)
[2018-08-09 19:27:05] ERROR[10180] res_sorcery_config.c: Could not create an object of type ‘transport’ with id ‘’ from configuration file ‘pjsip.conf’
[2018-08-09 19:27:05] ERROR[10180] res_sorcery_config.c: Config file ‘pjsip.conf’ could not be loaded; configuration contains a duplicate object: ‘global’ of type ‘global’


Yes, that does not look good, are you double defining the TLS transport?

In Naf’s example he uses


I however use:


are you trying to salvage an existing install? or mixing and matching instructions from elsewhere?

I ask because in naf’s config file he also specifies a transport, where in my guide I do not, I make use of the one already in place by Freepbx.

this is from Nafs:


So to repeat, is this a fresh install on a fresh OS, where you are simply following my guide line by line? if not you might run into some trouble if you are trying to mix and match stuff, especially if your new to this.