[general] [inbound] exten => s,1,Answer() exten => s,n,SetMusicOnHold(default) exten => s,n,NoOp(CallerID: ${CALLERID}) exten => s,n,Wait(1) exten => s,n,PrivacyManager() exten => s,n,Playback(pls-hold-while-try) exten => s,n,Macro(dial-inbound,sip/cordless,100,25,m) exten => s,n,Hangup() ; Inbound trunks exten => 500,1,Goto(inbound,s,1) exten => 14805551212,1,Goto(inbound,s,1) [internal] include => outbound-emergency include => outbound-domestic include => outbound-unknown ; Voicemail exten => *98,1,VoiceMailMain() exten => *98,n,Hangup() ; Extensions exten => 100,1,Dial(SIP/cordless,15) exten => 100,n,Hangup() exten => 1337,1,Dial(IAX2/BJ,10) exten => 1337,n,Hangup() exten => 7777,1,Goto(inbound,s,1) [outbound-emergency] exten => 911,1,Playback(no-911-2) exten => 911,n,Hangup() [outbound-domestic] exten => _1NXXNXXXXXX,1,SetCallerID("Private" <14805551212>) exten => _1NXXNXXXXXX,n,MixMonitor(outbound-${DATETIME}.wav) exten => _1NXXNXXXXXX,n,Dial(IAX2/1337:123456@66.246.246.52/${EXTEN}) exten => _NXXNXXXXXX,1,SetCallerID("Private" <14805551212>) exten => _NXXNXXXXXX,n,MixMonitor(outbound-${DATETIME}.wav) exten => _NXXNXXXXXX,n,Dial(IAX2/1337:123456@66.246.246.52/1${EXTEN}) exten => _NXXXXXX,1,SetCallerID("Private" <14805551234>) exten => _NXXXXXX,n,MixMonitor(outbound-${DATETIME}.wav) exten => _NXXXXXX,n,Dial(IAX2/1337:123456@66.246.246.52/1480${EXTEN}) ;exten => s,n,StopMixMonitor() exten => s,n,NoOp(${DIALSTATUS}) exten => s,n,Goto(s-${DIALSTATUS},1) exten => s,n,Hangup() exten => s-CHANUNAVAIL,1,Macro(unavail) exten => s-CHANUNAVAIL,n,Hangup() exten => s-CONGESTION,1,Macro(fail) exten => s-CONGESTION,n,Hangup() exten => s-CANCEL,1,Macro(cancel) exten => s-CANCEL,n,Hangup() exten => s-BUSY,1,Macro(busy) exten => s-BUSY,n,Hangup() exten => s-NOANSWER,1,Macro(noanswer) exten => s-NOANSWER,n,Hangup() [outbound-unknown] exten => _X,1,Playback(cannot-complete-as-dialed) exten => _X,n,Playback(please-hang-up-and-try-again) exten => _X,n,Hangup() exten => _X.,1,Playback(cannot-complete-as-dialed) exten => _X.,n,Playback(please-hang-up-and-try-again) exten => _X.,n,Hangup() exten => _#.,1,Playback(cannot-complete-as-dialed) exten => _#.,n,Playback(please-hang-up-and-try-again) exten => _#.,n,Hangup() exten => _#,1,Playback(cannot-complete-as-dialed) exten => _#,n,Playback(please-hang-up-and-try-again) exten => _#,n,Hangup() exten => _*.,1,Playback(cannot-complete-as-dialed) exten => _*.,n,Playback(please-hang-up-and-try-again) exten => _*.,n,Hangup() exten => _*,1,Playback(cannot-complete-as-dialed) exten => _*,n,Playback(please-hang-up-and-try-again) exten => _*,n,Hangup() ; ${ARG1} Dial string ; ${ARG2} Voicemail extension ; ${ARG3} Dial timout ; ${ARG4} Dial options ; ${ARG5} CallerID ;[macro-dial-out] ;exten => s,1,SetCallerID(${ARG5}) ;exten => s,n,MixMonitor(outbound-${DATETIME}.wav) ;exten => s,n,Dial(${ARG1},${ARG3},${ARG4}) ;exten => s,n,StopMixMonitor() ;exten => s,n,NoOp(${DIALSTATUS}) ;exten => s,n,Goto(s-${DIALSTATUS},1) ;exten => s,n,Hangup() ;exten => s-CHANUNAVAIL,1,Macro(unavail) ;exten => s-CHANUNAVAIL,n,Hangup() ;exten => s-CONGESTION,1,Macro(fail) ;exten => s-CONGESTION,n,Hangup() ;exten => s-CANCEL,1,Macro(cancel) ;exten => s-CANCEL,n,Hangup() ;exten => s-BUSY,1,Macro(busy) ;exten => s-BUSY,n,Hangup() ;exten => s-NOANSWER,1,Macro(noanswer) ;exten => s-NOANSWER,n,Hangup() [macro-dial-inbound] exten => s,1,MixMonitor(inbound-${DATETIME}.wav) exten => s,n,Dial(${ARG1},${ARG3},${ARG4}) exten => s,n,Goto(s-${DIALSTATUS},1) exten => s,n,Hangup() exten => s-BUSY,1,Voicemail(b${ARG2}) exten => s-NOANSWER,1,Voicemail(u${ARG2}) exten => s-.,1,Voicemail(u${ARG2}) [macro-fail] exten => s,1,Playback(all-circuits-busy-now) exten => s,n,Playback(pls-try-call-later) exten => s,n,Hangup [macro-busy] exten => s,1,Playback(the-number-u-dialed) exten => s,n,Playback(is-curntly-busy) exten => s,n,Hangup() [macro-unavail] exten => s,1,Playback(the-number-u-dialed) exten => s,n,Playback(is-curntly-unavail) exten => s,n,Hangup() [macro-noanswer] exten => s,1,Playback(the-number-u-dialed) exten => s,n,Playback(is-curntly-busy) exten => s,n,Hangup() [macro-cancel] exten => s,1,Playback(cancelled) exten => s,n,Hangup()