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

Awesome! and well written post! Looking forward to the next FreePBX release.

Also thank you for all the work you put into this and posting it here! Sometimes the third party folk like to remain on DSLreports but we like to be included as well! I know internally weā€™ve spoken pretty highly about the work youā€™ve done and we welcome third party all open source folks like yourself!

4 Likes

If I just may add to @tm1000ā€™s excellent explanation - we ALSO update it (or, you guys can do it! Itā€™s a wiki!) if somethingā€™s broken and someone tells us about it. Saying that, someone on DSLreports said earlier that theyā€™d managed to get FreePBX working in a Slackware LXC which would be SUPER AMAZING if they would document it.

I wish I had the time to play with various distros and figure out their idiosyncrasies, but I donā€™t have the time 8-(

Right now, Iā€™m rewriting the way Certman works because of the recent changes to the way LetsEncrypt issues certificates AND because people want to use DNS to validate their ownership, so they donā€™t need to expose port 80 to the the outside world. As everyone knows, a valid certificate is required for LOTS of things now (eg, webrtc!) so making it easy for you guys to get a valid certificate onto your machine is a higher priority than getting FreePBX to work in a Slackware LXC.

(But - I really want to! In fact, if I hadnā€™t been off doing some Stargazing this weekend, I may have spun up a couple of VMā€™s to try it out! Instead, I got this poor picture of Mars:) image

Iā€™ve got a Barlow 2x and a Nikon mount ordered, so I might get a better photo next weekend. Weā€™ll see 8)

I really appreciate the detailed setup guide. However, I am not sure if I am doing something wrong; I have followed the above guide 3 times already and each time I am not getting successful results.

When I try to place a call, I get the error message ā€œQ.850;cause=34ā€ on my phone. The trunk also does not seem to be registering with google voice as it is not showing up in my phones in my GV account. I also cannot receive any incoming calls. I have tried using a different account as well and ended up with the same results.

Anyone have any ideas as to what could be causing this?

My first thought was that I was not able to get any sip trunks working, so I added my callcentric trunk and that is working fine. Itā€™s just the GVSIP side of things that I can not figure out how to get working.

It may not show up as a phone in GV account, I know mine didnt and it still functions.

That error looks vaguely familiar, but I cannot say for sure. Do you have More than one Extension? so that you can try an extension to extension call, which would not be using Google at all.

That way we can make sure the extensions are atleast working

so if you have extension 701 and 702, you can press 701# from extension 702 and hit send/dial and it should directly call the other extension.

Immediately after a reboot open your Reports -> Asterisk Log Files and scroll to the bottom and after the ā€œAsterisk Ready.ā€ message if your Google Voice trunk is successfully registering you should see 4 green lines indicating so:

[2018-07-22 15:07:45] VERBOSE[662] asterisk.c: Asterisk Ready.
[2018-07-22 15:07:45] DEBUG[720] res_pjsip_outbound_registration.c: Registration using newly created transport 0x7***********
[2018-07-22 15:07:46] DEBUG[720] res_pjsip_outbound_registration.c: Stored service-route: <sip:***************************************************************:5060;uri-econt=***************************************************************;lr>
[2018-07-22 15:07:46] DEBUG[720] res_pjsip_outbound_registration.c: Stored service-route: <sip:***************************************************************:5060;transport=udp;lr;uri-econt=*********>
[2018-07-22 15:07:46] DEBUG[720] res_pjsip_outbound_registration.c: Stored associated uri: <sip:***********************************************************[email protected]>

You may need to provide some more context to that error. I would do this, reboot your machine, open the command line and type sudo asterisk -rvvv

then Place an Outgoing call.

then copy and paste the contents displayed from sudo asterisk -rvvv into this forum, as well as the contents of the Asterisk Log during the outgoing call.

Anything that shows what looks like a hash code just comment out with **** and same goes for phone numbers or IP addresses.

Also check your log for the registration event following ā€œAsterisk Ready.ā€ message, like I posted in the previous reply

