Accepting incoming grand central calls with asterisk

Grand Central is a free service to receive and forward calls you receive on a US phone number. The only good reason to use it is a free US number in more or less every area in US. US cellphone companies have often the deal to do free calls within your area code, all other calls are charged (depending on the calling plan).

ipkall offers you a free Washington State number. Unlike Grand Central, incoming ipkall calls can be perfectly forwarded to your Asterisk PBX (if you won't use gizmo to forward your calls to your PBX.

Oh, I checked forwarding over gizmo, but I'm sure you don't want to use it. They don't tell asterisk the caller number. And you can only use "exten => s,priroty,command". If I want to know who is calling me I have to login on grandcentral.com, which is not acceptable for me. With two gizmo accounts on your pbx you're lost. The documentation about integration of gizmo in asterisk looks kinda outdated. Other have the same problems, too.

GrandCentral has some bad behaviours. You can't turn off or change the voice mail, which picks up the call after around 15 time ringing the phone.
Another big lack is that you need to accept every call by pressing "1". If you can't accept the call by pressing "1" your asterisk PBX could screw it up and you won't receive the call. The person calling will still on the line. Using dtmfmode=rfc2833 won't work somehow (don't ask me why). You need to set dtmfmode to inband, which means that the dtmf tone is generated by the phone receiving the call. After using

dtmfmode=inband
in your sip.conf context for ipkall and accepting calls won't be a problem anymore.

Another more stressfull workaround would be using a computer generated DMTF tone like you can create with f.e. dialabc. Just a note to have this page documented.

Because always pressing "1" get's anoying and I can't handle call fallback well (without obtaining more ipkall numbers and using more as one dial plan) there's another way to handle calls with Asterisk. With this solution you can't use the GrandCentral voice mail anymore. The bad effect is that the caller still have to pay (as long as there's no free dial plan to your US number/area code) even if there's a free ring signal (generated by your Asterisk PBX):

[incomingipkall]
exten => h,1,Hangup
exten => ipkallnr,1,answer
exten => ipkallnr,2,wait(2)
exten => ipkallnr,3,SendDTMF(1)
exten => ipkallnr,4,dial(SIP/phone1&SIP/phone2,${ANSWER_TIMEOUT},tr)
exten => ipkallnr,5,NoOp(incomingipkall: noone picked up, forward the call)
exten => ipkallnr,6,Dial(SIP/${FORWARDNR},60,tr) 
exten => ipkallnr,107,Hangup
Once in a while, gladefully close to never, it happens that Asterisk don't pick up the call and the grand central mailbox answers. This will result in an email if the person left a message. It doesn't happen often. I didn't traced it yet. I guess its a problem between grand central and ipkall or between ipkall and my PBX. It could also be, that SendDTMF transfers an unclear "1" sound, based on network connectivity to ipkall. But I haven't seen any hints for this yet.


uhrig.eu.org/pbx/
$Id: index.html,v 1.10 2008-03-28 14:30:41 volker Exp $