[general]
static=yes
writeprotect=no
language=de
[globals]
CONSOLE=Console/dsp ; Console interface for demo
;CONSOLE=Zap/1
;CONSOLE=Phone/phone0
IAXINFO=guest ; IAXtel username/password
;IAXINFO=myuser:mypass
TRUNK=Zap/g2 ; Trunk interface
TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0)
;TRUNK=IAX2/user:pass@provider
[trunkint]
;
; International long distance through trunk
;
exten => _9011.,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _9011.,2,Congestion
[trunkld]
;
; Long distance context accessed through trunk
;
exten => _91NXXNXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91NXXNXXXXXX,2,Congestion
[trunklocal]
;
; Local seven-digit dialing accessed through trunk interface
;
exten => _9NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _9NXXXXXX,2,Congestion
[trunktollfree]
;
; Long distance context accessed through trunk interface
;
exten => _91800NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91800NXXXXXX,2,Congestion
exten => _91888NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91888NXXXXXX,2,Congestion
exten => _91877NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91877NXXXXXX,2,Congestion
exten => _91866NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91866NXXXXXX,2,Congestion
[international]
;
; Master context for international long distance
;
ignorepat => 9
include => longdistance
include => trunkint
[longdistance]
;
; Master context for long distance
;
ignorepat => 9
include => local
include => trunkld
[local]
;
; Master context for local, toll-free, and iaxtel calls only
;
ignorepat => 9
include => default
include => parkedcalls
include => trunklocal
include => iaxtel700
include => trunktollfree
include => iaxprovider
;
; You can use an alternative switch type as well, to resolve
; extensions that are not known here, for example with remote
; IAX switching you transparently get access to the remote
; Asterisk PBX
;
; switch => IAX2/user:password@bigserver/local
[macro-stdexten];
;
; Standard extension macro:
; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well
; ${ARG2} - Device(s) to ring
;
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(u${ARG1}) ; 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(b${ARG1}) ; 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
[demo]
;
; We start with what to do when a call first comes in.
;
exten => s,1,Wait,1 ; Wait a second, just for fun
exten => s,2,Answer ; Answer the line
exten => s,3,DigitTimeout,5 ; Set Digit Timeout to 5 seconds
exten => s,4,ResponseTimeout,10 ; Set Response Timeout to 10 seconds
exten => s,5,BackGround(demo-congrats) ; Play a congratulatory message
exten => s,6,BackGround(demo-instruct) ; Play some instructions
exten => 2,1,BackGround(demo-moreinfo) ; Give some more information.
exten => 2,2,Goto(s,6)
exten => 3,1,SetLanguage(fr) ; Set language to french
exten => 3,2,Goto(s,5) ; Start with the congratulations
exten => 1000,1,Goto(default,s,1)
;
; We also create an example user, 1234, who is on the console and has
; voicemail, etc.
;
exten => 1234,1,Playback(transfer,skip) ; "Please hold while..."
; (but skip if channel is not up)
exten => 1234,2,Macro(stdexten,1234,${CONSOLE})
exten => 1235,1,Voicemail(u1234) ; Right to voicemail
exten => 1236,1,Dial(Console/dsp) ; Ring forever
exten => 1236,2,Voicemail(u1234) ; Unless busy
;
; # for when they're done with the demo
;
exten => #,1,Playback(demo-thanks) ; "Thanks for trying the demo"
exten => #,2,Hangup ; Hang them up.
;
; A timeout and "invalid extension rule"
;
exten => t,1,Goto(#,1) ; If they take too long, give up
exten => i,1,Playback(invalid) ; "That's not valid, try again"
;
; Create an extension, 500, for dialing the
; Asterisk demo.
;
exten => 500,1,Playback(demo-abouttotry); Let them know what's going on
exten => 500,2,Dial(IAX2/[email protected]/s@default) ; Call the Asterisk demo
exten => 500,3,Playback(demo-nogo) ; Couldn't connect to the demo site
exten => 500,4,Goto(s,6) ; Return to the start over message.
;
; Create an extension, 600, for evaulating echo latency.
;
exten => 600,1,Playback(demo-echotest) ; Let them know what's going on
exten => 600,2,Echo ; Do the echo test
exten => 600,3,Playback(demo-echodone) ; Let them know it's over
exten => 600,4,Goto(s,6) ; Start over
;
; Give voicemail at extension 8500
;
exten => 8500,1,VoicemailMain
exten => 8500,2,Goto(s,6)
;
; Here's what a phone entry would look like (IXJ for example)
;
;exten => 1265,1,Dial(Phone/phone0,15)
;exten => 1265,2,Goto(s,5)
;[mainmenu]
;
; Example "main menu" context with submenu
;
;exten => s,1,Answer
;exten => s,2,Background(thanks) ; "Thanks for calling press 1 for sales, 2 for support, ..."
;exten => 1,1,Goto(submenu,s,1)
;exten => 2,1,Hangup
;include => default
;
;[submenu]
;exten => s,1,Ringing ; Make them comfortable with 2 seconds of ringback
;exten => s,2,Wait,2
;exten => s,3,Background(submenuopts) ; "Thanks for calling the sales department. Press 1 for steve, 2 for..."
;exten => 1,1,Goto(default,steve,1)
;exten => 2,1,Goto(default,mark,2)
[default]
include => demo
include => parkedcalls
exten => 6601,1,SetMusicOnHold(summer)
exten => 6601,2,WaitMusicOnHold(30)
exten => 6601,3,Congestion
exten => 15,1,SetMusicOnHold(summer)
exten => 15,2,Dial(SIP/${EXTEN},120,Tt)
exten => 15,3,Congestion
exten => 15,102,Busy
exten => 16,1,SetMusicOnHold(summer)
exten => 16,2,Dial(SIP/${EXTEN},25,Tt)
exten => 16,3,Voicemail(u16)
exten => 16,4,Hangup
exten => 16,102,Busy
exten => 17,1,SetMusicOnHold(summer)
exten => 17,2,Dial(SIP/${EXTEN}],60,Tt)
exten => 17,3,Congestion
exten => 17,102,Busy
exten => 18,1,SetMusicOnHold(summer)
exten => 18,2,Dial(SIP/${EXTEN}],60,Tt)
exten => 18,3,Congestion
exten => 18,102,Busy
exten => 19,1,SetMusicOnHold(summer)
exten => 19,2,Dial(SIP/${EXTEN}],60,Tt)
exten => 19,3,Congestion
exten => 19,102,Busy
exten => 13,1,SetMusicOnHold(summer)
exten => 13,2,Dial(SIP/${EXTEN},60,Tt)
exten => 13,3,Congestion
exten => 13,102,Busy
exten => 12,1,SetMusicOnHold(summer)
exten => 12,2,Dial(SIP/${EXTEN},60,Tt)
exten => 12,3,Congestion
exten => 12,102,Busy
exten => 16,1,SetMusicOnHold(summer)
exten => 11,2,Dial(SIP/${EXTEN},60,Tt)
exten => 11,3,Congestion
exten => 11,102,Busy
exten => 11,9,Dial(SIP/11,,Tt)
exten => 12,9,Dial(SIP/12,,Tt)
exten => 13,9,Dial(SIP/13,,Tt)
exten => 15,9,Dial(SIP/15,,Tt)
exten => 16,9,Dial(SIP/16,,Tt)
exten => 17,9,Dial(SIP/17,,Tt)
exten => 300,1,Dial(SIP/***********@sipgate1,60,Tt) ;Kurzwahl Telephonbuch
exten => 301,1,Dial(SIP/***********@sipgate1,60,Tt)
exten => 350,1,Dial(SIP/********@sipgate1,60,Tt)
exten => 4444/_[1-9].,1,Answer ; MAILBox
exten => 4444/_[1-9].,2,Wait(1)
exten => 4444/_[1-9].,3,VoicemailMain(s${CALLERIDNUM})
exten => 4444/_[1-9].,4,Hangup
[sip-out]
include => default
exten => _91.,1,SetCIDName(***********)
exten => _91.,2,Dial(SIP/${EXTEN:2}@sipgate1,60,Tt)
exten => _91.,3,Playback(invalid)
exten => _91.,4,Hangup
exten => _91.,102,Busy
exten => _92.,1,Dial(SIP/${EXTEN:2}@sipgate2,60,Tt)
exten => _92.,2,Congestion
exten => _92.,102,Busy