rendered paste body[general]
static=yes
writeprotect=yes
autofallthrough=yes
clearglobalvars=yes
[globals]
;
;--------------------------------------------------------------------
; Start - inbound call mapping
;--------------------------------------------------------------------
[inbound]
;
;This Exten Goes to Automated attendant after putting
;caller ID into the Database
exten => s,1,Set(${BD(Last/Caller=${CALLERIDNUM})})
exten => s,2,Goto(autoattend,s,1)
;
;New way to map exten. This test for active features.
exten => s,1,Set(${DB(Last/Caller=${CALLERIDNUM})})
exten => s.n,Macro(stdexten,$[exten})
;
;--------------------------------------------------------
;Inbound Macro Standard Extension testing.
;--------------------------------------------------------
[macro-stdexten]
;
exten => s,1,GotoIf(${DB(CF/${ARG1})}?2:3) ;Gets Call Forward Number
exten => s,2,Dial(SIP/${DB(CF/${ARG1})}/n) ;Dials the Forwarding Number
;
exten => s,3,Set(${DB(SCFE/${ARG1})=${CALLERIDNUM}) ;Sets the nmbr that if they call in it gets forwarded to another nmbr/exten
exten => s,4,GotoIf(${DB(SCFE/${ARG1})}?5:6) ;Get Selective Call Forward Number
exten => s,5,Dial(SIP/${DBget(SCFN/${ARG1})}/n) ;Selective Call Forward
;
exten => s,6,Set(${DB(SCRN/${ARG1})=${CALLERIDNUM}) ;Reads the Database for for nmbrs it should not allow threw.
exten => s,7,GotoIf(${DB(SCRN/${ARG1})}?8:9) ;Get Selective Call Rejection Status
exten => s,8,Hangup ;Sends Rejected calls to a all extensions are busy macro.
;
exten => s,9,Set(${DB(ACRStatus=ACR/${ARG1})
exten => s,10,GotoIf($DB({ACRStatus}=YES?11:12) ;Get Anonymous Call Rejection Status
exten => s,11,Macro(no-callerid)
;
exten => s,12,Set(${DB(DNDStatus=DND/${ARG1}) ;Sets the variable for the Do not disturb responce
exten => s,13,GotoIf($DB({DNDStatus}=YES?18:14) ;Checks the Database for the status/ responce
;
exten => s,14,Set(${DB(LASTCALL/${ARG1})=${CALLERIDNUM}) ;Places Current caller ID into the Database
exten => s,15,Dial(SIP/${EXTEN}|20|r) ;Dials the extension and waits for the time out
;
exten => s,16,GotoIf(${DB(CFNA/${ARG1})}?18:17) ;Call Forwarding On No Answer
exten => s,17,Dial(SIP/${DB(CFNA/${ARG1})}/n) ;Dials the No Answer forward Number
exten => s,18,Set(${DB(VMStatus=VM/${ARG1}) ;Checks to see if user has voice mail active or disabled.
exten => s,19,GotoIf(${VMStatus}=YES?20:119) ;If active it goes to voice mail. If not active it goes to busy- call checking macro.
exten => s,20,Voicemail(u${ARG1}) ;Goes to the unavaible Voicemail
exten => s,21,Playback(vm-goodbye) ;Plays Voicemail Goodbye
exten => s,22,Hangup ;Does a hard hangup
;
exten => s,116,GotoIf(${DB(CFB/${ARG1})}?117:118) ;Gets the Call Forwading On Busy status/number
exten => s,117,Dial(SIP/${DB(CFB/${ARG1})}/n) ;Dials the CallForwarding nmber/exten
;
exten => s,118,Voicemail(b${ARG1}) ;Goes to the Busy Voicemail
exten => s,119,Playback(vm-goodbye) ;Plays Voicemail Goodbye
exten => s,120,Hangup ;Does a hard hangup
;If extension does not exist it gives tritone + number unassigned message to unasigned numbers
exten => i,1,Answer
exten => i,2,Playback(the-number-u-dialed,noanswer)
exten => i,3,SayDigits(${ARG1})
exten => i,4,Playback(not-yet-assigned,noanswer)
exten => i,4,Busy
exten => i,5,Hangup
;
exten => t,1,Playback(the-party-you-are-calling)
exten => t,2,Playback(is-curntly-unavail)
exten => t,3,Playback(pls-try-call-later)
exten => t,4,Playback(goodbye)
exten => t,5,Hangup
[macro-fastbusy] ; I use this to send people I dont want to deal with
exten => s,1,Answer
exten => s,2,Wait 1
exten => s,3,Playback(all-circuits-busy)
exten => s,4,Wait(30)
exten => s,5,Hangup
;
[macro-caller-id] ;Checks the status of inbound CallerID and directs the call.
exten => s,1,System(test "${CALLERIDNAME}" = "O")
exten => s,2,GotoIf($[${CALLERIDNUM} = O]?3:102)
exten => s,3,SetCallerIDName("No Caller ID")
exten => s,4,Macro(no-callerid,s,1) ;Sends Callers with no id to no-callerid macro below.
exten => s,102,Macro(std-exten,s,12) ;landing point with caller id
;
[macro-no-callerid]
exten => s,1,Answer
exten => s,2,Wait()
exten => s,3,Playback(no-callerid)
exten => s,4,Wait()
exten => s,5,Playback(vm-goodbye)
exten => s,6,Congestion
exten => s,7,Hangup
;
;-------------------------------------------------------------------
;End Feature check macro
;-------------------------------------------------------------------
;--------------------------------------------------------------------
; Start - Internal Extension Dialing config / Macro
;--------------------------------------------------------------------
; 1000 - 9999 Internal SIP/IAX/MGCP/H323/SCCP/SKINNY/ECT USER EXTEN
;--------------------------------------------------------------------
[all-exten]
exten => _1XXX,1,Macro(stdexten,${EXTEN})
;
;-----------------------------------------------------------------------
; End - inbound call mapping
;--------------------------------------------------------------------
;-------------------------------------------------------------------
;Start Autoattend Menu
;-------------------------------------------------------------------
;
[autoattend]
;
exten => s,1,GotoIfTime(*|*|1|jan?holiday,s,1)
exten => s,n,GotoIfTime(*|*|4|jul?holiday,s,1)
exten => s,n,GotoIfTime(*|*|11|nov?holiday,s,1)
exten => s,n,GotoIfTime(*|*|24|nov?holiday,s,1)
exten => s,n,GotoIfTime(*|*|25|dec?holiday,s,1)
exten => s,n,GotoIfTime(08:00-16:59|mon-fri|*|*?day,s,1)
exten => s,n,GotoIfTime(17:00-07:59|mon-fri|*|*?night,s,1)
exten => s,n,GotoIfTime(08:00-07:59|sat-sun|*|*?night,s,1)
;exten => s,n,Goto(night,s,1);
;
[holiday]
;
exten => s,1,Playback(office-closed-holiday) ; play the office we are closed message
exten => s,n,Playback(office-hours) ; play the open hours message
exten => s,n,Hangup
;
[day]
include => selection
include => all-exten
include => queues
;
exten => s,1,Answer
exten => s,n,Background,day-msg
exten => s,n,DigitTimeout,5
exten => s,n,ResponseTimeout,10
;
[night]
include => queues
;
exten => s,1,Answer
exten => s,n,Playback(night-msg)
exten => s,n,Playback(transfering-support)
exten => s,n,Goto(special,611,1)
;
;-------------------------------------------------------------------
; END - Autoattend Menu
;-------------------------------------------------------------------
;-------------------------------------------------------------------
; Start - IVR Menu
;-------------------------------------------------------------------
[selection]
;
exten => i,1,Background(invalid-pbx)
exten => i,N,Goto(day,s,2)
;
exten = t,1,Playback(vm-goodbye)
exten = t,n,Hangup
;
; * - directory ; not setup yet
exten => *,1,Directory,default
exten => *,2,Goto,s|1
;
; # - disconnect
exten => #,1,Playback,(vm-goodbye)
exten => #,2,Hangup
;
; 0 Operator
exten => 0,1,Dial(SIP/0|20|tr)
exten => 0,2,Voicemail(u0)
exten => 0,3,Hangup
exten => 0,102,Voicemail(b0)
exten => 0,103,Hangup
;
;1 Sales Dept
exten => 1,1,GotoIfTime(08:00-16:59|mon-fri|*|*?selection,1,6)
exten => 1,2,GotoIfTime(17:00-07:29|mon-fri|*|*?selection,1,3)
exten => 1,3,Playback(sales-closed)
exten => 1,4,Playback(vm-goodbye)
exten => 1,5,Hangup
exten => 1,6,BackGround(for-quality-purposes)
exten => 1,7,Playback(this-call-may-be)
exten => 1,8,Playback(recorded)
exten => 1,9,Playback(pls-wait-connect-call)
exten => 1,10,SetMusicOnHold,default
exten => 1,11,SetCallerID,1
exten => 1,12,SetCallerIDName,Sales
exten => 1,13,Goto,queues|200|1
;
;2 Billing Dept
exten => 2,1,GotoIfTime(08:00-16:59|mon-fri|*|*?selection,2,6)
exten => 2,2,GotoIfTime(17:00-07:29|mon-fri|*|*?selection,2,3)
exten => 2,3,Playback(billing-closed)
exten => 2,4,Playback(vm-goodbye)
exten => 2,5,Hangup
exten => 2,6,Playback(for-quality-purposes)
exten => 2,7,Playback(this-call-may-be)
exten => 2,8,Playback(recorded)
exten => 2,9,Playback(pls-wait-connect-call)
exten => 2,10,SetMusicOnHold,default
exten => 2,11,SetCallerID,2
exten => 2,12,SetCallerIDName,Sales
exten => 2,13,Goto,queues|201|1
;
;3 Technical Support Dept
exten => 3,1,GotoIfTime(08:30-17:29|mon-fri|*|*?selection,3,6)
exten => 3,2,GotoIfTime(17:30-08:29|mon-fri|*|*?selection,3,3)
exten => 3,3,Playback(tech-closed)
exten => 3,4,Playback(vm-goodbye)
exten => 3,5,Hangup
exten => 3,6,Playback(for-quality-purposes)
exten => 3,7,Playback(this-call-may-be)
exten => 3,8,Playback(recorded)
exten => 3,9,Playback,(pls-wait-connect-call)
exten => 3,10,SetMusicOnHold,default
exten => 3,11,SetCallerID,3
exten => 3,12,SetCallerIDName,TechSupport
exten => 3,13,Goto,queues|202|1
;
;4 system stat
exten => 4,1,Answer
exten => 4,n,Playback,(systemstat)
exten => 4,n,Playback,(vm-goodbye)
exten => 4,n,Hangup
;
;5 jobs-postings
exten => 5,1,Answer
exten => 5,n,Playback(current-job-postings)
exten => 5,n,System(/usr/local/bin/curl -s )
exten => 5,n,Playback(/tmp/jobs)
exten => 5,n,System(rm /tmp/jobs.gsm)
exten => 5,n,Playback,(vm-goodbye)
exten => 5,n,Hangup
;
;6
exten => 6,1,Playback,(vm-goodbye)
exten => 6,n,Hangup
;
;7
exten => 7,1,Playback,(vm-goodbye)
exten => 7,n,Hangup
;
;8
exten => 8,1,Playback,(vm-goodbye)
exten => 8,n,Hangup
;
;9
exten => 9,1,Goto(day,s,2)
;
;--------------------------------------------------------
; END - IVR Menu
;--------------------------------------------------------
;--------------------------------------------------------
; Start Basic *XX Exten Logic
;--------------------------------------------------------
;--------------------------------------------------------
;Basic *XX exten nmbrs in the US + Canada For Asterisk
;Including macros that go with the exten
;--------------------------------------------------------
[basic]
;include => int-conf
;include => ext-conf
include => acr
include => cidb
include => scw
include => sca
include => cb
include => wcacb
include => cw
include => cf
include => scf
include => cfna
;include => cbb
include => dnd
include => vm
include => voicemail
;--------------------------------------------------------
; *01 - Do Not Disturb Over Ride Management only internl exten
;--------------------------------------------------------
[dnd-bypass]
exten => _*01XXXX,1,Dial(SIP/${ARG1}:2|20|r) ; 20sec timeout
exten => _*01XXXX,2,Voicemail(u${ARG1})
exten => _*01XXXX,3,Hangup
exten => _*01XXXX,102,Voicemail(b${ARG1})
exten => _*01XXXX,103,Hangup
;---------------------------------------------------------------------------------
; *1 - * System Stataus & exten testing : Agi Requires sysstatagi
;---------------------------------------------------------------------------------
[exten-test]
include => system-stat
include => say-exten
include => say-date-time
include => echo
include => tone
include => rec-playback
;
;----------------------------------------------------------
; Exten *1 - *9 New Exten Line Testing Tools
;----------------------------------------------------------
; *1 - System Status | Not setup yet on this system.
;----------------------------------------------------------
[system-stat]
exten => *1,1,AGI(systatagi)
exten => *1,n,Wait(1)
exten => *1,n,Playback(loadavgis)
exten => *1,n,SayDigits(${LOADAVGPRE})
exten => *1,n,Playback(point)
exten => *1,n,SayDigits(${LOADAVGSUF})
exten => *1,n,Wait(1)
exten => *1,n,Playback(thereare)
exten => *1,n,SayDigits(${NUMUSER})
exten => *1,n,Playback(userson)
exten => *1,n,Wait(1)
exten => *1,n,Hangup
;-----------------------------------------------------------
; *2 - Say Phone Number | works
;-----------------------------------------------------------
[say-exten]
exten => *2,1,Answer
exten => *2,n,Playback(your-exten-num-is)
exten => *2,n,SayDigits(${CALLERIDNUM})
exten => *2,n,Hangup
;-----------------------------------------------------------
; *3 - Say Date and Time | works
;-----------------------------------------------------------
[say-date-time]
exten => *3,1,Answer
exten => *3,n,Playback(the-current-time-is)
exten => *3,n,Datetime
exten => *3,n,Hangup
;-----------------------------------------------------------
; *4 - Echo Test | works
;-----------------------------------------------------------
[echo]
exten => *4,1,Answer
exten => *4,n,Playback(demo-echotest)
exten => *4,n,Playback(beep)
exten => *4,n,Echo
exten => *4,n,Playback(demo-echodone)
exten => *4,n,Hangup
;-----------------------------------------------------------
; *5 - Milliwatt Tone | works
;-----------------------------------------------------------
[tone]
exten => *5,1,Answer
exten => *5,n,Milliwatt
exten => *5,n,Hangup
;-----------------------------------------------------------
; *6 - Record Promt Test Format Gsm | works
;-----------------------------------------------------------
[rec-playback]
exten => *6,1,Answer
exten => *6,n,Wait(.5)
exten => *6,n,Record(record:gsm)
exten => *6,n,Wait(.5)
exten => *6,n,Playback(record)
exten => *6,n,Hangup
;-----------------------------------------------------------
; *7 - Music On Hold | works
;-----------------------------------------------------------
[moh]
exten => *7,1,Answer
exten => *7,n,MusicOnHold(default)
;------------------------------------------------------------
; *8 - Avaible for local mapping
;------------------------------------------------------------
;-----------------------------------------------------------
; *9 - Avaible for local mapping
;-----------------------------------------------------------
;-----------------------------------------------------------
; Exten *10 - *12 weather & news
;-----------------------------------------------------------
[weather]
;hazard
exten => *10,1,Answer
exten => *10,n,Playback(national-weather-service)
exten => *10,n,Playback(hazard-weather-outlook)
exten => *10,n,System(/usr/local/bin/curl -s http://www.srh.noaa.gov/tsa/crs/mp3/.mp3 > /tmp/.mp3)
exten => *10,n,MP3Player(/tmp/.mp3)
exten => *10,n,System(rm /tmp/.mp3 -f)
exten => *10,n,Playback(vm-goodbye)
exten => *10,n,Hangup
;
;local-ext
exten => *11,1,Answer
exten => *11,n,Playback(national-weather-service)
exten => *11,n,Playback(local-forcast)
exten => *11,n,Playback(Denver)
exten => *11,n,Playback(Colorado)
exten => *11,n,Playback(area)
exten => *11,n,System(/usr/local/bin/curl -s http://www.srh.noaa.gov/tsa/crs/mp3/.mp3 > /tmp/.mp3)
exten => *11,n,MP3Player(/tmp/.mp3)
exten => *11,n,System(rm -f /tmp/.mp3)
exten => *11,n,Playback(vm-goodbye)
exten => *11,n,Hangup
;
;regional
exten => *12,1,Answer
exten => *12,n,Playback(national-weather-service)
exten => *12,n,Playback(regional-forcast)
exten => *12,n,Playback()
exten => *12,n,Playback()
exten => *12,n,Playback()
exten => *12,n,Playback()
exten => *12,n,Playback()
exten => *12,n,Playback(area)
exten => *12,n,System(/usr/local/bin/curl -s http://www.srh.noaa.gov/tsa/crs/mp3/.mp3 > /tmp/.mp3)
exten => *12,n,MP3Player(/tmp/.mp3)
exten => *12,n,System(rm -f /tmp/OKCHWRFSM.mp3)
exten => *12,n,Playback(vm-goodbye)
exten => *12,n,Hangup
;
;-----------------------------------------------------------
; *13 - *20 - Avaible for local mapping
;-----------------------------------------------------------
;-----------------------------------------------------------
; *21 - *29 - Inturnal and Extenal Meet-Me Conference Rooms
;-----------------------------------------------------------
[int-conf]
exten => _*2[1-7],1,Answer
exten => _*2[1-7],n,Wait(1)
exten => _*2[1-7],n,MeetMe({$ARG1},pdcMs)
exten => _*2[1-7],n,4,Playback(vm-goodbye)
exten => _*2[1-7],n,5,Hangup
;
[ext-conf]
exten => _*2[8-9],1,Answer
exten => _*2[8-9],n,Wait(1)
exten => _*2[8-9],n,MeetMe({$ARG1},pdcMs)
exten => _*2[8-9],n,4,Playback(vm-goodbye)
exten => _*2[8-9],n,5,Hangup
;----------------------------------------------------------
; *30 - *39 - Reserved For Local Assignment
;----------------------------------------------------------
; *40 - *46 - Reserved For Local Assignment
;----------------------------------------------------------
; *47 - *48 Anonymous Call Rejection
;----------------------------------------------------------
[acr]
; *47 - Deactivation
exten => *47,1,DBdel(ACR/${CALLERIDNUM})
exten => *47,n,Answer
exten => *47,n,Wait(1)
exten => *47,n,Playback(anon-call-rej)
exten => *47,n,Playback(deactivated)
exten => *47,n,Hangup
;
; *48 - Activation
exten => *48,1,Set(DB(ACR/${CALLERIDNUM}=YES)
exten => *48,n,Answer
exten => *48,n,Wait(1)
exten => *48,n,Playback(anon-call-rej)
exten => *48,n,Playback(activated)
exten => *48,n,Hangup
;-----------------------------------------------------------
; *49 - *50 Caller Id Blocking
;-----------------------------------------------------------
[cidb]
; *49 - Deactivate
exten => *49,1,DBdel(CIDB/${CALLERIDNUM})
exten => *49,n,Answer
exten => *49,n,Wait(1)
exten => *49,n,Playback(caller-id-blk)
exten => *49,n,Playback(deactivated)
exten => *49,n,Hangup
;
; *50 - Activate
exten => *50,1,Set(DB(CIDB/${CALLERIDNUM}=YES)
exten => *50,n,Answer
exten => *50,n,Wait()
exten => *50,n,Playback(caller-id-blk)
exten => *50,n,Playback(activated)
exten => *50,n,Hangup
;-----------------------------------------------------------
;*51 -*52 Call Back Busy
;-----------------------------------------------------------
[cbb]
; *51 - Dectivate
exten => *51,1,DBdel(CBB/${CALLERIDNUM})
exten => *51,n,Answer
exten => *51,n,Wait(1)
exten => *51,n,Playback(de-activated)
exten => *51,n,Hangup
;
; *52 - Activate
exten => *52,1,Set(DB(CBB/${CALLERIDNUM}=YES)
exten => *52,n,Answer
exten => *52,n,Wait(1)
exten => *52,n,Playback(activated)
exten => *52,n,Hangup
;----------------------------------------------------------
;*53 - *55 Selective Call Waiting
;----------------------------------------------------------
[scw]
; *53 - Deactivate
exten => *53,1,DBdel(SCW/${CALLERIDNUM})
exten => *53,n,DBdel(SCWN/${CALLERIDNUM})
exten => *53,n,Answer
exten => *53,n,Wait(1)
exten => *53,n,Playback(deactivated)
exten => *53,n,Hangup
;
; *54 - Activate
exten => *54,1,Set(DB(SCW/${CALLERIDNUM}=YES)
exten => *54,n,Answer
exten => *54,n,Wait(1)
exten => *54,n,Playback(activated)
exten => *54,n,Hangup
;
; *55 - Selective Call Waiting Number
exten => _*55.,1,Set(DB(SCWN/${EXTEN:3}=${EXTEN})
exten => _*55.,n,Answer
exten => _*55.,n,Wait(1)
exten => _*55.,n,Playback(selective-call-waiting)
exten => _*55.,n,Playback(for)
exten => _*55.,n,Playback(extension)
exten => _*55.,n,SayDigits(${CALLERIDNUM})
exten => _*55.,n,Playback(is-set-to)
exten => _*55.,n,SayDigits(${EXTEN:3})
;--------------------------------------------------------------
; *56 - *58 Selective Call Acceptance
;--------------------------------------------------------------
[sca]
; *56 - Deactivation
exten => *56,1,DBdel(SCA/${CALLERIDNUM})
exten => *56,n,DBdel(SCAN/${CALLERIDNUM})
exten => *56,n,Answer
exten => *56,n,Wait(1)
exten => *56,n,Playback(deactivated)
exten => *56,n,Hangup
;
; *57 - Activation
exten => *57,1,Set(DB(SCA/${CALLERIDNUM}=YES)
exten => *57,n,Answer
exten => *57,n,Wait(1)
exten => *57,n,Playback(activated)
exten => *57,n,Hangup
;
; *58 - Selective Call exten number
exten => _*58.,n,Playback(pls-entr-sca-numb)
exten => _*58.,n,Set(DB(SCAN/${CALLERIDNUM}=${EXTEN:3})
exten => _*58.,n,Answer
exten => _*58.,n,Wait(1)
exten => _*58.,n,Playback(selective-call-acceptance)
exten => _*58.,n,Playback(for)
exten => _*58.,n,Playback(extension)
exten => _*58.,n,SayDigits(${CALLERIDNUM})
exten => _*58.,n,Playback(is-set-to)
exten => _*58.,n,SayDigits(${EXTEN:3})
;---------------------------------------------------------------------
;*60 - 63 - Reserved For Local Assignment
;---------------------------------------------------------------------
; *64 - *67 Calling Blocking
;---------------------------------------------------------------------
[cb]
; *64 - Deactivation
exten => *64,1,DBdel(DB(CB/${CALLERIDNUM})
exten => *64,n,Answer
exten => *64,n,Wait(1)
exten => *64,n,Playback(call-blocking)
exten => *64,n,Playback(deactivated)
exten => *64,n,Hangup
;
; *65 - Activation
exten => *65,1,Set(DB(CB/${CALLERIDNUM}=YES)
exten => *65,n,Answer
exten => *65,n,Wait(1)
exten => *65,n,Playback(call-blocking)
exten => *65,n,Playback(activated)
exten => *65,n,Hangup
;
; *66 - Calling Blocking add nmbr to database
exten => _*66.,1,Answer
exten => _*66.,n,Set(DB(CBN/${EXTEN:3}=${EXTEN:5})
exten => _*66.,n,Wait(1)
exten => _*66.,n,Playback(call-block-num)
exten => _*66.,n,SayDigits(${EXTEN:2:3})
exten => _*66.,n,Playback(has-been-set-to)
exten => _*66.,n,SayDigits(${EXTEN})
exten => _*66.,n,Hangup
;
; *67 - Calling Blocking Clear Number From Database
exten => _*67.,1,Answer
exten => _*67.,n,Set(DB(CBN/${EXTEN:3})
exten => _*67.,n,Wait(1)
exten => _*67.,n,Playback(call-blocking-num)
exten => _*67.,n,SayDigits(digits/${EXTEN:2:3})
exten => _*67.,n,Playback(has-been-cleared)
exten => _*67.,n,Hangup
;----------------------------------------------------------------
; *68 - Reserved For Local Assignment
;----------------------------------------------------------------
; *69 - Who Called Me & Call Back
;----------------------------------------------------------------
[wcacb]
exten => *69,1,Cut(CHANRES=CHANNEL|-|1)
exten => *69,n,Cut(EXTENSION=CHANRES|/|2)
exten => *69,n,Macro(calltrace,1,${EXTENSION})
[macro-calltrace]
exten => s,1,Answer
exten => s,2,Wait(.5)
exten => s,3,Set(${DB(LastCaller=LASTCALL/${ARG1})})
exten => s,4,GotoIf($[${LastCaller}]?5:10)
exten => s,5,SayDigits(${LastCaller})
exten => s,6,DigitTimeout(3)
exten => s,7,ResponseTimeout(7)
exten => s,8,Background(press-one-to-callback)
exten => s,9,Goto(12)
exten => s,10,Playback(unidentified-no-callback)
exten => s,11,Hangup
exten => s,12,NoOp
exten => 1,1,Goto(outbound,${LastCaller},1)
exten => i,1,Playback(pbx-invalid)
exten => i,2,Hangup
exten => t,1,Playback(vm-goodbye)
exten => t,2,Hangup
;-------------------------------------------------------------------------------
; *70 Call Waiting
;-------------------------------------------------------------------------------
[cw]
; *70 - Deactivate
exten => *70,1,DBdel(CW/${CALLERIDNUM})
exten => *70,n,Answer
exten => *70,n,Playback(call-waiting)
exten => *70,n,Playback(de-activated)
exten => *70,n,Hangup
;
; *71 - Activate
exten => *71,1,Set(DB(CW/${CALLERIDNUM}=YES)
exten => *71,n,Answer
exten => *71,n,Playback(call-waiting)
exten => *71,n,Playback(activated)
exten => *71,n,Hangup
;--------------------------------------------------------------------------------
; *72 - *73 Call Forwarding
;--------------------------------------------------------------------------------
[cf]
; * 72 - Deactivation
exten => *72,1,DBdel(CF/${CALLERIDNUM})
exten => *72,n,Answer
exten => *72,n,Wait(1)
exten => *72,n,Playback(call-fwd-cancelled)
exten => *72,n,Hangup
;
; *73 - Activation
exten => _*73.,1,Set(DB(CF/${CALLERIDNUM})=${EXTEN:3})
exten => _*73.,n,Answer
exten => _*73.,n,Playback(call-fwd-unconditional)
exten => _*73.,n,Playback(for)
exten => _*73.,n,Playback(extension)
exten => _*73.,n,SayDigits(${CALLERIDNUM})
exten => _*73.,n,Playback(is-set-to)
exten => _*73.,n,SayDigits(${EXTEN:3})
;--------------------------------------------------------------------------------
; *74 - *76 Selective Call Forwarding
;--------------------------------------------------------------------------------
[scf]
; *74 - DeActivation
exten => *74,1,DBdel(SCF/${CALLERIDNUM})
exten => *74,n,Answer
exten => *74,n,Wait(1)
exten => *74,n,Playback(selective-call-fwd)
exten => *74,n,Wait(1)
exten => *74,n,Playback(deactivated)
exten => *74,n,Hangup
;
; *75 - Selective Call Forwarding Number matching
;exten => _*75.,1,Set(DB(SCFE/${CALLERIDNUM})=${EXTEN:3})
;exten => _*75.,n,Answer
;exten => _*75.,n,Wait(1)
;exten => _*75.,n,Playback(selective-call-forwarding);
;exten => _*75.,n,Playback(for)
;exten => _*75.,n,Playback(extension)
;exten => _*75.,n,SayDigits(${CALLERIDNUM})
;exten => _*75.,n,Playback(is-set-to)
;exten => _*75.,n,SayDigits(${EXTEN:3})
;
; *76 - Selective Call Forwarding
exten => _*76.,1,Set(DB(SCFN/${EXTEN:3})=${EXTEN:4})
exten => _*76.,n,Answer
exten => _*76.,n,Wait(1)
exten => _*76.,n,Playback(selective-call-waiting)
exten => _*76.,n,Playback(for)
exten => _*76.,n,Playback(extension)
exten => _*76.,n,SayDigits(${CALLERIDNUM})
exten => _*76.,n,Playback(is-set-to)
exten => _*76.,n,SayDigits(${EXTEN:3})
exten => _*76.,n,Wait(.5)
exten => _*76.,n,Hangup
;
;------------------------------------------------------------------------------
; *77 - *78 Call Forwarding Don't Answer
;------------------------------------------------------------------------------
[cfna]
; *77 - Deactivation
exten => *77,1,DBdel(CFDNA/${CALLERIDNUM})
exten => *77,n,Answer
exten => *77,n,Playback(call-fwd-no-ans)
exten => *77,n,Playback(de-activated)
exten => *77,n,Hangup
; *78 - Activation
exten => _*78.,1,Set(DB(CFDNA/${CALLERIDNUM})=${EXTEN:3})
exten => _*78.,n,Answer
exten => _*78.,n,Playback(call-fwd-no-ans)
exten => _*78.,n,Playback(for)
exten => _*78.,n,Playback(extension)
exten => _*78.,n,SayDigits(${CALLERIDNUM})
exten => _*78.,n,Playback(is-set-to)
exten => _*78.,n,SayDigits(${EXTEN:3})
exten => _*78.,n,Wait(.5)
exten => _*78.,n,Hangup
;-------------------------------------------------------------------------------
; *79 - *80 Call Forwarding Busy
;-------------------------------------------------------------------------------
[cfb]
; *79 - Deactivation
exten => *79,1,DBdel(CFB/${CALLERIDNUM})
exten => *79,n,Answer
exten => *79,n,Playback(call-fwd-on-busy)
exten => *79,n,Playback(de-activated)
exten => *79,n,Hangup
;
; *80 - Activation
exten => _*80.,1,Set(DB(CFB/${CALLERIDNUM})=${EXTEN:3})
exten => _*80.,n,Answer
exten => _*80.,n,Playback(call-fwd-on-busy)
exten => _*80.,n,Playback(for)
exten => _*80.,n,Playback(extension)
exten => _*80.,n,SayDigits(${CALLERIDNUM})
exten => _*80.,n,Playback(is-set-to)
exten => _*80.,n,SayDigits(${EXTEN:3})
;-------------------------------------------------------------------------------
; *81 - *83 - Reserved For Local Assignment
;-------------------------------------------------------------------------------
; *84 - *87 Voicemail Checking / Retriving activate/deactivate voicemail.
;-------------------------------------------------------------------------------
[voicemail]
;voice mailman Promts for mailbox nmbr and paswwor
exten => *84,1,VoicemailMain
exten => *84,n,Hangup
;
;voice mailman with exten/callerid checking. if callerid/exten match
;prompts for password eslse prompts for mailbox/password
exten => *85,1,VoicemailMain(${CALLERIDNUM})
exten => *85,n,Hangup
;
[vm]
; *86 - Deactivation
exten => *86,1,DBdel(VM/${CALLERIDNUM})
exten => *86,n,Answer
exten => *86,n,Playback(deactivated)
exten => *86,n,Hangup
;
; *87 - Activation
exten => *87,1,Set(DB(VM/${CALLERIDNUM})=YES)
exten => *87,n,Answer
exten => *87,n,Playback(activated)
exten => *87,n,Hangup
;
[teliax-voicemenu]
switch => Realtime/teliax@extensions
[metcalf-voicemenu]
switch => Realtime/metcalf@extensions
[xenon-voicemenu]
switch => Realtime/xenon@extensions
[tmi-voicemenu]
switch => Realtime/tmi@extensions
[voicemail]
exten => s,1,Voicemail(u${VMBOX}@${VMDIR})
exten => s,2,Hangup
exten => o,1,VoicemailMain(${VMBOX})
exten => a,1,VoicemailMain(${VMBOX})
;--------------------------------------------------------------------------------
;*88 - *89 Do Not Disturb
;--------------------------------------------------------------------------------
[dnd]
; *88 - Deactivation
exten => *88,1,DBdel(DND/${CALLERIDNUM})
exten => *88,n,Answer
exten => *88,n,Playback(do-not-disturb)
exten => *88,n,Playback(de-activated)
exten => *88,n,Hangup
;
; *89 - Activation
exten => *89,1,Answer
exten => *89,n,Set(DB(DND/${CALLERIDNUM})=YES)
exten => *89,n,Playback(do-not-disturb)
exten => *89,n,Playback(activated)
exten => *89,n,Hangup
;
;--------------------------------------------------------
; *90 - *98 - Reserved For Local Assignment
;--------------------------------------------------------
[pbx-transfer]
exten => *99,1,Playback,pbx-transfer
exten => *99,2,Set(temp=SIP/${ARG1})
exten => *99,3,Goto(all-exten,${temp}|1)
exten => *99,103,Goto(s|4)
exten => *99,4,Set(dnd=DND/${ARG1})
exten => *99,5,Goto(s|7)
exten => *99,105,Goto(s|6)
exten => *99,6,Dial(SIP/${ARG1},60,tr)
exten => *99,7,Hangup
exten => *99,107,Hangup
;--------------------------------------------------------
; End - Basic *XX Exten Logic
;--------------------------------------------------------
;--------------------------------------------------------
; Start Basic Exten Logic
;--------------------------------------------------------
;--------------------------------------------------------
;Basic exten nmbrs For Asterisk
;Including macros that go with the exten
;--------------------------------------------------------
[basic-exten]
include => special
include => digium
include => parking
include => int-conf
include => prompts
include => tranfer-queue
include => agentlogin
;
;---------------------------------------------------------------
;special lines set functions
;---------------------------------------------------------------
[special]
; 311 - non-emerg not yet setup for e911 Non Emerg
exten => 311,1,Dial(SIP/local non emergancy nmbr here)
exten => 311,n,Congestion
exten => 311,n,Playback(ss-noservice)
exten => 311,4,Congestion
exten => 311,n,hangup
;
; 411 - Directory Asistance
exten => 411,1,Answer
exten => 411,n,Playback(411-not-supported)
exten => 411,n,Playback(Hangup-dial-areacod-5551212)
exten => 411,n,Congestion
exten => 411,n,hangup
;
; 511 Wakeup Service
exten => 511,1,Answer
exten => 511,n,AGI(callback.agi)
exten => 511,n,Hangup
;
;611 - Repair/TechSupport
exten => 611,1,Answer
exten => 611,2,Playback(thanks-call-tech-support)
exten => 611,3,Playback(for-quality-purposes)
exten => 611,4,Playback(this-call-may-be)
exten => 611,5,Playback(recorded)
exten => 611,6,Playback,(pls-wait-connect-call)
exten => 611,7,SetMusicOnHold,default
exten => 611,8,GotoIfTime(08.00-16:59|mon-fri|*|*?special,611,10)
exten => 611.9,GotoIfTime(17:00-07:59|mon-fri|*|*?special,611,11)
exten => 611,10,Goto,queues|202|1
exten => 611,11,Goto,queues|209|1
;
; 611 - Repair line
;exten => 611,1,Dial(IAX2/611|18|r)
;exten => 611,n,Voicemail(u611)
;exten => 611,n,Playback(vm-goodbye)
;exten => 611,n,Hangup
;
; 711 - State Relay for the Deaf
exten => 711,n,Dial(SIP/ or IAX2)
exten => 711,n,Congestion
exten => 711,102,Playback(ss-noservice)
exten => 711,n,hangup
;
; 811 - Toll Free Directory
exten => 811,1,Dial(IAX2/18005551212,30,r)
exten => 811,n,hangup
;
; 911 Emergancy
;exten => 911,1,Dial(SIP/)
;exten => 911,n,Congestion
;exten => 911,n,Playback(no-911-1)
;exten => 911,n,Congestion
;
[911] dial denver 911 This is a bad implamentation.
exten => 911,1,Dial(${ROCKYNET}/${EXTEN},60)
exten => 911,102,GoTo(3)
exten => 911,2,Busy()
exten => 911,3,Wait(10)
exten => 911,4,Hangup
;
;---------------------------------------------------------------
; Normal extensions
;---------------------------------------------------------------
; 2 - 92 Reserved For Local Assignment
;---------------------------------------------------------------
; 93 - 95 Put call in the queue for the next available agent
[tranfer-queue]
exten => 93,1,Answer
exten => 93,n,Wait,1
exten => 93,n,Queue(sales)
exten => 93,n,Hangup
;---------------------------------
exten => 94,1,Answer
exten => 94,n,Wait,1
exten => 94,n,Queue(billing)
exten => 94,n,Hangup
;---------------------------------
exten => 95,1,Answer
exten => 95,n,Wait,1
exten => 95,n,Queue(techsupport)
exten => 95,n,Hangup
;------------------------------------------------------------------
; 96 - 99 - Reserved For future queue tranfers
;------------------------------------------------------------------
;------------------------------------------------------------------
; 100-105 Queue Agents Login
; 1 Sales Turn on=100 Turn off=101
; 2 Tech Support Turn on=102 Turn off=103
; 3 Billing Turn on=104 Turn off=105
; 4 other queues Turn on=XXX Turn off=XXX
;------------------------------------------------------------------
[agentlogin]
exten => 100,1,AddQueueMember(sales|SIP/${CALLERIDNUM})
exten => 100,n,Playback(agent-loginok)
exten => 100,n,Hangup
exten => 101,1,RemoveQueueMember(sales|SIP/${CALLERIDNUM})
exten => 101,n,Playback(agent-loggedoff)
exten => 101,n,Hangup
;
exten => 102,1,AddQueueMember(billing|SIP/${CALLERIDNUM})
exten => 102,n,Playback(agent-loginok)
exten => 102,n,Hangup
exten => 103,1,RemoveQueueMember(billing|SIP/${CALLERIDNUM})
exten => 103,n,Playback(agent-loggedoff)
exten => 103,n,Hangup
;
exten => 104,1,AddQueueMember(techsupport|SIP/${CALLERIDNUM})
exten => 104,n,Playback(agent-loginok)
exten => 104,n,Hangup
exten => 105,1,RemoveQueueMember(techsupport|SIP/${CALLERIDNUM})
exten => 105,n,Playback(agent-loggedoff)
exten => 105,n,Hangup
;
exten => 108,1,AddQueueMember(techsupport|SIP/${CALLERIDNUM})
exten => 108,n,Playback(agent-loginok)
exten => 108,n,Hangup
exten => 109,1,RemoveQueueMember(techsupport|SIP/${CALLERIDNUM})
exten => 109,n,Playback(agent-loggedoff)
exten => 109,n,Hangup
;
;-------------------------------------------------------------------
; 106 - 199 - Reserved For Local Assignment
;-------------------------------------------------------------------
; 200 - 202 Basic Call Queue's 200-202
[queues]
exten => 200,1,Answer
exten => 200,n,Queue(sale|TtH)
exten => 200,n,WaitMusicOnHold(45)
exten => 200,n,Voicemail(u200)
exten => 200,n,Playback(vm-goodbye)
exten => 200,n,Hangup
;
exten => 201,1,Answer
exten => 201,n,Queue(billing|TtH)
exten => 201,n,WaitMusicOnHold(45)
exten => 201,n,Voicemail(u201)
exten => 201,n,Playback(vm-goodbye)
exten => 201,n,Hangup
;
exten => 202,1,Answer
exten => 202,n,Queue(techsupport|TtH)
exten => 202,n,WaitMusicOnHold(45)
exten => 202,n,Voicemail(u202)
exten => 202,n,Playback(vm-goodbye)
exten => 202,n,Hangup
;
exten => 209,1,Answer
exten => 209,n,Queue(techsupport|TtH)
exten => 209,n,WaitMusicOnHold(45)
exten => 209,n,Voicemail(u209)
exten => 209,n,Playback(vm-goodbye)
exten => 209,n,Hangup
;
;--------------------------------------------------------------------
; 203 - 210 - Reserved For Local Assignment
;--------------------------------------------------------------------
; 211 -used
;--------------------------------------------------------------------
; 212 - 299 - Reserved For Local Assignment
;-------------------------------------------------------------------------
; 300 - 310 - Reserved For Local Assignment
;-------------------------------------------------------------------------
; 311 used
;-------------------------------------------------------------------------
; 312 - 399 Reserved For Local Assignment
;-------------------------------------------------------------------------
; 400 - 410 Reserved For Local Assignment
;-------------------------------------------------------------------------
; 411 used
;--------------------------------------------------------------------------
; 412 - 499 - Reserved For Local Assignment
;---------------------------------------------------------------------------
; 500 - 510 - Reserved For Local Assignment
;----------------------------------------------------------------------------
; 511 used
;----------------------------------------------------------------------------
; 512 - 599 Reserved For Local Assignment
;----------------------------------------------------------------------------
; 601 - 610 Reserved For Local Assignment
;----------------------------------------------------------------------------
; 611 used
;------------------------------------------------------------------------------
; 612 - 699 Reserved For Local Assignment
;------------------------------------------------------------------------------
; 700 - 709 Call Parking on Asterisk also includes blind parking
[parking]
exten => 700,1,Answer
exten => 700,n,SetMusicOnHold(default)
exten => 700,n,ParkAndAnnounce(PARKED|60|SIP/${EXTEN}|70|4)
exten => _70X,1,ParkedCall(${EXTEN})
;---------------------------------------------------------------------------------
; 711 - 799 Reserved For Local Assignmen
;---------------------------------------------------------------------------------
; 798 - 799 Confrance Stream Linsten to confrance call only
; requires ices and icecast.
;---------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
; 800 - 899 Reserved For Local Assignment
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
; 900 - 910 Reserved For Local Assignment
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
; 912 - 986 Reserved For Local Assignment
;-------------------------------------------------------------------------------
; 987 - Disa using voicemail passowords via agi
;-------------------------------------------------------------------------------
;[outside-inside]
;exten => 987,1,Answer ; 468 - INT
;exten => 987,n,Wait(1)
;exten => 987,n,Playback(please-enter-the)
;exten => 987,n,Playback(extension)
;exten => 987,n,Read(int_extension,then-press-pound)
;exten => 987,n,Playback(pls-enter-vm-password)
;exten => 987,n,Read(vm_passwd,then-press-pound)
;exten => 987,n,AGI(internal_authphp|${int_extension},${vm_passwd})
;exten => 987,n,Set(CALLERIDNUM=${int_extension})
;exten => 987,n,DISA(no-password|from-internal)
;exten => 987,101,Playback(vm-incorrect)
;exten => 987,102,Goto(3)
;
;exten => *987,1,Answer
;exten => *987,2,Read(ext_num,vm-extension)
;exten => *987,3,Wait(1)
;exten => *987,4,Read(ext_pwd,vm-password)
;exten => *987,5,Wait(1)
;exten => *987,6,agi,chk_vm_pwd.agi|/etc/asterisk/voicemail.conf|${ext_num}|${ext_pwd}
;exten => *987,7,GotoIf($["${result}" = "0"]?20:30)
;exten => *987,20,Playback(agent-loginok) ;
;exten => *987,21,Hangup()
;exten => *987,30,PlayBack(invalid)
;exten => *987,31,Hangup()
;-------------------------------------------------------------------------------
; 988 & 989 Pront recording and and special prompt recording + enable disable
;-------------------------------------------------------------------------------
[prompts]
;-----------------------------------------------------
;988 - Prompt management
;-----------------------------------------------------
exten => 988,1,Goto(prompt-management,s,1)
exten => 989,1,Goto(special-message,s,1)
;
[prompt-management]
; Flexible prompt recording
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,DigitTimeout(5)
exten => s,n,Read(PROMPT_NUMBER|enter-prompt-number|3)
exten => s,n,SayDigits(${PROMPT_NUMBER})
exten => s,n,BackGround(T-to-hear-cur-ancmnt)
exten => s,n,BackGround(press-1)
exten => s,n,BackGround(T-to-rec-ancmnt)
exten => s,n,BackGround(press-2)
;
exten => t,1,Playback(goodbye)
exten => t,n,Hangup
;
exten => i,1,Playback(pbx-invalid)
exten => i,n,Goto(s,5)
;
exten => 1,1,Playback(beep)
exten => 1,n,Playback(bsky-prompt-${PROMPT_NUMBER})
exten => 1,n,Playback(beep)
exten => 1,n,Goto(s,6)
;
exten => 2,1,Goto(prompt-management-record,s,1)
exten => *,1,Playback(goodbye)
exten => *,n,Hangup
;
[prompt-management-record]
; New prompt recording
exten => s,1,Playback(vm-intro)
exten => s,n,Record(tmp-newprompt:wav)
exten => s,n,Playback(beep)
exten => s,n,BackGround(tmp-newprompt)
exten => s,n,BackGround(save-announce-press)
exten => s,n,BackGround(digits/1)
exten => s,n,BackGround(to-rerecord-announce)
exten => s,n,BackGround(digits/2)
;
exten => i,1,Playback(invalid)
exten => i,n,Goto(s,3)
;
exten => t,1,Goto(s,3)
;
exten => 1,1,System(cp -f /var/lib/asterisk/sounds/tmp-newprompt.wav /var/lib/asterisk/sounds/prompt-${PROMPT_NUMBER}.wav)
exten => 1,n,Playback(your-msg-has-been-saved)
exten => 1,n,Goto(app-prompt-management,s,4)
;
exten => 2,1,Goto(s,1)
;
exten => *,1,Goto(app-prompt-management,s,4)
;-------------------------------------------------------
; 989 - Special announcement admin (Easy IVR)
;-------------------------------------------------------
;exten => 989,1,Goto(special-message,s,1)
;
[special-message]
; Record/replay/turn on/off the special message played before ACD queue calls
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,DigitTimeout(5)
exten => s,n,BackGround(T-to-hear-cur-ancmnt)
exten => s,n,BackGround(press-1)
exten => s,n,BackGround(T-to-rec-ancmnt)
exten => s,n,BackGround(press-2)
exten => s,n,BackGround(T-to-enable-ancmnt)
exten => s,n,BackGround(press-3)
exten => s,n,BackGround(T-to-disable-ancmnt)
exten => s,n,BackGround(press-4)
;
exten => t,1,Playback(goodbye)
exten => t,2,Hangup
;
exten => i,1,Playback(pbx-invalid)
exten => i,2,Goto(s,4)
;
exten => 1,1,Playback(special-message)
exten => 1,2,Goto(s,4)
;
exten => 2,1,Goto(special-message-record,s,1)
;
exten => 3,1,Set($DB(SpecialMessage/1=1)})
exten => 3,n,Playback(enabled)
exten => 3,n,Goto(s,4)
;
exten => 4,1,DBdel(SpecialMessage/1)
exten => 4,n,Playback(disabled)
exten => 4,n,Goto(s,4)
;
exten => *,1,Playback(goodbye)
exten => *,2,Hangup
;
[special-message-record]
; Record the new special message
exten => s,1,Playback(vm-intro)
exten => s,n,Record(new-special-message:wav)
exten => s,n,Playback(beep)
exten => s,n,BackGround(new-special-message)
exten => s,n,BackGround(save-announce-press)
exten => s,n,BackGround(digits/1)
exten => s,n,BackGround(to-rerecord-announce)
exten => s,n,BackGround(digits/2)
exten => i,1,Playback(invalid)
exten => i,2,Goto(s,3)
;
exten => t,1,Goto(s,3)
;
exten => 1,1,System(cp -f /var/lib/asterisk/sounds/new-special-message.wav /var/lib/asterisk/sounds/special-message.wav)
exten => 1,2,Playback(your-msg-has-been-saved)
exten => 1,3,Goto(app-special-message,s,1)
;
exten => 2,1,Goto(s,1)
;
exten => *,1,Goto(special-message,s,1)
;
[macro-check-special-message]
; If the flag is set, play the special message, otherwise continue
exten => s,1,Set(${DB(SpecialMessage=SpecialMessage/1)})
exten => s,2,Playback(system-status-msg)
exten => s,3,Playback(special-message)
exten => s,4,Ringing
exten => s,5,Wait(4)
exten => s,102,Noop
;
;------------------------------------------------------------------------
; 997 - 999 Reserved For Assignment
;------------------------------------------------------------------------
;------------------------------------------------------------------------
; End - Basic Exten Logic
;------------------------------------------------------------------------
;------------------------------------------------------------------------
; Start - System Macro's area
;------------------------------------------------------------------------
[[macro-record-on]
exten => s,1,AGI(set-timestampagi)
exten => s,2,Set(CALLFILENAME=${timestamp}-${ARG2}-${ARG1})
exten => s,3,Monitor(gsm,${CALLFILENAME})
;
[macro-record-cleanup]
exten => s,1,GotoIf($[${CALLFILENAME} = ${NULL}]?6:2)
exten => s,2,Set(CFBASE=/var/spool/asterisk/monitor/${CALLFILENAME})
; wmix takes the two seperate wavs and mixes them into a single stream
; It is available in my wavetools rpm
exten => s,3,System(/usr/bin/wmix ${CFBASE}-inwav ${CFBASE}-outwav > ${CFBASE})
exten => s,4,System(/bin/rm ${CFBASE}-inwav ${CFBASE}-outwav)
; toast compresses the wav files into a gsm file
; It is available in my gsm rpm
exten => s,5,System(/usr/bin/toast -F ${CFBASE})
exten => s,6,NoOp
;
;--------------------------------------------------------
; Start - Outbound mapping
;--------------------------------------------------------
;-------------------------------------------------------
; Start - 900/976 Blocking
;-------------------------------------------------------
[blocked]
exten => _900NXXXXXX,1,Playback(ss-noservice)
exten => _1NXX976XXXX,1,Playback(ss-noservice)
exten => _NXX976XXXX,1,Playback(ss-noservice)
exten => _976XXXX,1,Playback(ss-noservice)
;--------------------------------------------------------
; End - 900/976 Blocking
;--------------------------------------------------------
;Outbound Dialing PLan.
;--------------------------------------------------------
;
;-------------------------------------------------------
;End - Outbound mapping
;-------------------------------------------------------
;------------------------------------------------------
; Start - User Permissions/Privilages
;------------------------------------------------------
[admin]
include => dnd-bypass
include => basic
include => basic-exten
include => exten-test
include => all-exten
include => outbound
include => special
include => weather
;
;------------------------------------------------------
; End - User Permissions/Privilages
;------------------------------------------------------
;------------------------------------------------------
;End Of extensionsconf File
;------------------------------------------------------