An answer is in this thread on BroadbandReports.com. Pay attention to messages posted on July 1 in the afternoon. The basic technique seems to be, call your own Google Voice number and if there are any voicemails there listen to them to clear them out. Then when you call your own GV number, it should offer option “2” to complete a call. If you then press “2” and the 10-digit number the call should go through, with 2-way audio. If you want to automate the process, find the custom trunk created by the Google Voice module, and find the Custom Dial String, it will look something like
Motif/gusernamegmailcom/[email protected]
(Note the bolded part)
Create a new custom trunk, and (partially quoting from a post in that thread):
Create a NEW Custom Trunk. Call it whatever you like. In the Dial Number Manipulation Rules, add the pattern 1|NXXNXXXXXX. If you allow seven digit dialing of local calls, you may also add a rule like AAA+NXXXXXX but replace AAA with your local area code. This is to make sure only ten digit numbers are sent to Google Voice.
In the Custom Dial String field, you can use this:
Motif/gusernamegmailcom/1GGGGGGGGGG@voice.google.com,300,D(wwwwww2w${EXTEN}#www)
The string gusernamegmailcom should be substituted with the actual string from the line [in the original Google Voice trunk], and 1GGGGGGGGGG is your Google Voice number, but with a leading “1”.
The post also explains how to play on hold music while you wait the 10 seconds or so for the call to go through, using a modified dial string:
Motif/gusernamegmailcom/1GGGGGGGGGG@voice.google.com,300,D(wwwwww2w${EXTEN}#www)m(default)
A different post shows how you can play ringing tone during that period, though I would not suggest doing that because your users will think the called phone has been ringing for quite a bit longer than it actually has. If you want to get clever, make a new on-hold music context and put one file in there that makes some kind of “comfort noise” so your callers don’t think the system has died on them, and specify that context rather than default.
Don’t forget to change your outbound route(s) to use your new custom trunk. Alternately you could modify the existing custom trunk rather than creating a new one, but if you do that I’d suggest at least saving the original custom dial string someplace in case you need it in the future, and also don’t forget to add the Dial Number Manipulation Rule(s).