EDIT: code 850/34 means No circuit/channel available, which is kind of a generic message, so seeing the Asterisk CLI and the Log during an outgoing call attempt may give more clues as to exactly where things are breaking down. Also knowing whether or not the google voice trunk is even registering after a reboot would be the first thing to check.

Hard to believe this thread is already up to almost 3k views. I am thinking a lot of people that have been using google voice exclusively must be scrambling to get their google voice setup and working again.

I am wondering how many of the visitors have gotten up and running without issue, I am assuming a good number of people because there has not been that many posts for help.

I resolved a caller ID issue thanks to WhyADucks feedback over on dslreports, just had to change the context. It should now be:

context=from-pstn-e164-us

This is the result from rebooting and making a call.

https://pastebin.com/T73X91YD

As for this, I have the first two lines, but I donā€™t get the last 3 lines.

You can also use someplace like pastebin. I am looking at it now, the first thing that stood out to me is

<ā€” Transmitting SIP response (466 bytes) to UDP:10.1.10.2:5060 ā€”>
SIP/2.0 401 Unauthorized

that is a 401 Unauthorized, and it says your 701 endpoint is reachable, so its likely your google login that is giving the 401 Unauthorized.

EDIT: I have seen something similar to this when helping somebody else, they didnt make sure to use the same type identifier in the client_uri as they did in the username, make these 3 lines like this:

client_uri=sip:[email protected]

contact_additional_params=obn=gv7775559876

username=gv7775559876

replace with your phone number or some other random string of digits, but make all 3 match. then reboot and try again.

EDIT2: If that is not the source of your problem, the only other thing I can think of is there must be a problem with your Oauth credentials. make sure there is no space before or after the text for your oath user, secret, or token.

they should be directly up against the = sign

so for example:

refresh_token=1/***************************************************************K
oauth_clientid=7**********2-a****************************8.apps.googleusercontent.com
oauth_secret=0**********************T

so you are still getting 401 Unauthorized, did you double and tripple check the Oath credentials, look at the bottom of my last reply.

I just made the changes with the usernames and am currently waiting for the pbx to start back up. I have triple checked the auth clientid, secret, and refresh token.

fingers crossed it works for you.

Yes, That fixed it. Seems like that was one of those ID10T errors. haha.

I missed one number in the client_uri=sip line. So I guess that was throwing everything off.

Thank you very much for your help.

1 Like

No problem, happy you got your google voice FreePBX setup working.

Also update your context line to this:

context=from-pstn-e164-us

so that caller id works properly with CID Superfecta

So I followed these pretty awesome instructions and I am getting the following when I dial out:

[2018-07-22 22:33:06] ERROR[1083]: chan_pjsip.c:2225 request: Unable to create PJSIP channel - endpoint 'gvsip1' was not found

And incoming is also not working at all.

Any ideas what I screwed up on?

I am pretty sure I followed the guide to a T, but I am seeing this message in the logs:

[2018-07-23 05:38:12] WARNING[1508]: res_pjsip_outbound_registration.c:1229 handle_registration_response: Fatal response ā€˜400ā€™ received from ā€˜sip:obihai.sip.google.comā€™ on registration attempt to ā€˜sip:[email protected]ā€™, stopping outbound registration
[2018-07-23 05:38:12] WARNING[833]: pjproject:0 <?>: SSL 6 [SSL_ERROR_ZERO_RETURN] (Read) ret: 0 len: 32000

That sounds like it is directly a problem with something in the /etc/asterisk/pjsip_custom_post.conf

Can you look in your Asterisk Log directly after a reboot, look for All the ERROR messages. In Freepbx if you goto Reports -> Asterisk Log Files

then in the Filter box put ERROR then press show.

paste the results here.

I am wondering why yours shows dolfin there. that seems odd to me

on reboot when my google voice registers I get a message like this

DEBUG[707] res_pjsip_outbound_registration.c: Stored associated uri: <sip:FAHWIEFAIEJKAHSIFUAHIWUEFAWUEHAENFISUWERUSWERNERNE======@obihai.sip.google.com>