[general] static=yes writeprotect=no [globals] CONSOLE=Console/dsp ; Console interface for demo IAXINFO=slepp:password ; IAXtel username/password FWDEXTEN=267595 ; FWD Extension Number IAXTELEXTEN=17007772505 ; IAXtel number FNETWORKS=8829900003301 MAIN_CONTEXT=default MAIN_EXTEN=s ;;; Dial IAXtel numbers [macro-iax-out] exten => s,1,SetCIDName(NetMonks Consulting) exten => s,2,SetCallerID(17007772505) exten => s,3,Dial(IAX2/${IAXINFO}@iaxtel.com/${ARG1}@iaxtel||r) exten => s,4,Playback(invalid) exten => s,5,Hangup exten => s,104,Playtones(busy) exten => s,105,Wait(30) exten => s,106,Hangup ;;; Handle free world dialup numbers [macro-fwd-out] exten => s,1,SetCIDName(NetMonks Consulting) exten => s,2,SetCallerID(267595) exten => s,3,Dial(SIP/${ARG1}@fwd.pulver.com||r) exten => s,4,Playback(invalid) exten => s,5,Hangup ;;; Handle calls going OUT to iaxtel or FWD [outgoing] ; If we got here, and do not know why, hangup exten => s,1,Playback(invalid) exten => s,2,Hangup ; Local numbers exten => _17007772505,1,Goto(${MAIN_CONTEXT},${MAIN_EXTEN},1) exten => _17009267595,1,Goto(${MAIN_CONTEXT},${MAIN_EXTEN},1) exten => _17009.,1,Macro(fwd-out,${EXTEN:5}) ; Free World Dialup exten => _1700NXXXXXX,1,Macro(iax-out,${EXTEN}) ; IAXtel ; Toll-free numbers (US) exten => _1800NXXXXXX,1,Macro(fwd-out,*${EXTEN}) exten => _1866NXXXXXX,1,Macro(fwd-out,*${EXTEN}) exten => _1877NXXXXXX,1,Macro(fwd-out,*${EXTEN}) exten => _1888NXXXXXX,1,Macro(fwd-out,*${EXTEN}) ; Perform ENUM lookups here exten => _4.,1,Playback(transfer) exten => _4.,2,EnumLookup(${EXTEN:1}) exten => _4.,3,Dial(${ENUM},30,tr) exten => _4.,4,Hangup exten => _4.,103,Congestion exten => _4.,104,Congestion ; Incoming SIP calls to FWDEXTEN [from-sip] exten => ${FWDEXTEN},1,Goto(${MAIN_CONTEXT},${MAIN_EXTEN},1) exten => ${FWDEXTEN},2,Congestion ; Incoming Line Share wtih Fierymoon [fiery-enum-incoming] exten => _17804254798,1,Goto(${MAIN_CONTEXT},${MAIN_EXTEN},1) ; Incoming call for us via ENUM exten => _1NXXNXXXXXX,1,SetVar(enumok=0) exten => _1NXXNXXXXXX,2,DBget(enumok=enumok/${EXTEN:1:6}) exten => _1NXXNXXXXXX,3,GotoIf(${enumok}?4:900) exten => _1NXXNXXXXXX,4,ChanIsAvail(Zap/1) exten => _1NXXNXXXXXX,5,Dial(Zap/1/${EXTEN:4}) exten => _1NXXNXXXXXX,6,Hangup exten => _1NXXNXXXXXX,105,Playtones(busy) exten => _1NXXNXXXXXX,106,Wait(10) exten => _1NXXNXXXXXX,107,Hangup exten => _1NXXNXXXXXX,900,Congestion ;;; Record messages for playback in IVR [audrec] exten => 188011,1,Answer exten => 188011,2,DigitTimeout,10 exten => 188011,3,Wait,1 exten => 188011,4,Read(RECID|recording/asterisk-1) exten => 188011,5,SayDigits,${RECID} exten => 188011,6,Playback(recording/asterisk-2) exten => 188011,7,Record(/tmp/recordings/asterisk-${RECID}:gsm) exten => 188011,8,Playback(recording/asterisk-3) exten => 188011,9,Playback(/tmp/recordings/asterisk-${RECID}) exten => 188011,10,Read(OKAY|recording/asterisk-4) exten => 188011,11,GotoIf($[${OKAY} = 1]?:5) exten => 188011,12,Festival(The file has been saved into file number ${RECID}.) exten => 188011,13,Wait(2) exten => 188011,14,Hangup ;;; Queuing and music on hold [macro-queue-caller] exten => s,1,Playback(transfer) exten => s,2,DBget(music=music-choice/${CALLERID}) exten => s,3,GotoIf($["${music}" = ""]?5:4) exten => s,4,SetMusicOnHold(${music}) exten => s,5,Queue(${ARG1},tH) exten => s,6,Playback(tt-monkeysintro) exten => s,7,Goto(netmonks-main,s,${MAINEXT}) ; Change and save the caller MOH preference [macro-change-moh] exten => s,1,SetMusicOnHold(${ARG1}) exten => s,2,DBput(music-choice/${CALLERID}=${ARG1}) exten => s,3,Queue(${ARG2},tH) ; This "menu" is used from the support queue [support-moh] exten => 1,1,Macro(change-moh,default,support) exten => 2,1,Macro(change-moh,slow,support) exten => 5,1,Voicemail(u800) ;;; Main NetMonks incoming [netmonks-main] exten => s,1,Answer exten => s,2,DigitTimeout,5 exten => s,3,ResponseTimeout,10 exten => s,4,SetMusicOnHold(default) exten => s,5,Wait,1 exten => s,6,Background,netmonks/thank-you-for-calling exten => s,7,SetVar(MAIN_PRIORITY=${PRIORITY}) exten => s,8,Background,netmonks/if-you-know-the-ext exten => s,9,Background,netmonks/main-menu ; Extension 1 - Gets us to the support queue exten => 1,1,Macro(queue-caller,support) ; Get a directory of extensions exten => 2,1,Directory,netmonks-ext ; Dump various information to the console exten => 3,1,NoOp,Context:${CONTEXT} exten => 3,2,NoOp,DateTime:${DATETIME} exten => 3,3,NoOp,TimeStamp:${TIMESTAMP} exten => 3,4,NoOp,Exten:${EXTEN} exten => 3,5,NoOp,Language:${LANGUAGE} exten => 3,6,NoOp,Priority:${PRIORITY} exten => 3,7,NoOp,CallerID:${CALLERID} exten => 3,8,NoOp,CallerIDNum:${CALLERIDNUM} exten => 3,9,NoOp,CallerIDName:${CALLERIDNAME} exten => 3,10,NoOp,Channel:${CHANNEL} exten => 3,11,NoOp,RDNIS:${RDNIS} exten => 3,12,NoOp,SIPDomain:${SIPDOMAIN} exten => 3,13,NoOp,SIP_Codec:${SIP_CODEC} exten => 3,14,NoOp,UniqueID:${UNIQUEID} exten => 3,15,NoOp,DNID:${DNID} exten => 3,16,NoOp,AccountCode:${ACCOUNTCODE} exten => 3,17,Hangup exten => 4,1,EAGI(/web/netmonks.ca/php-test.agi) exten => 4,2,Goto(${MAIN_CONTEXT},${MAIN_EXTEN},${MAIN_PRIORITY}) exten => 5,1,EAGI(festival-fortune.pl) exten => 5,2,Goto(${MAIN_CONTEXT},${MAIN_EXTEN},${MAIN_PRIORITY}) exten => 6,1,MeetMe(9001|pM) exten => 6,2,Goto(${MAIN_CONTEXT},${MAIN_EXTEN},${MAIN_PRIORITY}) exten => 7,1,Echo exten => 7,2,Hangup exten => i,1,Playback(invalid) exten => i,2,Goto(${MAIN_CONTEXT},${MAIN_EXTEN},${MAIN_PRIORITY}) exten => t,1,Playback(tt-somethingwrong) exten => t,2,Goto(${MAIN_CONTEXT},${MAIN_EXTEN},${MAIN_PRIORITY}) exten => h,1,ResetCDR exten => h,2,Hangup ;;; NetMonks Extensions ; Standard voice mail passoff [macro-stdexten] exten => s,1,Dial(${ARG2},45) exten => s,2,Voicemail(u${ARG1}) exten => s,3,Goto(${MAIN_CONTEXT},${MAIN_EXTEN},${MAIN_PRIORITY}) exten => s,102,Voicemail(b${ARG1}) exten => s,103,Goto(${MAIN_CONTEXT},${MAIN_EXTEN},${MAIN_PRIORITY}) [netmonks-ext] exten => 801,1,Macro(stdexten,${EXTEN},IAX2/proso@slepp) exten => 802,1,Macro(stdexten,${EXTEN},IAX2/proso@methos) exten => 803,1,Macro(stdexten,${EXTEN},OH323/188310) exten => 890,1,VoicemailMain exten => 890,2,Hangup exten => 891,1,AgentCallbackLogin(|@agent-locations) exten => 895,1,AddQueueMember(support) exten => 895,2,Playback(agent-loginok) exten => 895,3,Hangup exten => 896,1,RemoveQueueMember(support) exten => 896,2,Playback(agent-loggedoff) exten => 896,3,Hangup exten => 899,1,DISA,9772|outgoing ; Default context [default] include => netmonks-main include => netmonks-ext include => parkedcalls ;include => outgoing [agent-locations] include => netmonks-ext include => outgoing [local] include => netmonks-ext include => outgoing include => audrec