All pastes #433400 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-04-10 19:37 UTC
rendered paste body
;Vertical Service Codes
;Code Definitions
[vsc]

;Stuff I added for line testing.
-----------------------------------------------------
; *1 - System Status recorded file
;----------------------------------------------------
; *1 - System Status
exten => *1,1,Answer 
exten => *1,n,Wait(.5) 
exten => *1,n,Playback(/usr/local/share/asterisk/sounds/custom/systemstatus) 
exten => *1,n,Wait(.5) 
exten => *1,n,Macro(Hangup)

; **1 - System status record
exten => *1*,1,Answer 
exten => *1*,n,Wait(2) 
exten => *1*,n,Record(/usr/local/share/sounds/custom/systemstatus:gsm) 
exten => *1*,n,Wait(2) 
exten => *1*,n,Playback(/usr/local/share/asterisk/sounds/custom/systemstatus) 
exten => *1*,n,Wait(2) 
exten => *1*,n,Macro(Hangupcall)	
;
;-----------------------------------------------------------
; *2 - Say Phone Number
;-----------------------------------------------------------
;[say-exten]
exten => *2,1,Answer
exten => *2,n,Playback(your-exten-num-is)
exten => *65,n,SayDigits(${CALLERID(number)})
exten => *2,n,Macro(hangupcall)
;
;-----------------------------------------------------------
; *3  - Say Date and Time
;-----------------------------------------------------------
exten => *3,1,Answer
exten => *3,2,Playback(at-tone-time-exactly)
exten => *3,3,SayUnixTime(,,IMp)
exten => *3,4,Playback(beep)
exten => *3,5,Macro(hangupcall)
;
;-----------------------------------------------------------
; *4 - Echo Test
;-----------------------------------------------------------
;[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,Macro(hangupcall)
;
;-----------------------------------------------------------
; *5 - Milliwatt Tone
;-----------------------------------------------------------
;[tone]
exten => *5,1,Answer
exten => *5,n,Milliwatt
exten => *5,n,Macro(hangupcall)
;
;-----------------------------------------------------------
; *6 - Record Promt Test Format Gsm
;-----------------------------------------------------------
;[rec-playback]
exten => *6,1,Answer
exten => *6,n,Wait(1)
exten => *6,n,Record(record:gsm)
exten => *6,n,Wait(1)
exten => *6,n,Playback(record)
exten => *6,n,Macro(hangupcall)
;
;-----------------------------------------------------------
; *7 - Music On Hold 
;-----------------------------------------------------------
;[moh]
exten => *7,1,Answer
exten => *7,n,MusicOnHold(default)
exten => *7,n,Macro(hangupcall)
;
;------------------------------------
;*8  Says Time & plays Tone & Repeat's
;------------------------------------
;[custom-Repeating-clock] ; repeates time.
exten => *8,1,ringing 
exten => *8,2,Set(FutureTime=$[${EPOCH} + 8]) 
exten => *8,3,Set(FutureTimeMod=$[${FutureTime} % 10]) 
exten => *8,4,Set(FutureTime=$[${FutureTime} - ${FutureTimeMod}]) 
exten => *8,5,Set(MaxConnectTime=$[${FutureTime} + 180]) 
exten => *8,6,Set(FutureTimeMod=$[${FutureTime} - ${EPOCH}]) 
exten => *8,7,GotoIf($["${FutureTimeMod}" < "0"]?10:8) 
exten => *8,8,wait(1) 
exten => *8,9,goto(6) 
exten => *8,10,Answer 
exten => *8,11,Set(FutureTime=$[${FutureTime} + 10]) 
exten => *8,12,Set(FutureTimeMod=$[${FutureTime} % 60]) 
exten => *8,13,wait(1) 
exten => *8,14,playback(at-tone-time-exactly) 
exten => *8,15,SayUnixTime(${FutureTime},,I) 
exten => *8,16,SayUnixTime(${FutureTime},,M) 
exten => *8,17,GotoIf($["${FutureTimeMod}" = "0"]?18:20) 
exten => *8,18,SayUnixTime(${FutureTime},,p) 
exten => *8,19,goto(23) 
exten => *8,20,playback(and) 
exten => *8,21,SayUnixTime(${FutureTime},,S) 
exten => *8,22,playback(seconds) 
exten => *8,23,Set(FutureTimeMod=$[${FutureTime} - ${EPOCH}]) 
exten => *8,24,GotoIf($["${FutureTimeMod}" < "1"]?27:25) 
exten => *8,25,wait(1) 
exten => *8,26,goto(23) 
exten => *8,27,playback(beep) 
exten => *8,28,Set(FutureTimeMod=$[${MaxConnectTime} - ${EPOCH}]) 
exten => *8,29,GotoIf($["${FutureTimeMod}" < "1"]?30:11) 
exten => *8,30,Hangup
;
;-----------------------------------------------------------
; *9 - Avaible for local mapping
;-----------------------------------------------------------
[app-wakeup]
exten => *9,1,Macro(user-callerid,)
exten => *9,n,Answer
exten => *9,n,Wait(1)
exten => *9,n,AGI(wakeup.php)
exten => *9,n,Macro(hangupcall,)
;
;-----------------------------------------------------------
; *10 - Reginal & Local Weather 
;-----------------------------------------------------------
[app-weather]
exten => *10,1,Macro(user-callerid,)
exten => *10,n,Answer
exten => *10,n,Wait(1)
exten => *10,n,Set(TIMEOUT(digit)=7)
exten => *10,n,Set(TIMEOUT(response)=10)
exten => *10,n,Flite('At the beep enter the five digit zip code for the weather report you wish to retrieve.')
exten => *10,n,Read(ZIPCODE,beep,5,,,,,)
exten => *10,n,Flite('Please hold a moment while we contact the National Weather Service for your report.')
exten => *10,n,AGI(nv-weather-zip.php|${ZIPCODE})
exten => *10,n,Noop(Wave file: ${TMPWAVE})
exten => *10,n,Playback(${TMPWAVE})
exten => *10,n,Macro(hangupcall,)
;
;----------------------------------------------------------
; *11 - System Status via agi
;----------------------------------------------------------
;[system-stat]
exten => *11,1,AGI(systatagi)
exten => *11,n,Wait(1)
exten => *11,n,Playback(loadavgis)
exten => *11,n,SayDigits(${LOADAVGPRE})
exten => *11,n,Playback(point)
exten => *11,n,SayDigits(${LOADAVGSUF})
exten => *11,n,Wait(1)
exten => *11,n,Playback(thereare)
exten => *11,n,SayDigits(${NUMUSER})
exten => *11,n,Playback(userson)
exten => *11,n,Wait(1)
exten => *11,n,Macro(hangupcall)
;
;-----------------------------------------------------------
; *12 - Current Company Job Listings not yet working
;-----------------------------------------------------------
[jobs-postings]
exten => *12,1,Answer 
exten => *12,n,Playback(current-job-postings) 
exten => *12,n,System(/usr/local/bin/curl -s )
exten => *12,n,Wait(1) 
exten => *12,n,MP3Player(/tmp/.mp3) 
exten => *12,n,System(rm /tmp/ .mp3 -f) 
exten => *12,n,Playback(vm-goodbye)
exten => *12,n,Macro(hangupcall)
;
;-------------------------------------------------------------
; 12 - 18 - Reserved For Local Assignment
;-----------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
Inward Voice Activated Services (*00 English, *01 French)
IVAS enables a subscribing business to provide automated voice activated routing for inbound English or French speaking calls 
(i.e., separate codes for the same service in each language). IVAS will initially consist of the following services:

* Voice Activated Premier Dialing (VAPD) which allows customers to contact subscribing businesses by speaking the business 
  name or service.

* Voice Activated Blue Pages (VABP) which allows customers to request access to government services.

* Voice Activated Auto Attendant (VAAA) which provides enhancements to Auto Attendant applications by providing a voice
  recognition interface in place of Touch Tone.

* Voice Activated Audio Text (VAAT) provides users ability to request specific information from a business.

* Voice Activated Interactive Voice Response (VAIVR) which allows the caller to interact with a subscriber's specific 
  application in a prescribed manner.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
Deactivation/Activation of In-Session Activation (ISA) on a per line basis (*02)
Allows a subscriber to deactivate or activate (i.e., toggle) the In-Session Activation feature on a per line basis. ISA 
is feature that gives the caller a menu of call completion services using voice prompts when the call encounters a busy 
or no-answer condition.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
Deactivation of In-Session Activation (ISA) on a per call basis (*03)
Allows a subscriber to deactivate the In-Session Activation feature on a per call basis. When the call is completed, ISA 
reverts back to the active state. ISA is a feature that gives the caller a menu of call completion services using voice 
prompts when the call encounters a busy or no-answer condition.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
*05 - *39 avaible
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Change Forward-To Number for Customer/Programmable Call Forwarding Busy Line (*40)
;Access Code followed by directory number is used to change the forwarded-to number for Call Forwarding Busy Line (CFBL). The state 
;of CFBL is not changed when this access code is used. This feature will utilize the activation code of *90 and deactivation code *91 
;with the following exceptions:activation will not require/allow the identification of a forwarded-to directory number and deactivation 
;will not clear the forwarded-to directory number.
;--------------------------------------------------------------------------------------------------------------------------------
exten => _*40.,1,Answer
exten => _*40.,n,Wait(1)
exten => _*40.,n,Macro(user-callerid,)
exten => _*40.,n,Set(DB(CPCFB/${CALLERID(number)})=${EXTEN:3})
exten => _*40.,n,Playback(call-fwd-no-ans&for&extension)
exten => _*40.,n,SayDigits(${CALLERID(number)})
exten => _*40.,n,Playback(is-set-to)
exten => _*40.,n,SayDigits(${EXTEN:3})
exten => _*40.,n,Macro(hangupcall,)

;--------------------------------------------------------------------------------------------------------------------------------
Six-Way Conference Calling Activation (*41)
Allows the subscriber to originate a six-way conference call. Customers will enter this code prior to the first directory number 
added into the conference. Each subsequent member of the conference is added with a flash hook. This code is used to eliminate 
action conflicts with other flash hook originated features.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Change Forward-To Number for Customer Programmable Call Forwarding Don't Answer (*42)
;Access Code followed by directory number is used to change the forwarded-to number for Call Forwarding Don't Answer (CFDA). The 
state of CFDA is not ;changed when this access code is used. This feature will utilize the activation code of *92 and deactivation 
code *93 with the following exceptions:activation will not require/allow the identification of a forwarded-to directory number and 
deactivation will not clear the forwarded-to directory number.
;--------------------------------------------------------------------------------------------------------------------------------
exten => _*42.,1,Answer
exten => _*42.,n,Wait(1)
exten => _*42.,n,Macro(user-callerid,)
exten => _*42.,n,Set(DB(CPCFDA/${CALLERID(number)})=${EXTEN:3})
exten => _*42.,n,Playback(call-fwd-no-ans&for&extension)
exten => _*42.,n,SayDigits(${CALLERID(number)})
exten => _*42.,n,Playback(is-set-to)
exten => _*42.,n,SayDigits(${EXTEN:3})
exten => _*42.,n,Macro(hangupcall,

;--------------------------------------------------------------------------------------------------------------------------------
Drop last member of Six-Way Conference Call (*43)
Provides the subscriber establishing a six-way conference to terminate the last party added to the call. This frees the port for 
an additional party when the last party wasn't reachable.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Voice Activated Dialing (*44)
;Access to the Voice Activated Dialing (VAD) directory. Customers will dial this code to access their VAD directory in order to add, 
;delete or review the names and numbers
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Voice Dialing Extended Dial Tone (*45)
;Extend dial tone for Voice Activated Dialing (VAD). Customers will dial this code to extend the length of time in which dial 
;tone is heard after going off-hook so that various Customer Premise Equipment (CPE, i.e., fax and modems) will work properly.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
French Voice Activated Network Control (*46)
Provides the subscriber access to Voice Activated Network Control (VANC) via the French language. Subscribers will dial this 
code to access VANC so that they can say a name or command in French that will be activated, deactivated or provide access 
to a service, e.g., Call Forwarding, Call Trace, etc.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Override Feature Authorization (*47)
;Allows a subscriber to override a Feature Authorization activated on a line which restricts 1+ calls from that line. Feature 
;Authorization may be overriden by dialing *47 and a Personal Identification Number ;(PIN) and then dialing a 1+ call after 
;receiving a second dial tone.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Override Do Not Disturb (*48)
;Allows a subscriber to override the Do Not Disturb feature which has been activated on a line. After receiving a message 
;indicating the station is in a Do Not Disturb condition, the subscriber may override the condition by dialing *48 and then 
;a Personal Identification Number (PIN) thus allowing the call to be completed in the normal manner.
;--------------------------------------------------------------------------------------------------------------------------------
exten => _*48XXXX,1,Dial(SIP/${ARG1}:3|20|r) ; 20sec timeout
exten => _*48XXXX,n,Voicemail(u${ARG1})
exten => _*48XXXX,n,Hangup

;--------------------------------------------------------------------------------------------------------------------------------
Long Distance Signal (*49)
Extended period activation/deactivation (toggle) of basic 1FR/1MR long distance signal ringing/call waiting tones.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Voice Activated Network Control (*50)
;Access to Voice Activated Network Control (VANC). Customers will dial this code to access VANC so that they can say a name or
;command that will be activated, deactivated or to access a service.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
*51 - Who Called Me?
Who Called Me? (*51)
Provides the subscriber with the directory number (DN), date, and time of unanswered calls. 
;--------------------------------------------------------------------------------------------------------------------------------
exten => *51,1,Macro(user-callerid)
exten => *51,2,Answer
exten => *51,3,Wait(1)
exten => *51,4,Background(info-about-last-call)
exten => *51,5,Background(telephone-number)
exten => *51,6,Set(lastcaller=${DB(CALLTRACE/${CALLERID(number)})})
exten => *51,7,GotoIf($[${lastcaller}]?8:10)
exten => *51,8,SayDigits(${lastcaller})
exten => *51,9,Macro(hangupcall)
exten => *51,10,Playback(from-unknown-caller)
exten => *51,11,Playback(unidentified-no-callback)
exten => *51,12,Macro(hangupcall)

;--------------------------------------------------------------------------------------------------------------------------------
Single Line Variety Package (SVP) - Call Hold (*52)
Gives the subscriber the capability of placing a call on hold so that the call may be continued from another extension.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
Single Line Variety Package (SVP) - Distinctive Ring B (*53)
Allows a subscriber to select, by way of distinctive ringing, the particular person or extension that the subscriber wishes to alert.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
Single Line Variety Package (SVP) - Distinctive Ring C (*54)
Allows a subscriber to select, by way of distinctive ringing, the particular person or extension that the subscriber wishes to alert.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
Single Line Variety Package (SVP) - Distinctive Ring D (*55)
Allows a subscriber to select, by way of distinctive ringing, the particular person or extension that the subscriber wishes to alert.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Change Forward-To Number for ISDN Call Forwarding (*56)
;Access code followed by directory number (DN) is used to change the Forward-To number for Call Forwarding Variable feature button. 
The state of Call ;Forwarding Variable feature button is not changed when this access code is utilized.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Customer Originated Trace (*57)
;Provides the recipient of an obscene, harassing, or threatening call the ability to request an auto-trace of the last call received.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;ISDN MBKS Manual Exclusion (*58 Activation, *59 Deactivation)
;Access code allows a Multibutton Key Set (MBKS) user or an analog set user whose telephone number is shared on another ISDN MBKS
to inhibit other stations from picking up a call on hold or bridging onto a call that is active at the station.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Selective Call Rejection (*60 Activation, *80 Deactivation)
;Allows the subscriber to have incoming calls from a limited number of calling parties rejected by the terminating switching system.
;--------------------------------------------------------------------------------------------------------------------------------
exten => _*60.,1,Macro(user-callerid)
exten => _*60.,n,Set(DB(BLACKLIST/${CALLERID(number)})=${EXTEN:3})
exten => _*60.,n,Answer
exten => _*60.,n,Wait(1)
exten => _*60.,n,Playback(blacklist-add&for&extension)
exten => _*60.,n,SayDigits(${CALLERID(number)})
exten => _*60.,n,Playback(is-set-to)
exten => _*60.,n,SayDigits(${EXTEN:3})
exten => _*60.,n,Macro(hangupcall)

;--------------------------------------------------------------------------------------------------------------------------------
;Distinctive Ringing/Call Waiting (*61 Activation, *81 Deactivation)
;Allows the subscriber to have incoming calls from a limited number of calling parties identified using distinctive alerting treatment.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Selective Call Waiting (*62)
;Provides the subscriber the ability to provide a Call Waiting signal to a predetermined list of directory numbers specified by 
;the subscriber. Callers not on the predetermined list will receive busy tone.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *62,1,Answer
exten => *62,n,Wait(1)
exten => *62,n,Macro(user-callerid)
exten => *62,n,Set(DB(SCW/${CALLERID(number)})=ENABLED)
exten => *62,n,Playback(selective-call-waiting&activated)
exten => *62,n,Macro(hangupcall)
exten => _*62.,1,Macro(user-callerid)
exten => _*62.,n,Set(DB(SCW/${CALLERID(number)})=${EXTEN:3})
exten => _*62.,n,Answer
exten => _*62.,n,Wait(1)
exten => _*62.,n,Playback(selective-call-waiting-unconditional&for&extension)
exten => _*62.,n,SayDigits(${CALLERID(number)})
exten => _*62.,n,Playback(is-set-to)
exten => _*62.,n,SayDigits(${EXTEN:3})
exten => _*62.,n,Macro(hangupcall)

;*63 - Selective Call Forwarding Activation
;--------------------------------------------------------------------------------------------------------------------------------
Selective Call Forwarding (*63 Activation, *83 Deactivation)
Allows the subscriber to have incoming calls from a limited number of calling parties forwarded to a prespecified remote station.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *63,1,Answer
exten => *63,n,Wait(1)
exten => *63,n,Macro(user-callerid)
exten => *63,n,Set(DB(SCF/${CALLERID(number)})=ENABLED)
exten => *63,n,Playback(selective-call-waiting&activated)
exten => *63,n,Macro(hangupcall)
exten => _*63.,1,Set(DB(SCF/${CALLERIDNUM})=${EXTEN:3})})
exten => _*63.,n,Answer
exten => _*63,n,Wait(1)
exten => _*63.,n,Playback(selective-call-forwarding&for&extension)
exten => _*63.,n,SayDigits(${CALLERIDNUM})
exten => _*63.,n,Playback(is-set-to)
exten => _*63.,n,SayDigits(${EXTEN:3})
exten => _*63.,n,Macro(hangupcall)

