So far, our incoming calls are routed to extension 250, Ellen Ripley. Ellen has been gracious at playing receptionist, but she has her own work to do. How do you configure Asterisk to take over as a reliable, always courteous digital receptionist?
Instead of routing all incoming calls to Ellen, program your dialplan to route calls according to an interactive menu, and then record suitable greetings and instructions. (See the next recipe to learn how to use Asterisk to record custom prompts.)
Fire up your trusty text editor and open
/etc/asterisk/extensions.conf. Change the
[pstn-test-in]
context to look like
this:
[pstn-test-in] ;interactive menu for incoming calls exten => s,1,Answer() exten => s,2,Set(TIMEOUT(digit)=5) exten => s,3,Set(TIMEOUT(response)=15) exten => s,4 Background(local/main-greeting) ;user extensions exten => 1,1,Goto(local-users,250,1) exten => 2,1,Goto(local-users,251,1) exten => 3,1,Goto(local-users,252,1) ;send the caller back to the beginning ;if they enter an invalid option exten => i,1,Playback(local/invalid-option) exten => i,2,Goto(s,2) ;hangup if the timeouts are exceeded exten => t,1,Hangup
Now, record the greetings that will be played for callers. The first one is main-greeting, which says something like "Thank you for calling Excellence Itself, Limited. Please press 1 to speak to Ellen Ripley. Press 2 for Sarah Connor, or press 3 for Dutch Schaeffer."
invalid-option responds to incorrect key presses with "I'm sorry, that is not a valid option. Please listen to the available options and try again."
Reload the new dialplan:
asterisk1*CLI> dialplan reload
Call your server from an outside line and take your new digital receptionist for a test drive.
There's a whole lot going on here in a few lines:
Set(TIMEOUT(digit)=5) Set(TIMEOUT(response)=15)
Asterisk will hang up if the user takes too long to enter key presses, or too long to respond at all. The defaults are 5 seconds and 10 seconds.
The Background
command plays
a soundfile, then stops playing the soundfile when it is interrupted
by a key press from the caller and goes to the next step in the
dialplan.
The t
, or
timeout extension is a special extension that
tells Asterisk what to do when timeouts are exceeded.
The i
, or
invalid extension handles incorrect input from
callers.
When a caller is routed to a valid user's extension, that's the end of the road. Then, someone either picks up the call, or it goes to voicemail.
Asterisk config extensions.conf:
http://www.voip-info.org/wiki/view/Asterisk+config+extensions.conf |
The sample extensions.conf, sip.conf, voicemail.conf