----------------------- Output from CLI ----------------------- -- Starting simple switch on 'Zap/2-1' == Starting Zap/2-1 at DID_trunk_3,s,1 failed so falling back to exten 's' == Starting Zap/2-1 at DID_trunk_3,s,1 still failed so falling back to context 'default' [Apr 20 11:12:39] WARNING[7144]: pbx.c:2432 __ast_pbx_run: Channel 'Zap/2-1' sent into invalid extension 's' in context 'default', but no invalid handler -- Hungup 'Zap/2-1' ----------------------- zapata.conf ----------------------- [trunkgroups] [channels] context=default switchtype=national signalling=fxo_ls rxwink=300 usecallerid=no hidecallerid=no callwaiting=yes usecallingpres=yes callwaitingcallerid=yes threewaycalling=yes transfer=yes canpark=yes cancallforward=yes callreturn=yes echocancel=yes echocancelwhenbridged=yes rxgain=0.0 txgain=0.0 group=1 callgroup=1 pickupgroup=1 immediate=no signalling = fxs_ks channel => 1,2 signalling = fxs_ks channel => 1,2 ------------------------ extensions.conf ------------------------ [general] static = yes writeprotect = no clearglobalvars = no [globals] CONSOLE = Console/dsp ; Console interface for demo IAXINFO = guest ; IAXtel username/password TRUNK = Zap/g2 ; Trunk interface TRUNKMSD = 1 ; MSD digits to strip (usually 1 or 0) trunk_1 = Zap/g1 trunk_2 = Zap/g2 trunk_3 = Zap/g3 [dundi-e164-canonical] [dundi-e164-customers] [dundi-e164-via-pstn] [dundi-e164-local] include => dundi-e164-canonical include => dundi-e164-customers include => dundi-e164-via-pstn [dundi-e164-switch] switch => DUNDi/e164 [dundi-e164-lookup] include => dundi-e164-local include => dundi-e164-switch [macro-dundi-e164] exten => s,1,Goto(${ARG1},1) include => dundi-e164-lookup [iaxtel700] exten => _91700XXXXXXX,1,Dial(IAX2/${GLOBAL(IAXINFO)}@iaxtel.com/${EXTEN:1}@iaxtel) [iaxprovider] [trunkint] exten => _9011.,1,Macro(dundi-e164,${EXTEN:4}) exten => _9011.,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) [trunkld] exten => _91NXXNXXXXXX,1,Macro(dundi-e164,${EXTEN:1}) exten => _91NXXNXXXXXX,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) [trunklocal] exten => _9NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) [trunktollfree] exten => _91800NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) exten => _91888NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) exten => _91877NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) exten => _91866NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}}) [international] ignorepat => 9 include => longdistance include => trunkint [longdistance] ignorepat => 9 include => local include => trunkld [local] ignorepat => 9 include => default include => trunklocal include => iaxtel700 include => trunktollfree include => iaxprovider include => parkedcalls [macro-trunkdial] exten => s,1,Dial(${ARG1}) exten => s,n,Goto(s-${DIALSTATUS},1) exten => s-NOANSWER,1,Hangup exten => s-BUSY,1,Hangup exten => _s-.,1,NoOp [macro-stdexten]; exten => s,1,Dial(${ARG2},20) ; Ring the interface, 20 seconds maximum exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to voicemail w/ unavail announce exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ busy announce exten => s-BUSY,2,Goto(default,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(${ARG1}) ; If they press *, send the user into VoicemailMain [macro-stdPrivacyexten]; exten => s,1,Dial(${ARG2},20|p) ; Ring the interface, 20 seconds maximum, call screening exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) exten => s-NOANSWER,1,Voicemail(${ARG1},u) ; If unavailable, send to voicemail w/ unavail announce exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start exten => s-BUSY,1,Voicemail(${ARG1},b) ; If busy, send to voicemail w/ busy announce exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start exten => s-DONTCALL,1,Goto(${ARG3},s,1) ; Callee chose to send this call to a polite "Don't call again" script. exten => s-TORTURE,1,Goto(${ARG4},s,1) ; Callee chose to send this call to a telemarketer torture script. exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into VoicemailMain [macro-page]; exten => s,1,ChanIsAvail(${ARG1}|js) ; j is for Jump and s is for ANY call exten => s,n,GoToIf([${AVAILSTATUS} = "1"]?autoanswer:fail) exten => s,n(autoanswer),Set(_ALERT_INFO="RA") ; This is for the PolyComs exten => s,n,SIPAddHeader(Call-Info: Answer-After=0) ; This is for the Grandstream, Snoms, and Others exten => s,n,NoOp() ; Add others here and Post on the Wiki!!!! exten => s,n,Dial(${ARG1}||) exten => s,n(fail),Hangup [demo] exten => s,1,Wait(1) ; Wait a second, just for fun exten => s,n,Answer ; Answer the line exten => s,n,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(demo-congrats) ; Play a congratulatory message exten => s,n(instruct),BackGround(demo-instruct) ; Play some instructions exten => s,n,WaitExten ; Wait for an extension to be dialed. exten => 2,1,BackGround(demo-moreinfo) ; Give some more information. exten => 2,n,Goto(s,instruct) exten => 3,1,Set(LANGUAGE()=fr) ; Set language to french exten => 3,n,Goto(s,restart) ; Start with the congratulations exten => 1000,1,Goto(default,s,1) exten => 1234,1,Playback(transfer,skip) ; "Please hold while..." exten => 1234,n,Macro(stdexten,1234,${GLOBAL(CONSOLE)}) exten => 1235,1,Voicemail(1234,u) ; Right to voicemail exten => 1236,1,Dial(Console/dsp) ; Ring forever exten => 1236,n,Voicemail(1234,b) ; Unless busy exten => #,1,Playback(demo-thanks) ; "Thanks for trying the demo" exten => #,n,Hangup ; Hang them up. exten => t,1,Goto(#,1) ; If they take too long, give up exten => i,1,Playback(invalid) ; "That's not valid, try again" exten => 500,1,Playback(demo-abouttotry) ; Let them know what's going on exten => 500,n,Dial(IAX2/guest@misery.digium.com/s@default) ; Call the Asterisk demo exten => 500,n,Playback(demo-nogo) ; Couldn't connect to the demo site exten => 500,n,Goto(s,6) ; Return to the start over message. exten => 600,1,Playback(demo-echotest) ; Let them know what's going on exten => 600,n,Echo ; Do the echo test exten => 600,n,Playback(demo-echodone) ; Let them know it's over exten => 600,n,Goto(s,6) ; Start over exten => 76245,1,Macro(page,SIP/Grandstream1) exten => _7XXX,1,Macro(page,SIP/${EXTEN}) exten => 7999,1,Set(TIMEOUT(absolute)=60) exten => 7999,2,Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n|d) exten => 8500,1,VoicemailMain exten => 8500,n,Goto(s,6) [page] exten => _X.,1,Macro(page,SIP/${EXTEN}) [default] exten => 850,1,VoiceMailMain exten => 8500,n,Hangup include => voicemenu-custom-1 exten => 680,1,MeetMe(${EXTEN}|MI) [asterisk_guitools] exten = executecommand,1,System(${command}) exten = executecommand,n,Hangup() exten = record_vmenu,1,Answer exten = record_vmenu,n,Playback(vm-intro) exten = record_vmenu,n,Record(${var1}) exten = record_vmenu,n,Playback(vm-saved) exten = record_vmenu,n,Playback(vm-goodbye) exten = record_vmenu,n,Hangup exten = play_file,1,Answer exten = play_file,n,Playback(${var1}) exten = play_file,n,Hangup hasbeensetup = N [numberplan-custom-1] plancomment = DialPlan1 include = default exten = _9XXXXXXX,1,Macro(trunkdial,${trunk_3}/${EXTEN:0}) comment = _9XXXXXXX,1,local,standard exten = _1XXXXXXXXXX,1,Macro(trunkdial,${trunk_3}/83${EXTEN:0}) comment = _1XXXXXXXXXX,1,long distance,standard comment = XXXXXXX,1,local2,custom comment = NXXXXXX,1,local2,custom comment = ,1,office,custom exten = _1XX,1,Macro(trunkdial,${trunk_3}/${EXTEN:0}) comment = _1XX,1,office,standard [DID_trunk_1] include = default exten = _X.,1,Goto(default|601|1) exten = s,1,Goto(default|601|1) [DID_trunk_2] include = default exten = _X.,1,Goto(default|602|1) exten = s,1,Goto(default|602|1)