GV outgoing calls not connecting again

Support zone
jmyshral
Posts: 8
Joined: Thu Jul 15, 2010 10:02 pm

Re: GV outgoing calls not connecting again

Post by jmyshral » Sun Feb 12, 2017 7:57 pm

I am also experiencing issues with outgoing Google Voice calls. According to the console log, it fails at this stage:

DialPlan 19:52:53:302 sip1(7440): Google Voice pre-login page loaded successfully.
DialPlan 19:52:53:318 sip1(7440): GALX key xxx successfully retrieved.
DialPlan 19:52:53:318 sip1(7440): gxf key xxx successfully retrieved.
DialPlan 19:52:55:362 sip1(7440): Google Voice home page loaded successfully.
DialPlan 19:52:55:502 sip1(7440): Could not find _rnr_se key on your Google Voice account page, callback cannot proceed.
DialPlan 19:52:55:502 sip1(7440): Exception on GoogleVoiceCall. Could not find _rnr_se key on your Google Voice account page, callback cannot proceed.

Aaron
Site Admin
Posts: 4652
Joined: Thu Jul 12, 2007 12:13 am

Re: GV outgoing calls not connecting again

Post by Aaron » Sun Feb 12, 2017 10:38 pm

I don't have a fix for this. If anyone comes across one of those command line scripts that can place GV calls AND it's still working please let me know and I'll see if it can be copied.

The GV call mechanism used by sipsorcery (and the command line tools doing the same thing) was always very fragile and it's amazing it has worked for as many years as it has.

The Simon GW does not use the same HTTP request mechanism and instead sets up an XMPP call with the GV server. This approach is not viable for sipsorcery because it does not proxy/relay the call media. When you place a call with the Simon gateway all your call media goes through their servers and then onto the GV servers before reaching the PSTN.

carter
Posts: 14
Joined: Fri Feb 10, 2012 5:26 am

Re: GV outgoing calls not connecting again

Post by carter » Mon Feb 13, 2017 10:14 pm