;--------------------------------------------------------------------------------------------------------------------------------
Selective Call Acceptance (*64 Activation, *84 Deactivation)
Provides the subscriber the ability to block calls from all but a predetermined list of directory numbers specified by the 
subscriber. Unaccepted callers may receive an announcement or be routed to a predetermined directory number.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *64,1,Answer
exten => *64,n,Wait(1)
exten => *64,n,Macro(user-callerid)
exten => *64,n,Set(DB(SCA/${CALLERID(number)})=ENABLED)
exten => *64,n,Playback(selective-call-accept&activated)
exten => *64,n,Macro(hangupcall)
exten => _*64.,1,Macro(user-callerid)
exten => _*64.,n,Set(DB(SCA/${CALLERID(number)})=${EXTEN:3})
exten => _*64.,n,Answer
exten => _*64.,n,Wait(1)
exten => _*64.,n,Playback(selective-call-accept&for&extension)
exten => _*64.,n,SayDigits(${CALLERID(number)})
exten => _*64.,n,Playback(is-set-to)
exten => _*64.,n,SayDigits(${EXTEN:3})
exten => _*64.,n,Macro(hangupcall)

;--------------------------------------------------------------------------------------------------------------------------------
Calling Number Delivery (*65 Activation, *85 Deactivation)
Provides the subscriber with the directory number (DN) of the calling party during the ringing cycle.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *65,1,Macro(user-callerid)
exten => *65,n,Set(DB(CIDB/${CALLERIDNUM}=YES)
exten => *65,n,Answer
exten => *65,n,Wait()
exten => *65,n,Playback(caller-id-blk&activated)
exten => *65,n,Macro(hangupcall)

;--------------------------------------------------------------------------------------------------------------------------------
;Automatic Callback (*66 Activation,)
;Allows a subscriber to automatically place a call to the last station called by the subscriber when that station becomes idle.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Calling Number Delivery Blocking (*67)
;Allows the subscriber to temporarily change the permanent public/private status indicator of his/her directory number (DN) and 
;thus control its availability to the called party.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *67,1,Answer
exten => *67,n,Wait(1)
exten => *67,n,Macro(user-callerid) 
exten => *67,1,Set(DB(CIDB/${CALLERIDNUM}=YES)
exten => *67,n,Answer
exten => *67,n,Wait(1)
exten => *67,n,Playback(caller-ib-blockin&activated)
exten => *67,n,Macro(hangupcall,)

;---------------------------------------------------------------------------------------------------------------------------------
;Call Forwarding Busy Line/Don't Answer (*68 Activation)
;Allows a subscriber to forward calls intended for the subscriber's busy line, or idle line after a predetermined number of rings, 
;to another directory number entered by the subscriber at the time of activation.
;---------------------------------------------------------------------------------------------------------------------------------
exten => *68,1,Answer
exten => *68,n,Wait(1)
exten => *68,n,Playback(call-fwd-on-busy&please-enter-your&extension)
exten => *68,n,Read(fromext,then-press-pound,,)
exten => *68,n,Set(fromext=$/{IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => *68,n,Wait(1)
exten => *68,n(startread),Playback(ent-target-attendant)
exten => *68,n,Read(toext,then-press-pound,,)
exten => *68,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *68,n,Wait(1)
exten => *68,n,Set(DB(CFBDA${fromext})=${toext})
exten => *68,n,Playback(call-fwd-on-busy&for&extension)
exten => *68,n,SayDigits(${fromext})
exten => *68,n,Playback(is-set-to)
exten => *68,n,SayDigits(${toext})
exten => *68,n,Macro(hangupcall,)
exten => _*68.,1,Answer
exten => _*68.,n,Wait(1)
exten => _*68.,n,Macro(user-callerid,)
exten => _*68.,n,Set(DB(CFBDA/${CALLERID(number)})=${EXTEN:3})
exten => _*68.,n,Playback(call-fwd-on-busy&for&extension)
exten => _*68.,n,SayDigits(${CALLERID(number)})
exten => _*68.,n,Playback(is-set-to)
exten => _*68.,n,SayDigits(${EXTEN:3})
exten => _*68.,n,Macro(hangupcall,)

;--------------------------------------------------------------------------------------------------------------------------------
;Automatic Recall (*69 Activation)
;Allows a subscriber to automatically place a call to the last station that called the subscriber, when that station becomes idle.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *69,1,Macro(user-callerid)
exten => *69,2,Answer
exten => *69,3,Wait(1)
exten => *69,4,Background(info-about-last-call)
exten => *69,5,Background(telephone-number)
exten => *69,6,Set(lastcaller=${DB(CALLTRACE/${CALLERID(number)})})
exten => *69,7,GotoIf($[${lastcaller}]?8:14)
exten => *69,8,SayDigits(${lastcaller})
exten => *69,9,Set(TIMEOUT(digit)=3)
exten => *69,10,Set(TIMEOUT(response)=7)
exten => *69,11,Background(to-call-this-number&press-1)
exten => *69,13,Goto(16)
exten => *69,14,Playback(from-unknown-caller)
exten => *69,15,Playback(unidentified-no-callback)
exten => *69,16,Macro(hangupcall)
exten => *69,17,NoOp
exten => 1,1,Goto(from-internal,${lastcaller},1);
exten => i,1,Playback(pbx-invalid)
exten => i,n,Playback(vm-goodbye)
exten => i,n,Macro(hangupcall)
exten => t,1,Playback(vm-goodbye)
exten => t,n,Macro(hangupcall)


exten => s,1,Macro(user-callerid,)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(info-about-last-call&telephone-number)
exten => s,n,Set(lastcaller=${DB(CALLTRACE/${CALLERID(number)})})
exten => s,n,GotoIf($[ $[ "${lastcaller}" = "" ] | $[ "${lastcaller}" = "unknown" ] ]?noinfo)
exten => s,n,SayDigits(${lastcaller})
exten => s,n,Set(TIMEOUT(digit)=3)
exten => s,n,Set(TIMEOUT(response)=7)
exten => s,n,Background(to-call-this-number&press-1)
exten => s,n,Goto(fin)
exten => s,n(noinfo),Playback(from-unknown-caller)
exten => s,n,Macro(hangupcall,)
exten => s,n(fin),Noop(Waiting for input)
exten => 1,1,Goto(from-internal,${lastcaller},1)
exten => i,1,Playback(vm-goodbye)
exten => i,n,Macro(hangupcall,)
exten => t,1,Playback(vm-goodbye)
exten => t,n,Macro(hangupcall,)


;--------------------------------------------------------------------------------------------------------------------------------
;Cancel Call Waiting (*70)
;Provides the subscriber the ability to enable the Call Waiting feature for the duration of a telephone call.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *70,1,Answer
exten => *70,n,Wait(1)
exten => *70,n,Macro(user-callerid,)
exten => *70,n,Set(DB(CW/${CALLERID(number)})=ENABLED)
exten => *70,n,Playback(call-waiting&activated)
exten => *70,n,Macro(hangupcall,)

;--------------------------------------------------------------------------------------------------------------------------------
;Cancel Call Waiting (*71)
;Provides the subscriber the ability to disable the Call Waiting feature for the duration of a telephone call.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *71,1,Answer
exten => *71,n,Wait(1)
exten => *71,n,Macro(user-callerid,)
exten => *71,n,dbDel(CW/${CALLERID(number)})
exten => *71,n,Playback(call-waiting&de-activated)
exten => *71,n,Macro(hangupcall,)

;--------------------------------------------------------------------------------------------------------------------------------
;Call Forwarding (*72 Activation)
;Allows a subscriber to redirect calls intended for his/her station (base station) to another station (remote station).
;--------------------------------------------------------------------------------------------------------------------------------
exten => *72,1,Answer
exten => *72,n,Wait(1)
exten => *72,n,Playback(call-fwd-unconditional)
exten => *72,n,Playback(please-enter-your&extension)
exten => *72,n,Read(fromext,then-press-pound,,)
exten => *72,n,Set(fromext=${IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => *72,n,Wait(1)
exten => *72,n(startread),Playback(ent-target-attendant)
exten => *72,n,Read(toext,then-press-pound,,)
exten => *72,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *72,n,Wait(1)
exten => *72,n,Set(DB(CF/${fromext})=${toext})
exten => *72,n,Playback(call-fwd-unconditional&for&extension)
exten => *72,n,SayDigits(${fromext})
exten => *72,n,Playback(is-set-to)
exten => *72,n,SayDigits(${toext})
exten => *72,n,Macro(hangupcall,)
exten => _*72.,1,Answer
exten => _*72.,n,Wait(1)
exten => _*72.,n,Macro(user-callerid,)
exten => _*72.,n,Set(DB(CF/${CALLERID(number)})=${EXTEN:3})
exten => _*72.,n,Playback(call-fwd-unconditional&for&extension)
exten => _*72.,n,SayDigits(${CALLERID(number)})
exten => _*72.,n,Playback(is-set-to)
exten => _*72.,n,SayDigits(${EXTEN:3})
exten => _*72.,n,Macro(hangupcall,)

;--------------------------------------------------------------------------------------------------------------------------------
;Call Forwarding (*73 Deactivation)
;Allows a subscriber to redirect calls intended for his/her station (base station) to another station (remote station).
;--------------------------------------------------------------------------------------------------------------------------------
exten => *73,1,Answer
exten => *73,n,Wait(1)
exten => *73,n,Macro(user-callerid,)
exten => *73,n,dbDel(CF/${CALLERID(number)})
exten => *73,n,Playback(call-fwd-unconditional&de-activated)
exten => *73,n,Macro(hangupcall,)
exten => _*73,1,Answer
exten => _*73,n,Wait(1)
exten => _*73,n,Set(fromext=${EXTEN:3})
exten => _*73,n,dbDel(CF/${fromext})
exten => _*73,n,Playback(call-fwd-unconditional&for&extension)
exten => _*73,n,SayDigits(${fromext})
exten => _*73,n,Playback(cancelled)
exten => _*73,n,Macro(hangupcall,)

exten => **73,1,Answer
exten => **73,n,Wait(1)
exten => **73,n,Playback(please-enter-your&extension)
exten => **73,n,Read(fromext,then-press-pound,,)
exten => **73,n,Wait(1)
exten => **73,n,dbDel(CF/${fromext})
exten => **73,n,Playback(call-fwd-unconditional&for&extension)
exten => **73,n,SayDigits(${fromext})
exten => **73,n,Playback(cancelled)
exten => **73,n,Macro(hangupcall,)

;--------------------------------------------------------------------------------------------------------------------------------
;Speed Calling (*74 Speed Calling 8-Change List)
;Allows a subscriber to assign his/her own speed calling codes directly and immediately from his/her own telephone by dialing 
;a change speed calling list access code, an abbreviated code, and a new telephone number.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Speed Calling (*75 Speed Calling 30-Change List)
;Allows a subscriber to assign his/her own speed calling codes directly and immediately from his/her own telephone by dialing
;a change speed calling list access code, an abbreviated code, and a new telephone number.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Advanced Call Waiting Deluxe (*76)
;Allows a subscriber to specify, in advance of incoming calls, the termination treatment on incoming calls that arrive while
; the subscriber is engaged in another conversation.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *76,1,Answer
exten => *76,n,Wait(1)
exten => *76,n,Macro(user-callerid)
exten => *76,n,DBdel(ACW/${CALLERID(number)})
exten => *76,n,Playback(selective-call-waiting)
exten => *76,n,Playback(de-activated)
exten => *76,n,Macro(hangupcall)
exten => **76,1,Answer
exten => **76,n,Wait(1)
exten => **76,n,Playback(please-enter-your&extension)
exten => **76,n,Read(fromext,then-press-pound,,)
exten => **76,n,Wait(1)
exten => **76,n,dbDel(ACW/${fromext})
exten => **76,n,Playback(selective-call-waiting&for&extension)
exten => **76,n,SayDigits(${fromext})
exten => **76,n,Playback(cancelled)
exten => **76,n,Macro(hangupcall,)

;--------------------------------------------------------------------------------------------------------------------------------
Anonymous Call Rejection (*77 Activation)
Allows Customers to reject calls from parties who have a privacy feature that prevents the delivery of their calling 
number to the called party.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *77,1,Answer
exten => *77,n,Wait(1)
exten => *77,n,Macro(user-callerid)
exten => *77,n,Set(DB(ACR/${CALLERIDNUM}=>YES)
exten => *77,n,Playback(anon-call-rej&activated)
exten => *77.,n,Macro(hangupcall)

;--------------------------------------------------------------------------------------------------------------------------------
Do Not Disturb (*78 Activation)
Provides the subscriber the opportunity of having all calls intercepted by the CO switch whenever the line is programmed 
for Do Not Disturb. The calling party will receive a message indicating the station is in Do Not Disturb condition.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *78,1,Answer
exten => *78,n,Wait(1)
exten => *78,n,Macro(user-callerid,)
exten => *78,n,Set(DB(DND/${CALLERIDNUM})=YES)})
exten => *78,n,Playback(do-not-disturb&activated)
exten => _*82.,n,Macro(hangupcall)

;--------------------------------------------------------------------------------------------------------------------------------
Do Not Disturb (*79 Deactivation)
Provides the subscriber the opportunity of having all calls intercepted by the CO switch whenever the line is programmed for 
Do Not Disturb. The calling party will receive a message indicating the station is in Do Not Disturb condition.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *79,1,Answer
exten => *79,n,Wait(1)
exten => *79,n,Macro(user-callerid,)
exten => *79,n,DBdel(DND/${CALLERIDNUM})
exten => *79,n,Playback(do-not-disturb&de-activated)
exten => *79,n,Macro(hangupcall)

;--------------------------------------------------------------------------------------------------------------------------------
Selective Call Rejection (*80 Deactivation)
Allows the subscriber to have incoming calls from a limited number of calling parties rejected by the terminating switching system.
;--------------------------------------------------------------------------------------------------------------------------------
exten => _*80.,1,Answer
exten => _*80.,n,Wait(1)
exten => _*80.,n,Macro(user-callerid)
exten => _*80.,n,DBdel(BLACKLIST/${CALLERID(number)})
exten => _*80.,n,Playback(blacklist-remove)
exten => _*80.,n,Macro(hangupcall)

;--------------------------------------------------------------------------------------------------------------------------------
Distinctive Ringing/Call Waiting (*81 Deactivation)
Allows the subscriber to have incoming calls from a limited number of calling parties identified using distinctive alerting treatment.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
;Line Blocking Deactivation (*82 Deactivation)
;Line Blocking Deactivation allows a caller to dial a delivery feature access code before dialing a complete telephone number to 
;temporarily override the presentation status of both the caller's directory number and the calling name. If the caller enters the 
;delivery code, then the calling identity presentation status will be shown as "public" for both caller directory number and 
;calling name.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
Selective Call Forwarding (*83 Deactivation)
Allows the subscriber to have incoming calls from a limited number of calling parties forwarded to a prespecified remote station.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *83,1,Answer
exten => *83,n,Wait(1)
exten => *83,n,DBdel(SCF/${CALLERIDNUM})
exten => *83,n,Playback(selective-call-fwd)
exten => *83,n,Wait(1)
exten => *83,n,Playback(deactivated)
exten => *83.,n,Macro(hangupcall)

;--------------------------------------------------------------------------------------------------------------------------------
Selective Call Acceptance (*84 Deactivation)
Provides the subscriber the ability to block calls from all but a predetermined list of directory numbers specified by the 
subscriber. Unaccepted callers may receive an announcement or be routed to a predetermined directory number.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *84,1,Answer
exten => *84,n,Wait(1)
exten => *84,n,Macro(user-callerid)
exten => *84,n,DBdel(SCA/${CALLERID(number)})
exten => *84,n,Playback(selective-call-accept)
exten => *84,n,Playback(de-activated)
exten => *84,n,Macro(hangupcall)
exten => **84,1,Answer
exten => **84,n,Wait(1)
exten => **84,n,Playback(please-enter-your&extension)
exten => **84,n,Read(fromext,then-press-pound,,)
exten => **84,n,Wait(1)
exten => **84,n,dbDel(SCA/${fromext})
exten => **84,n,Playback(selective-call-accept&for&extension)
exten => **84,n,SayDigits(${fromext})
exten => **84,n,Playback(cancelled)
exten => **84,n,Macro(hangupcall,)

;--------------------------------------------------------------------------------------------------------------------------------
Calling Number Delivery (*85 Deactivation)
Provides the subscriber with the directory number (DN) of the calling party during the ringing cycle.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *85,1,Answer
exten => *85,n,Wait(1)
exten => *85,n,Macro(user-callerid)
exten => *85,1,DBdel(CIDB/${CALLERIDNUM})
exten => *85,n,Answer
exten => *85,n,Wait(1)
exten => *85,n,Playback(caller-id-blocking&de-activated)
exten => *85,n,Hangup

;--------------------------------------------------------------------------------------------------------------------------------
;Automatic Callback (*86 Deactivation)
;Allows a subscriber to automatically place a call to the last station called by the subscriber when that station becomes idle.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
Anonymous Call Rejection (*87 Deactivation)
Allows Customers to reject calls from parties who have a privacy feature that prevents the delivery of their calling number to the called party.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *87,1,Answer
exten => *87,n,Wait(1)
exten => *87,n,Macro(user-callerid)
exten => *87,n,DBdel(ACR/${CALLERIDNUM})
exten => *87,n,Playback(anon-call-rej)
exten => *87,n,Playback(deactivated)
exten => *87,n,Hangup

;--------------------------------------------------------------------------------------------------------------------------------
;Call Forwarding Busy Line/Don't Answer (*88 Deactivation)
;Allows a subscriber to forward calls intended for the subscriber's busy line, or idle line after a predetermined number of rings, 
;to another directory number entered by the subscriber at the time of activation.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *88,1,Answer
exten => *88,n,Wait(1)
exten => *88,n,Macro(user-callerid,)
exten => *88,n,dbDel(CFBDA/${CALLERID(number)})
exten => *88,n,Playback(call-fwd-on-busy&de-activated)
exten => *88,n,Macro(hangupcall,)
exten => _*88.,1,Answer
exten => _*88.,n,Wait(1)
exten => _*88.,n,Set(fromext=${EXTEN:3})
exten => _*88.,n,dbDel(CFB/${fromext})
exten => _*88.,n,Playback(call-fwd-on-busy&for&extension)
exten => _*88.,n,SayDigits(${fromext})
exten => _*88.,n,Playback(cancelled)
exten => _*88.,n,Macro(hangupcall,)
exten => **88,1,Answer
exten => **88,n,Wait(1)
exten => **88,n,Playback(please-enter-your&extension)
exten => **88,n,Read(fromext,then-press-pound,,)
exten => **88,n,Wait(1)
exten => **88,n,dbDel(CFBDA/${fromext})
exten => **88,n,Playback(call-fwd-on-busy&for&extension)
exten => **88,n,SayDigits(${fromext})
exten => **88,n,Playback(cancelled)
exten => **88,n,Macro(hangupcall,)

;--------------------------------------------------------------------------------------------------------------------------------
;Automatic Recall (*89 Deactivation)
;Allows a subscriber to automatically place a call to the last station that called the subscriber, when that station becomes idle.
;--------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------
Customer Programmable Call Forwarding Busy Line (*90 Activation, *91 Deactivation)
Allows subscriber of the feature to forward calls intended for the subscriber's busy line to another directory number entered by the subscriber at the time of activation. Deactivation will clear the forwarded-to directory number.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *90,1,Answer
exten => *90,n,Wait(1)
exten => *90,n,Playback(call-fwd-on-busy)
exten => *90,n,Playback(please-enter-your&extension)
exten => *90,n,Read(fromext,then-press-pound,,)
exten => *90,n,Set(fromext=$/{IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => *90,n,Wait(1)
exten => *90,n,(startread),Playback(ent-target-attendant)
exten => *90,n,Read(toext,then-press-pound,,)
exten => *90,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *90,n,Wait(1)
exten => *90,n,Set(DB(CPCFB/${fromext})=${toext})
exten => *90,n,Playback(call-fwd-on-busy&for&extension)
exten => *90,n,SayDigits(${fromext})
exten => *90,n,Playback(is-set-to)
exten => *90,n,SayDigits(${toext})
exten => *90,n,Macro(hangupcall,)
exten => _*90.,1,Answer
exten => _*90.,n,Wait(1)
exten => _*90.,n,Macro(user-callerid,)
exten => _*90.,n,Set(DB(CPCFB/${CALLERID(number)})=${EXTEN:3})
exten => _*90.,n,Playback(call-fwd-on-busy&for&extension)
exten => _*90.,n,SayDigits(${CALLERID(number)})
exten => _*90.,n,Playback(is-set-to)
exten => _*90.,n,SayDigits(${EXTEN:3})
exten => _*90.,n,Macro(hangupcall,)

;--------------------------------------------------------------------------------------------------------------------------------
Customer Programmable Call Forwarding Busy Line (*90 Activation, *91 Deactivation)
Allows subscriber of the feature to forward calls intended for the subscriber's busy line to another directory number entered by the subscriber at the time of activation. Deactivation will clear the forwarded-to directory number.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *91,1,Answer
exten => *91,n,Wait(1)
exten => *91,n,Macro(user-callerid,)
exten => *91,n,dbDel(CPCFB/${CALLERID(number)})
exten => *91,n,Playback(call-fwd-on-busy&de-activated)
exten => *91,n,Macro(hangupcall,)
exten => _*91.,1,Answer
exten => _*91.,n,Wait(1)
exten => _*91.,n,Set(fromext=${EXTEN:3})
exten => _*91.,n,dbDel(CPCFB/${fromext})
exten => _*91.,n,Playback(cust-call-fwd-on-busy&for&extension)
exten => _*91.,n,SayDigits(${fromext})
exten => _*91.,n,Playback(cancelled)
exten => _*91.,n,Macro(hangupcall,)
exten => **91,1,Answer
exten => **91,n,Wait(1)
exten => **91,n,Playback(please-enter-your&extension)
exten => **91,n,Read(fromext,then-press-pound,,)
exten => **91,n,Wait(1)
exten => **91,n,dbDel(CPCFB/${fromext})
exten => **91,n,Playback(cust-call-fwd-on-busy&for&extension)
exten => **91,n,SayDigits(${fromext})
exten => **91,n,Playback(cancelled)
exten => **91,n,Macro(hangupcall,)

;--------------------------------------------------------------------------------------------------------------------------------
;Customer Programmable Call Forwarding Don't Answer (*92 Activation)
;Allows subscriber of the feature to forward calls intended for the subscriber's idle line, after a predetermined number of rings,
;to another directory number entered by the subscriber at the time of activation. Deactivation will clear the forwarded-to directory number.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *92,1,Answer
exten => *92,n,Wait(1)
exten => *92,n,Playback(cust-pro-call-fwd-no-ans)
exten => *92,n,Playback(please-enter-your&extension)
exten => *92,n,Read(fromext,then-press-pound,,)
exten => *92,n,Set(fromext=$/{IF($["foo${fromext}"="foo"]?${CALLERID(number)}:${fromext})})
exten => *92,n,Wait(1)
exten => *92,n(startread),Playback(ent-target-attendant)
exten => *92,n,Read(toext,then-press-pound,,)
exten => *92,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *92,n,Wait(1)
exten => *92,n,Set(DB(CPCFN/${fromext})=${toext})
exten => *92,n,Playback(call-fwd-no-ans&for&extension)
exten => *92,n,SayDigits(${fromext})
exten => *92,n,Playback(is-set-to)
exten => *92,n,SayDigits(${toext})
exten => *92,n,Macro(hangupcall,)
exten => _*92.,1,Answer
exten => _*92.,n,Wait(1)
exten => _*92.,n,Macro(user-callerid,)
exten => _*92.,n,Set(DB(CPCFNA/${CALLERID(number)})=${EXTEN:3})
exten => _*92.,n,Playback(call-fwd-no-ans&for&extension)
exten => _*92.,n,SayDigits(${CALLERID(number)})
exten => _*92.,n,Playback(is-set-to)
exten => _*92.,n,SayDigits(${EXTEN:3})
exten => _*92.,n,Macro(hangupcall,)

;--------------------------------------------------------------------------------------------------------------------------------
;Customer Programmable Call Forwarding Don't Answer (*93 Deactivation)
;Allows subscriber of the feature to forward calls intended for the subscriber's idle line, after a predetermined number of rings, 
;to another directory number entered by the subscriber at the time of activation. Deactivation will clear the forwarded-to directory number.
;--------------------------------------------------------------------------------------------------------------------------------
exten => *93,1,Answer
exten => *93,n,Wait(1)
exten => *93,n,Macro(user-callerid,)
exten => *93,n,dbDel(CPCFNA/${CALLERID(number)})
exten => *93,n,Playback(call-fwd-no-ans&de-activated)
exten => *93,n,Macro(hangupcall,)
exten => _*93.,1,Answer
exten => _*93.,n,Wait(1)
exten => _*93.,n,Set(fromext=${EXTEN:3})
exten => _*93.,n,dbDel(CPCFN/${fromext})
exten => _*93.,n,Playback(cust-pro-call-fwd-no-ans&for&extension)
exten => _*93.,n,SayDigits($/{fromext/})
exten => _*93.,n,Playback(cancelled)
exten => _*93.,n,Macro(hangupcall,)
exten => **93,1,Answer
exten => **93,n,Wait(1)
exten => **93,n,Playback(please-enter-your&extension)
exten => **93,n,Read(fromext,then-press-pound,,)
exten => **93,n,Wait(1)
exten => **93,n,dbDel(CPCFNA/${fromext})
exten => **93,n,Playback(cust-pro-call-fwd-unconditional&for&extension)
exten => **93,n,SayDigits(${fromext})
exten => **93,n,Playback(cancelled)
exten => **93,n,Macro(hangupcall,)

;-------------------------------------------------------------------------------
; *97 - *98 Voicemail Checking / Retriving
;-------------------------------------------------------------------------------

;voice mailman Promts for mailbox nmbr and password
exten => *97,1,VoicemailMain
exten => *97,n,Macro(hangupcall)
;
;;voice mailman with exten/callerid checking. if callerid/exten match 
;prompts for password eslse prompts for mailbox/password
exten => *98,1,VoicemailMain(${CALLERIDNUM})
exten => *98,n,Macro(hangupcall)
;
;[messagecenter]
;exten => *97,1,Answer
;exten => *97,2,Wait(1)
;exten => *97,3,VoiceMailMain(default)
;exten => *97,4,Macro(Macro(hangupcall)call)
;exten => _*97X.,1,Answer			; can dial *98<exten> to skip 'mailbox' prompt.  Useful for speedial.
;exten => _*97X.,2,Wait(1)
;exten => _*97X.,3,VoiceMailMain(${EXTEN:3}@default)
;exten => _*97X.,4,Macro(Macro(hangupcall)call)
;exten => *98,1,Answer
;exten => *98,2,Wait(1)
;exten => *98,3,Macro(user-callerid)
;exten => *98,4,VoicemailMain(${CALLERIDNUM}@default)
;exten => *98,5,Macro(hangupcall)
;
;--------------------------------------------------------------------------------------------------------------------------------
;Voicemail Acivate/Deactivate (*96 Enable, **96 Disable)
;Allows subscriber of the feature to 
;--------------------------------------------------------------------------------------------------------------------------------
exten => *96,1,Answer
exten => *96,n,Wait(1)
exten => *96,n,Macro(user-callerid,)
exten => *96,n,DBdel(VM/${CALLERIDNUM})
exten => *96,n,Wait(1)
exten => *96,n,Playback(deactivated)
exten => *96,n,Hangup
exten => **96,1,Answer
exten => **96,n,Wait(1)
exten => **96,n,Macro(user-callerid,)
exten => **96,n,Set(DB(VM/${CALLERIDNUM})=YES)})
exten => **96,n,Wait(.5)
exten => **96,n,Playback(activated)
exten => **96,n,Macro(hangupcall,)

;--------------------------------------------------------
;211 Community Information and Referral Services 
; Available for Reassignment
;--------------------------------------------------------
;211 - Reassigned to []
;----------------------
exten => 211,1,Macro(user-callerid,)
exten => 211,n,Playback(ss-noservice)
exten => 211,n,Congestion
exten => 211,n,Macro(hangupcall)
;
;-------------------------------------------
;311 - non-emerg not yet setup for Non Emerg
;-------------------------------------------
exten => 311,1,Macro(user-callerid,)
;exten => 311,n,Dial(LOCAL/local non emergancy nmbr here)
;exten => 311,n,Congestion
exten => 311,n,Playback(ss-noservice)
exten => 311,n,Congestion
exten => 311,n,Macro(hangupcall)
;
;---------------------------
; 411 - Information services
;---------------------------
;exten => 411,1,Macro(user-callerid,)
;exten => 411,n,Dial(Local/SIP/ZAP/IAX2/411,30,r)
;exten => 411,n,Congestion
;exten => 411,n,Playback(ss-noservice)
;exten => 411,n,Macro(hangupcall)
;
;---------------------------------------------------------------------------
;511 Traffic and Transportation Information (US); Available for Reassignment
;---------------------------------------------------------------------------
;511 - Reassigned to Call back Wake service
;------------------------------------------
exten => 511,1,Macro(user-callerid,)
exten => 511,n,Answer
exten => 511,n,Playback(ss-noservice)
exten => 511,n,Macro(hangupcall)
;
;-------------------------------------
; 611 - [Repair Service / TechSupport]
;-------------------------------------
exten => 611,1,Macro(user-callerid)
exten => 611,n,Answer
exten => 611,n,GotoIfTime(*|*|1|jan?611|HOLIDAY1)
exten => 611,n,GotoIfTime(*|*|4|jul?611|HOLIDAY2)
exten => 611,n,GotoIfTime(*|*|11|nov?611|HOLIDAY3)
exten => 611,n,GotoIfTime(*|*|22|nov?611|HOLIDAY4)
exten => 611,n,GotoIfTime(*|*|25|dec?611|HOLIDAY5)
exten => 611,n,Goto(611,START)
exten => 611,n(HOLIDAY1),Playback(office-closed&newyears)
exten => 611,n,Goto(611,HOURS))
exten => 611,n(HOLIDAY2),Playback(office-closed&4th-july)
exten => 611,n,Goto(611,HOURS))
exten => 611,n(HOLIDAY3),Playback(office-closed&vetrans)
exten => 611,n,Goto(611,HOURS)
exten => 611,n(HOLIDAY4),Playback(office-closed&thanksgiving)
exten => 611,n,Goto(611,HOURS)
exten => 611,n(HOLIDAY5),Playback(office-closed&x-mas)
exten => 611,n(HOURS),Playback(office-hours&vm-goodbye))
exten => 611,n,Macro(hangupcall))
exten => 611,n(CLOSED),Playback(office-closed&our-business-hours-are&office-hours)
exten => 611,n,Voicemail(u611)
exten => 611,n,Macro(hangupcall)
exten => 611,n(START),GotoIfTime(22:00-08:00|*|*|*?611|CLOSED)
exten => 611,n,Set(TIMEOUT(digit)=7)
exten => 611,n,Set(TIMEOUT(response)=10)
exten => 611,n,SayDigits(611)
exten => 611,n,Playback(repair&and&technical-support&for-quality-purposes&this-call-may-be&recorded)
exten => 611,n(ID),Playback(pls-enter-your-acct-nbr)
exten => 611,n,Read(acct,then-press-pound,)
exten => 611,n,SayDigits(${acct})
exten => 611,n,Background(if-correct-press)
exten => 611,n,SayDigits(1)
exten => 611,n,Background(if-incorrect-press)
exten => 611,n,SayDigits(2)
exten => 611,n,Read(res,then-press-pound,)
exten => 611,n,GotoIf($["${res}"="1"]?ACCT:ID)
exten => 611,n(ACCT),Set(CALLERID(name)=${CALLERIDNAME})
exten => 611,n,Set(CALLERID(number)=${acct})
exten => 611,n,Set(MONITOR_FILENAME=/var/spool/asterisk/monitor/q${EXTEN}-${TIMESTAMP}-${UNIQUEID})
exten => 611,n,SetMusicOnHold(default)
exten => 611,n,GotoIfTime(08:00-17:00|mon-fri|*|*?611|DAY)
exten => 611,n,GotoIfTime(17:00-22:00|mon-fri|*|*?611|NIGHT)
exten => 611,n,GotoIfTime(09:00-13:00|sat|*|*?611|NIGHT)
exten => 611,n,Goto(611,closed)
exten => 611,n(DAY),Queue(102|t|||300)
exten => 611,n(VM),Voicemail(u611)
exten => 611,n,Macro(hangupcall)
exten => 611,n(NIGHT),Queue(103|t|||300)
exten => 611,n,Goto(611,VM)
;
;----------------------------------------------------------------------------------------
;711 is the national number to access relay services from anywhere in the United States. 
;Dial 711 to be connected with a Relay Colorado operator.
;----------------------------------------------------------------------------------------
; 711 - [State Relay TTY/TDD/Voice Service]
;------------------------------------------
exten => 711,1,Macro(user-callerid,)
;exten => 711,n,Dial(SIP/711)
;exten => 711,n,Congestion
exten => 711,n,Playback(ss-noservice)
exten => 711,n,Congestion
exten => 711,n,Macro(hangupcall) 
;
;-----------------------------------------------------------------------------
;Access to One Call Services to Protect Pipeline and Utilities from Excavation
;Damage (US); Available for Reassignment
;-----------------------------------------------------------------------------
;811 - Reassigned to [Quick-dial TollFree Directory]
;---------------------------------------------------
exten => 811,1,Macro(user-callerid,)
exten => 811,n,Dial(SIP or IAX2/user@provider/8005551212,30,r)
exten => 811,n,Hangup
;
;---------------------------------------------
; 911 Emergancy
;---------------------------------------------
exten => 911,1,Macro(user-callerid,)
;exten => 911,n,Dial(SIP/${EXTEN})
;exten => 911,n,Congestion
exten => 911,n,Playback(no-911-1)
exten => 911,n,Congestion
exten => 911,n,Macro(hangupcall)