How to bypass Grand Central's requirement to press 1 to accept the call

Google's GrandCentral service offers incoming DID's in a number of places that may not be immediately available from other providers, and their service is free. There are, however, two downsides to using GrandCentral:

  • At the time of this writing, you need an invitation from another GrandCentral user. This is solely a requirement imposed by Google (prior to Google's purchase of GrandCentral, anyone could sign up for a GrandCentral account, without the necessity of an invite). Anyway, I'll spare you my rant about Google, suffice it to say I think they have forgotten their corporate motto.
  • GrandCentral lets you route the call to more than one destination, so when the call is answered they ask you to press 1, presumably to confirm that you want to accept the call at that number, and that you're not an answering machine or voicemail box. While this is a great feature in some scenarios, it's not so great if we want the call to come into FreePBX and go to an IVR, or if perhaps we want the call to go to a FreePBX voicemail box.
Fortunately, there is a workaround suggested by user "cbrain" in this thread on BroadbandReports.com. This works best if you can dedicate one DID (even if it's a local PSTN line) to calls received from GrandCentral. Or, because GrandCentral lets you make a Gizmo Project number a destination, you can get a free Gizmo Project account and then use your Gizmo Project DID as your incoming route for GrandCentral calls (the following instructions from "cbrain" assume the latter):

I just gave it a try and it works.

First go to "config edit" and add the following to -extensions_custom.conf-

[custom-gc-did]
exten => 1,1,answer
exten => 1,n,wait(2)
exten => 1,n,SendDTMF(1)
exten => 1,n,Goto(ext-group,2,1) ;use a setup ring group or extension

Then go to FreePBX - setup - Inbound Routes - and set up or edit your Gizmo Project DID. In the - set destination - section set - Custom App: - to - custom-gc-did,1,1 -. [NOTE: In a comment below, Cliff said: In recent FreePBX versions you can no longer directly enter a custom app into Inbound Routes. After you set up "extensions_custom.conf" go to the "Tools" tab - "Custom Destinations" and add "custom-gc-did,1,1" to "Custom Destination" - give it a name FreePBX will use, save, reload, and you can then choose it from "Inbound Routes."]

Then setup your ring group or extension.

If you need to have access to incoming from GrandCentral from your cell or other, change your inbound route from FreePBX directly to the same ring group or extension and toggle between press 1 and direct ring.

(End of quote from posted message)

In case it's not obvious, the key to the above instructions is that you have Asterisk answer the line, wait two seconds, and then send a DTMF "1". Then you send the call to wherever you really want it to go, whether that is a specific IVR menu, a particular extension or ring group, a voicemail box, or wherever. But, you only want to do this for calls coming from GrandCentral (e.g. over your Gizmo Project DID), so that your regular callers don't get blasted with a DTMF "1" every time they call you.

Note that once you have sent the "1", the call will have been considered as answered by the caller's telephone company. If you transfer to an extension that gives a ringing tone, and the caller abandons the call, they may wonder why they have been charged for an "uncompleted" call (from their perspective). So, you may want to play a short announcement so that the caller knows that the call has been answered and is being transferred. Obviously, this is not a concern if you send the call directly to an IVR menu, or a voicemail box.

Thanks to "cbrain" for the instructions. By the way, I can't comment on how well the above instructions work, because nobody's ever sent me a GrandCentral invite!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

What is your email

vbrief1's picture

I'll send you an invite.


Works Great

EasyVoxBox's picture

I have set this up and it has been working great so far.


bypass Grand Central's requirement to press 1 to accept the call

karelsmits's picture

I'm setting up grand central and I have it recognizing that the 1 key is pressed and it passes along the call to my system.

Except, that when I press any number at the IVR, it is ignored. I tried transfering the call directly so I could try pressing the buttons and see if I could hear them myself, but no go. I'm not using gizmo, I'm having GC transfer directly to my PSTN line.

I also noticed that if you press any number keys about 5 times GC will disconnect the call. Are these issues new? Can anyone give me some advice?

Besides all that I tried to call into my pbx direct with my phone and heard the 1 (dtmf), then got transferred to my IVR and even then I could not choose any options in the IVR. So, it is not Grandcentral that disables any other DTMF tone from my phone, but the function sendDtmf().

Please let me know.
Thanks


GC blocks the DTMF

EasyVoxBox's picture

I have only been able to use the GC numbers for direct dial. There was a posting on the Gizmo forum that also talked about this issue. The caller can hear the tones, but GC block them from getting to the receiving end. Any IVR selections will not work.


How do you forward to IVR?

duardon's picture

You stated that you could put in an extension or group number, but how do you get it to forward directly to the system IVR?


You don't...

wiseoldowl's picture

Unless you want your callers in IVR hell, you never send a Grand Central call to an IVR. Reports are that Grand Central has chosen to block incoming touch tones. If that were not the case, you could send the call to whatever context is associated with your IVR (you might need to carefully examine extensions_additional.conf to find it), or you could take the easy approach and send it to 7777, which is the internal test number that takes you to the IVR. But I wouldn't do that unless you have really excellent voice recognition installed, and if you find really great voice recognition that works with FreePBX, please let us know where you got it and how you installed it!

this fails to work after update

dziny's picture

Anyone has the same experience as I do? After upgrading my asterisk to 1.4.19 I'm getting a one way audio using this grandcentral trick. The caller does not hear the callee, the other way it works. Downgrading back to 1.4.17 fixes the issue.... This sound like asterisk issue of course, not freepbx.


tracing a grand central number?

faechanix's picture

Hi,

Is there any way to trace the number of a cell phone that is hooked up to a certain grand central number? example - you have the grand central number and can call IT but not the cell number? Very curious as to if this is possible. Reply ASAP


Custom App is not available as destination

thirtysix's picture

Latest version of FreePBX doesn't include Custom App as a destination any longer. Getting Grand Central account working using this suggestion:

First go to "config edit" and add the following to -extensions_custom.conf-

[custom-gc-did]
exten => 1,1,answer
exten => 1,n,wait(2)
exten => 1,n,SendDTMF(1)
exten => 1,n,Goto(ext-group,2,1) ;use a setup ring group or extension

Then go to FreePBX - setup - Inbound Routes - and set up or edit your Gizmo Project DID. In the - set destination - section set - Custom App: - to - custom-gc-did,1,1 -.

is no longer viable.
Anyone have a workaround they would like to share?


You don't say what version

fskrotzki's picture

You don't say what version you are using. Latest really does not help as some people will not consider a beta to be the latest. If you are using 2.5 note that when upgrading from 2.4 to 2.5 Custom-App is implemented slightly different and will be "uninstalled" on upgrade so you'll need to re-install it.

I just found this out when I upgraded my test machine 10 minutes ago.


Got it

thirtysix's picture

The Custom App: has to be created via Tools -> Custom Destinations. Once this has been completed and reload done, then the Custom App becomes available as a destination.

btw. using v2.4.1.2


In recent FreePBX versions

Cliff's picture

In recent FreePBX versions you can no longer directly enter a custom app into Inbound Routes.

After you set up "extensions_custom.conf" go to the "Tools" tab - "Custom Destinations" and add "custom-gc-did,1,1" to "Custom Destination" - give it a name FreePBX will use, save, reload, and you can then choose it from "Inbound Routes."


Grand Central to IVR

arun's picture

Has anybody succeeded in getting this to work? Here is the snapshot of the log once the call gets transfered to the custom destination. Regardless what extension I dial once I get to the IVR, it does not work

-- Executing [17472072365@from-trunk:1] Set("SIP/17472072365-0959dde0", "__FROM_DID=17472072365") in new stack
-- Executing [17472072365@from-trunk:2] Gosub("SIP/17472072365-0959dde0", "app-blacklist-check|s|1") in new stack
-- Executing [s@app-blacklist-check:1] LookupBlacklist("SIP/17472072365-0959dde0", "") in new stack
-- Executing [s@app-blacklist-check:2] GotoIf("SIP/17472072365-0959dde0", "0?blacklisted") in new stack
-- Executing [s@app-blacklist-check:3] Return("SIP/17472072365-0959dde0", "") in new stack
-- Executing [17472072365@from-trunk:3] ExecIf("SIP/17472072365-0959dde0", "1 |Set|CALLERID(name)=9726667645") in new stack
-- Executing [17472072365@from-trunk:4] Set("SIP/17472072365-0959dde0", "__CALLINGPRES_SV=allowed_not_screened") in new stack
-- Executing [17472072365@from-trunk:5] SetCallerPres("SIP/17472072365-0959dde0", "allowed_not_screened") in new stack
-- Executing [17472072365@from-trunk:6] Goto("SIP/17472072365-0959dde0", "custom-17472072365|1|1") in new stack
-- Goto (custom-17472072365,1,1)
-- Executing [1@custom-17472072365:1] Answer("SIP/17472072365-0959dde0", "") in new stack
-- Executing [1@custom-17472072365:2] Wait("SIP/17472072365-0959dde0", "2") in new stack
-- Executing [1@custom-17472072365:3] SendDTMF("SIP/17472072365-0959dde0", "1") in new stack
-- Executing [1@custom-17472072365:4] Goto("SIP/17472072365-0959dde0", "ivr-2|s|1") in new stack
-- Goto (ivr-2,s,1)
-- Executing [s@ivr-2:1] Set("SIP/17472072365-0959dde0", "MSG=enter-ext-of-person") in new stack
-- Executing [s@ivr-2:2] Set("SIP/17472072365-0959dde0", "LOOPCOUNT=0") in new stack
-- Executing [s@ivr-2:3] Set("SIP/17472072365-0959dde0", "__DIR-CONTEXT=") in new stack
-- Executing [s@ivr-2:4] Set("SIP/17472072365-0959dde0", "_IVR_CONTEXT_ivr-2=") in new stack
-- Executing [s@ivr-2:5] Set("SIP/17472072365-0959dde0", "_IVR_CONTEXT=ivr-2") in new stack
-- Executing [s@ivr-2:6] GotoIf("SIP/17472072365-0959dde0", "1?begin") in new stack
-- Goto (ivr-2,s,9)
-- Executing [s@ivr-2:9] Set("SIP/17472072365-0959dde0", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3
-- Executing [s@ivr-2:10] Set("SIP/17472072365-0959dde0", "TIMEOUT(response)=10") in new stack
-- Response timeout set to 10
-- Executing [s@ivr-2:11] Set("SIP/17472072365-0959dde0", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-2:12] ExecIf("SIP/17472072365-0959dde0", "1|Background|enter-ext-of-person") in new stack
-- Playing 'enter-ext-of-person' (language 'en')
-- Executing [s@ivr-2:13] WaitExten("SIP/17472072365-0959dde0", "|") in new stack
-- Timeout on SIP/17472072365-0959dde0, going to 't'
-- Executing [t@ivr-2:1] Set("SIP/17472072365-0959dde0", "MSG=to-extension") in new stack
-- Executing [t@ivr-2:2] Goto("SIP/17472072365-0959dde0", "loop|1") in new stack
-- Goto (ivr-2,loop,1)
-- Executing [loop@ivr-2:1] Set("SIP/17472072365-0959dde0", "LOOPCOUNT=1") in new stack
-- Executing [loop@ivr-2:2] GotoIf("SIP/17472072365-0959dde0", "0?hang|1") in new stack
-- Executing [loop@ivr-2:3] Goto("SIP/17472072365-0959dde0", "ivr-2|s|begin") in new stack
-- Goto (ivr-2,s,9)
-- Executing [s@ivr-2:9] Set("SIP/17472072365-0959dde0", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3
-- Executing [s@ivr-2:10] Set("SIP/17472072365-0959dde0", "TIMEOUT(response)=10") in new stack
-- Response timeout set to 10
-- Executing [s@ivr-2:11] Set("SIP/17472072365-0959dde0", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-2:12] ExecIf("SIP/17472072365-0959dde0", "1|Background|to-extension") in new stack
-- Playing 'to-extension' (language 'en')
-- Executing [s@ivr-2:13] WaitExten("SIP/17472072365-0959dde0", "|") in new stack
== Spawn extension (ivr-2, s, 13) exited non-zero on 'SIP/17472072365-0959dde0'
-- Executing [h@ivr-2:1] Hangup("SIP/17472072365-0959dde0", "") in new stack
== Spawn extension (ivr-2, h, 1) exited non-zero on 'SIP/17472072365-0959dde0'