Hi Aaron, thanks for checking this. Since you are referring to command line scripts, I assume that SS uses similar scripts like pygooglevoice to manage GV calls? It seems that they are having similar problems too (couldn't log in or make GV calls via command line)! please see https://github.com/pettazz/pygooglevoice/issues/27 (scroll down for more recent posts).
I am not offering any immediate solution here (I didn't write any of the pygooglevoice codes) but just some directions which I think should be relevant, e.g. the name change of "_rnr_se" is probably the key change here (there are of course many other changes from Google but those might not be so critical to SS compared to pygooglevoice...)

Aaron
Site Admin
Posts: 4652
Joined: Thu Jul 12, 2007 12:13 am

Re: GV outgoing calls not connecting again

Post by Aaron » Tue Feb 14, 2017 8:59 am

The pygooglevoice developers haven't found the fix yet (it's not that much fun repeatedly reverse engineering Google's changes for any developer). I've put a watch on the pygooglevoice git repository so if they do discover a fix I'll endeavor to roll it into the sipsorcery code.

dov
Posts: 11
Joined: Tue Feb 14, 2017 5:18 pm

Re: GV outgoing calls not connecting again

Post by dov » Wed Feb 15, 2017 5:53 pm

So I've gone through the pygooglevoice code. Although the front end of Google voice was changed, the url the code uses is still the same and the _rnr_se key is still in the same place. In fact, when I checked the page source across multiple devices, the _rnr_se key remained the same.

So my question is, for those of us that want to pull the _rnr_se key manually, can we have a place to enter it as a constant so it doesn't have to pull it from the page and fail?

rswenton
Posts: 27
Joined: Fri Jan 18, 2013 5:51 pm

Re: GV outgoing calls not connecting again

Post by rswenton » Thu Feb 16, 2017 7:36 pm

Hi Aaron,

I noticed there is an option to use the older Google Voice UI. For example,

new: https://voice.google.com/u/0/messages
legacy: https://www.google.com/voice/b/0#inbox

I wonder if it's something as simple as you changing a URL in your code to use the legacy UI until they decommission it.

-Rick

Aaron
Site Admin
Posts: 4652
Joined: Thu Jul 12, 2007 12:13 am

Re: GV outgoing calls not connecting again

Post by Aaron » Mon Feb 20, 2017 9:44 am

dov wrote:So my question is, for those of us that want to pull the _rnr_se key manually, can we have a place to enter it as a constant so it doesn't have to pull it from the page and fail?
I've put a little hack in place so you can try this approach out although of course I've no idea if it will work given there's no requisite login and if it does work how long it will last without needing the rnr_key to be updated.

You need to change the password field so that it's in the format rnr=your_rnr_key the thing the code checks for is the "rnr=" at the start of the password field. If it finds it then no attmept will be made to login and instead the GV call will be directly placed with teh provided rnr_key.

It seemed to work when I tested with it but I can't be sure since my own GV account has not worked since the last bunch of changes when I suspect they added some more geographic checking (I'm not in the US).

bjmsam
Posts: 11
Joined: Sun Aug 07, 2011 9:05 pm

Re: GV outgoing calls not connecting again

Post by bjmsam » Mon Feb 20, 2017 11:29 am

It didn't work for me, but perhaps I'm doing it wrong.

Google Voice (classic mode) page source:

Code: Select all

<form action="#" id="gc-search-form" method="post" onsubmit="return false;"><input name="_rnr_se" type="hidden" value="<28 character code>"/>

Code: Select all

'_rnr_se': '<28 character code>',
Dial Plan:

Code: Select all

GV_PASS   = 'rnr=<28 character code>'          # my RNR key from the GV page source
Console:

Code: Select all

Monitor 11:19:05:675: basetype=console, ipaddress=*, user=<my username>, event=*, request=*, serveripaddress=*, server=*, regex=.*.
DialPlan 11:19:13:100 sip1(6880): New call from udp:<my IPA>:5060 successfully authenticated by digest.
DialPlan 11:19:13:132 sip1(6880): Using dialplan default for Out call to sip:<my number>@sip.sipsorcery.com.
NewCall 11:19:13:147 sip1(6880): Executing script dial plan for call to <destination phone number>.
DialPlan 11:19:13:194 sip1(6880): ** Call from "<my username>@sipsorcery.com" <sip:<my username>@sip.sipsorcery.com>;tag=<18 character code> to <destination phone number> **
DialPlan 11:19:13:194 sip1(6880): Calling <destination phone number> via Google Voice
DialPlan 11:19:13:194 sip1(6880): SDP on GoogleVoiceCall call had public IP not mangled, RTP socket <my IPA>:16424.
DialPlan 11:19:13:194 sip1(6880): UAS call progressing with Ringing.
DialPlan 11:19:13:194 sip1(6880): Call key <28 character code> successfully retrieved for <my username>@gmail.com, proceeding with callback.
DialPlan 11:19:13:194 sip1(760): SIP Proxy setting application server for next call to user <my username> as udp:67.222.131.147:5070.
DialPlan 11:19:13:631 sip1(6880): Google Voice Call to <destination phone number> initiated, callback #+<my phone number>, phone type 1, timeout 30s.
DialPlan 11:19:43:646 sip1(6880): Google Voice Call timed out waiting for callback.
DialPlan 11:19:44:082 sip1(6880): Google Voice Call to <destination phone number> was successfully cancelled.
DialPlan 11:19:44:082 sip1(6880): Dialplan cleanup for <my username>.
DialPlan 11:19:44:504 sip1(6880): Dial plan execution completed without answering and with no last failure status.
DialPlan 11:19:44:504 sip1(6880): Call failed with a failure status of TemporarilyUnavailable and .
DialPlan 11:19:44:504 sip1(6880): UAS call failed with a response status of 480.

mackeev
Posts: 34
Joined: Tue May 18, 2010 5:14 am

Re: GV outgoing calls not connecting again

Post by mackeev » Mon Feb 20, 2017 11:48 am

Same result here...

Does anyone know how to place a call to a NEW number from the new GV page?

mobilebone
Posts: 44
Joined: Wed Jul 14, 2010 3:28 pm

Re: GV outgoing calls not connecting again

Post by mobilebone » Mon Feb 20, 2017 10:12 pm

dov wrote:So I've gone through the pygooglevoice code. Although the front end of Google voice was changed, the url the code uses is still the same and the _rnr_se key is still in the same place. In fact, when I checked the page source across multiple devices, the _rnr_se key remained the same.

So my question is, for those of us that want to pull the _rnr_se key manually, can we have a place to enter it as a constant so it doesn't have to pull it from the page and fail?
Where in the source code would I find the rnr key?

Post Reply