Getting Started with Google Voice GVSIP


Obtaining Google Voice Credentials for GVSIP

Before you can add a GVSIP trunk to your server, you’ll need at least one dedicated Google Voice account to use the new GVSIP implementation with Asterisk. If you’re new to all of this, our Getting Started with Google Voice tutorial will walk you through setting up an account and obtaining your OAuth 2 refresh token for GVSIP. You’ll need the refresh token and your Google Voice phone number to add a GVSIP trunk to your server.

Adding a GVSIP Trunk with Incredible PBX

For native GVSIP platforms and for those that have run the GVSIP-NAF installer to add GVSIP functionality to an existing platform, the scripts to manage GVSIP trunks are stored in /root/gvsip-naf.

Running /root/gvsip-naf/install-gvsip will let you create an unlimited number of GVSIP trunks by simply entering a refresh_token and 10-digit phone number for your existing Google Voice trunk. For each trunk, the installer will create the necessary code to support a PJSIP trunk and a GVSIPn Custom Trunk to use for outbound routing. To add additional trunks, simply run the installer again. Adding a new trunk takes about 10 seconds.

If you ever need to delete a GVSIP trunk that you previously have added, we’ve included a script which will perform the task for you. Just run del-trunk and specify the trunk to delete.

Should you ever want to refresh the patched version of Asterisk, copy pjsip_custom.conf from /etc/asterisk to a safe place, delete the contents of pjsip_custom.conf, rerun the installer, and then copy your version of pjsip_custom.conf back to /etc/asterisk and restart Asterisk: amportal restart. That way you won’t lose your previously configured trunks. This is not yet available on the Raspberry Pi because of space constraints.

Configuring an Inbound Route for GVSIP Trunks

By default, incoming calls to GVSIP trunks on Incredible PBX servers will be sent to the Default Inbound Route configured on your PBX. As initially installed on Enchilada platforms, that Default route points to Allison’s Demo IVR. This can be changed easily in the FreePBX GUI by modifying the Destination for the Default inbound route in Connectivity:Inbound Routes.

On other server platforms, you may not have a Default inbound route configured so you will need to create an inbound route to handle calls from each GVSIP trunk. Regardless of your server platform, we strongly recommend adding an Inbound Route for every GVSIP trunk using the 10-digit GVSIP phone number as the DID for the inbound route. Here’s an example of an Inbound Route created in Connectivity:Inbound Routes:Add Inbound Route:

If you have installed the Incredible Fax add-on, you can enable Fax Detection under the Fax tab. And, if you’d like CallerID Name lookups using CallerID Superfecta, you can enable it under the Other tab before saving your setup and reloading your dialplan.

Configuring an Outbound Route for GVSIP Trunks

By default, you cannot place outbound calls using your new GVSIP trunks. For each trunk, you first will need to create an Outbound Route specifying a Dial Pattern to use with each GVSIP trunk in Connectivity:Outbound Routes:Add Outbound Route. If you only have a single Google Voice trunk on your PBX and no other trunks, then you would probably want to specify that outbound calls be routed out the GVSIP1 trunk with a Dial Pattern of NXXNXXXXXX with 1 as the Prepend. This tells FreePBX to dial 18005551212 using the GVSIP1 trunk when a PBX user dials 8005551212. Google only accepts calls that include a country code (1=US/CAN).

HINT: If you ever forget which GVSIP trunks are associated with which phone numbers, simply run /root/gvsip-naf/del-trunk for a list of your trunks. Just press ENTER to exit without deleting any of your trunks.

There are a million ways to design outbound calling schemes on PBXs with multiple trunks. One of the simplest ways is to use no dial prefix for the primary trunk and then use dialing prefixes for the remaining trunks. As part of the install, the dialing prefixes of *41 through *49 were reserved for GVSIP trunks if you would like to use them. That’s totally up to you. Here’s what an Outbound Route would look like using this scheme for the GVSIP2 trunk:

Another outbound calling scheme would be to assign specific DIDs to individual extensions on your PBX. Here you could use NXXNXXXXXX with the 1 Prepend as the Dial Pattern with every Outbound Route and change the Extension Number in the CallerID field of the Dial Pattern. With this setup, you’d need a separate Outbound Route for each group of extensions using a specific trunk on your PBX. Additional dial patterns can be added for each extension designated for a particular trunk. A lower priority Outbound Route then could be added without a CallerID entry to cover extensions that weren’t restricted or specified.

HINT: Keep in mind that Outbound Routes are processed by FreePBX in top-down order. The first route with a matching dial pattern is the trunk that is selected to place the outbound call. No other outbound routes are ever used even if the call fails or the trunk is unavailable. To avoid failed calls, consider adding additional trunks to the Trunk Sequence in every outbound route. In summary, if you have multiple routes with the exact same dial pattern, then the match nearest to the top of the Outbound Route list wins. You can rearrange the order of the outbound routes by dragging them into any sequence desired.

Print Friendly, PDF & Email

Be Sociable, Share!