System information
send the DTMF prior to ringing your device by adding the two boldface lines shown
here prior to performing the Dial():
[gtalk_incoming]
exten => s,1,Verbose(2,Incoming call from ${CALLERID(all)})
same => n,Answer()
same => n,Wait(2)
same => n,SendDTMF(2)
same => n,Dial(SIP/0000FFFF0001,30)
same => n,Hangup()
Here, we’re using the Wait() and SendDTMF() applications to first wait 2 seconds after
answering the call (which is the time when the call screening message will start) and
then accept the call automatically (by sending DTMF tones for the number 2). After
that, we then send the call off to our device.
Outgoing calls via Google Talk
To place a call to a Google Talk user, configure your dialplan like so:
[LocalSets]
exten => 123,1,Verbose(2,Extension 123 calling some_user@gmail.com)
same => n,Dial(Gtalk/asterisk/some_user@gmail.com,30)
same => n,Hangup()
The Gtalk/asterisk/some_user@gmail.com part of the Dial() line can be broken into
three parts. The first part, Gtalk, is the protocol we’re using for placing the outgoing
call. The second part, asterisk, is the account name as defined in the jabber.conf file.
The last part, some_user@gmail.com, is the location we’re attempting to place a call to.
Outgoing calls via Google Voice
To place calls using Google Voice to PSTN numbers, create a dialplan like the following:
[LocalSets]
exten => _1NXXNXXXXXX,1,Verbose(2,Placing call to ${EXTEN} via Google Voice)
same => n,Dial(Gtalk/asterisk/+${EXTEN}@voice.google.com)
same => n,Hangup()
Let’s discuss the Dial() line briefly, so you understand what is going on. We start with
Gtalk, which is the technology we’ll use to place the call. Following that, we have
defined the asterisk user as the account we’ll use to authenticate with when placing
our outgoing call (this is configured in jabber.conf). Next is the number we’re attempt-
ing to place a call to, as defined in the ${EXTEN} channel variable. We’ve prefixed the
${EXTEN} channel variable with a plus sign (+), as it’s required by the Google network
when placing calls. We’ve also appended @voice.google.com to let the Google servers
know this is a call that should be placed through Google Voice
†
as opposed to to another
Google Talk user.
† You may have to purchase credits from Google Voice in the control panel in order to place calls to certain
destinations.
428 | Chapter 18: External Services