GV outgoing calls not connecting again
Re: GV outgoing calls not connecting again
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.
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.
Re: GV outgoing calls not connecting again
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.
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.
Re: GV outgoing calls not connecting again
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...)
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...)
Re: GV outgoing calls not connecting again
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.
Re: GV outgoing calls not connecting again
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?
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?
Re: GV outgoing calls not connecting again
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
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
Re: GV outgoing calls not connecting again
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.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?
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).
Re: GV outgoing calls not connecting again
It didn't work for me, but perhaps I'm doing it wrong.
Google Voice (classic mode) page source:
Dial Plan:
Console:
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>',
Code: Select all
GV_PASS = 'rnr=<28 character code>' # my RNR key from the GV page source
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.
Re: GV outgoing calls not connecting again
Same result here...
Does anyone know how to place a call to a NEW number from the new GV page?
Does anyone know how to place a call to a NEW number from the new GV page?
-
- Posts: 44
- Joined: Wed Jul 14, 2010 3:28 pm
Re: GV outgoing calls not connecting again
Where in the source code would I find the rnr key?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?