My first dialplan
; Pretty simple extensions.conf file for Asterisk 1.2 which includes extensions for 4 users at different extensions, ; a meetme conference room, voicemail and calling out for authenticated users. ; Written by Rob Russell, Late Night PC Service, http://www.latenightpc.com/blog/ ; Do what you want with this file but I offer no warranty on it's use, misuse or abuse. ; Read a description of this file at http://www.latenightpc.com/blog/archives/2006/11/19/taking-the-call-my-e... [general] writeprotect=no autofallthrough=yes clearglobalvars=yes priorityjumping=no [globals] ; "the only limiting factor is that macros use only the s extension." p128 from TFOT [macro-mainmenu-login] exten => s,1,SayDigits(${ARG1}) exten => s,n,VMAuthenticate(${ARG1}) [macro-mainmenu-voicemail] ; ${ARG1} is the user's extension ; calling example for extension 55 ; exten => 7, 1, macro(mainmenu-voicemail, 55) exten => s,1,VoicemailMain(s${ARG1}) exten => s,n,Goto(known-user,s,nextchoice) [macro-mainmenu-default-conference] ; ${ARG1} is the user's extension ; calling example for extension 55 ; exten => 8, 1, macro(mainmenu-default-conference, 55) exten => s,1,meetme(101,,123456) exten => s,n,Goto(known-user,s,nextchoice) [macro-mainmenu-outbound] ; ${ARG1} is the user's extension ; ${ARG2} is ${EXTEN} ; calling example for extension 55 ; exten => _9XXXXXXXXXXX,1,macro(mainmenu-outbound, 55, ${EXTEN}) exten => s,1,Dial(SIP/lesnet_peer/${EXTEN:1}) exten => s,n,Goto(known-user,s,nextchoice) [macro-calluser] ; ${ARG1} is the user's outside extension, often we're connecting over SIP to PSTN ; so something like 'SIP/lesnet_peer/15195551212' ; allow dialing out, phonebook dialing and voicemail exten => s,1,SayDigits(${MACRO_EXTEN}) exten => s,n,Dial(${ARG1},30) ; Ring the interface, 30 seconds maximum exten => s,n,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) exten => s-NOANSWER,1,Voicemail(u${MACRO_EXTEN}) ; If unavailable, send to voicemail w/ unavail announce exten => s-NOANSWER,2,Goto(incoming,s,1) ; If they press #, return to start exten => s-BUSY,1,Voicemail(${MACRO_EXTEN}b) ; If busy, send to voicemail w/ busy announce exten => s-BUSY,2,Goto(incoming,s,1) ; If they press #, return to start exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer exten => a,1,VoicemailMain(${MACRO_EXTEN}) ; If they press *, send the user into VoicemailMain [lesnet-incoming] exten => _X.,1,Answer ; Answer the line exten => _X.,n,Goto(incoming,s,1) [incoming] exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds exten => s,n(restart),BackGround(rob-enter-extension-or-2) ; "Enter the extension of the party you wish to reach or press 2 for a list of extensions" exten => s,n,WaitExten ; Wait for an extension to be dialed. ;exten => _[67][0-9]!,1,Set(TRYEXT=${EXTEN}) ;exten => _[67][0-9]!,1,Macro(calluser,1) exten => _1[67]X,1,Set(TRYEXT=${EXTEN:1}) exten => _1[67]X,n,Goto(known-user,s,1) ;exten => 177,1,Goto(known-user,s,1) exten => 77,1,Macro(calluser,SIP/lesnet_peer/15195551212) ; Rob exten => 63,1,Macro(calluser,SIP/lesnet_peer/15195551213) ; Alex exten => 71,1,Macro(calluser,SIP/lesnet_peer/15195551214) ; Candace exten => 72,1,Macro(calluser,SIP/lesnet_peer/18475551215) ; Jeff exten => t,1,Goto(s,restart) exten => i,1,Playback(invalid) ; "That's not valid, try again" exten => i,n,Goto(s,restart) [known-user] ;7 for voicemail ;8 for meetings ;9 to dial out exten => s,1,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds exten => s,n(restart), Macro(mainmenu-login,${TRYEXT},1) exten => s,n(nextchoice), NoOp() exten => s,n,WaitExten ; Wait for an extension to be dialed. exten => 7,1,macro(mainmenu-voicemail,${TRYEXT}) exten => 8,1,macro(mainmenu-default-conference,${TRYEXT}) exten => _9XXXXXXXXXXX,1,macro(mainmenu-outbound,${TRYEXT},${EXTEN}) exten => t,1,Goto(s,nextchoice) exten => i,1,Playback(invalid) ; "That's not valid, try again" exten => i,n,Goto(s,nextchoice)
0
Your rating: None