Upgrade 3CX to v18 and get it hosted free!

Seperate IVR Menus to handle Home and Office calls

Author image

 

House line rings

* From extensions.conf

[house-in]
;
; This routine handles inbound calls on the analog
; house line.
;
; During the day, we want to wait while the
; Panasonic KSU rings the internal extensions
; for at least 20 (2 rings) seconds before answering so
; we branch to the “house-day” context.
;
; After hours, we will answer immediately without
; ringing every phone in the house by branching to
; the “house-night” context.
;
; The Panasonic KSU is programmed to ring only
; a couple phones after hours so one or two rings
; will not wake everyone in the house.
;
exten => s,1,SetGlobalVar(RINGINGLINE=custom/on-line-one)
exten => s,2,GotoIfTime(07:00-21:00|sun-sat|*|*?house-day,s,1)
exten => s,3,Goto(house-night,s,1)
;

;
;
;********************************************************************
; BEGIN – House IVR Menu
;********************************************************************
;
;
[house-day]
;
;
exten => s,1,Wait(20)
exten => s,2,Answer
exten => s,3,zapateller ; torture telemarketers
;
; menu diag enter here
;
exten => s,4,NoOp
exten => s,5,Background(custom/welcome-hend) ; play the intro message
exten => s,6,NoOp
;
exten => s,7,Background(custom/this-is-daytime-menu)
exten => s,8,Background(custom/appologise)
;
; loops should return here
;
exten => s,9,SetGlobalVar(FLOWCONTROL=house-day,s,9)
exten => s,10,NoOp
exten => s,11,NoOp

exten => s,12,Background(custom/if-you-know-ext)
;
exten => s,13,Background(silence/1)
exten => s,14,Background(custom/if-emergency)
exten => s,15,Background(custom/press-the)
exten => s,16,Background(custom/nine-key)
exten => s,17,Background(silence/1)
;
exten => s,18,Background(custom/will-trans-to-default)
exten => s,19,Background(silence/1)
;
exten => s,20,Background(custom/2repeat) ; play the menu messages
exten => s,21,Background(custom/2hangup) ; play the menu messages
;
exten => s,22,DigitTimeout,2 ; give them 2 seconds between digits
exten => s,23,ResponseTimeout,30 ; give them 30 seconds to make a choice
;
include => pana-trans
include => internal-svc
;
; Repeat the previous menu
exten => *,1,Goto(s,9)
;
; #=hangup
exten => #,1,Background(goodbye)
exten => #,2,Hangup
;
exten => t,1,VoiceMail(u${DEFVM})
exten => t,2,Hangup
;
exten => i,1,Background(pbx-invalid) ; “That’s not valid, try again”
exten => i,2,Wait(1)
exten => i,3,Goto(s,9)
;
;
[house-night]
;
;
exten => s,1,Wait(10)
exten => s,2,Answer
exten => s,3,zapateller ; torture telemarketers
;
; menu diag enter here
;
exten => s,4,NoOp
exten => s,5,Background(custom/welcome-hend) ; play the intro message
exten => s,6,NoOp
;
exten => s,7,Background(custom/this-is-afterhours-menu)
exten => s,8,Background(custom/direct-to-vmail-is-active)
;
; loops should return here
;
exten => s,9,NoOp
exten => s,10,NoOp
exten => s,11,SetGlobalVar(FLOWCONTROL=house-night,s,9)
exten => s,12,Background(custom/if-you-know-ext)
exten => s,13,Background(silence/1)
;
exten => s,14,Background(custom/if-emergency)
exten => s,15,Background(custom/press-the)
exten => s,16,Background(custom/nine-key)
exten => s,17,Background(silence/1)
;
exten => s,18,Background(custom/will-trans-to-default)
exten => s,19,Background(silence/1)
;
exten => s,20,Background(custom/2repeat) ; play the menu messages
exten => s,21,Background(custom/2hangup) ; play the menu messages
;
exten => s,22,DigitTimeout,2 ; give them 2 seconds between digits
exten => s,23,ResponseTimeout,30 ; give them 30 seconds to make a choice
;
;
include => vmail-by-ext
include => vmail-by-name
include => internal-svc
;
; Repeat the previous menu
exten => *,1,Goto(s,9)
;
; #=hangup
exten => #,1,Background(goodbye)
exten => #,2,Hangup
;
exten => t,1,VoiceMail(u${DEFVM})
exten => t,2,Hangup
;
exten => i,1,Background(pbx-invalid) ; “That’s not valid, try again”
exten => i,2,Wait(1)
exten => i,3,Goto(s,9)
;
;
;********************************************************************
; END – House IVR Menu
;********************************************************************
;

 

Office line rings

* From extension.conf

[office-in]
;
; This routine handles inbound calls on the analog office line
;
; During the day, we want to wait while the
; Panasonic KSU rings the internal extensions
; for at least 20 (2 rings) seconds before answering so
; we branch to the “office-day” context.
;
; The office-day checks to see if we might be closed
; due to a holiday and makes a holiday announcment
; if true.
;
; We have to support the possibility that a client
; might have an emergency. We need to be available
; 7×24 for certain clients.
;
; After hours, we will answer immediately without
; ringing every phone in the house by brancing to
; the “office-night” context.
;
; The Panasonic KSU is programmed to ring only
; a couple phones after hours so one or two rings
; will not wake everyone in the house.
;
exten => s,1,SetGlobalVar(RINGINGLINE=custom/on-line-two)
exten => s,2,GotoIfTime(08:00-18:00|mon-fri|*|*?office-day,s,1)
exten => s,3,Goto(office-night,s,1)
;
[voicepulse-in]
;
; This routine handles inbound calls on our VoicePulse DID
; Voicepulse rings in with the extension set to our DID
; VoicePulse is handled as an office line
;
exten => _7039916709,1,SetGlobalVar(RINGINGLINE=custom/on-line-three)
exten => _7039916709,2,GotoIfTime(08:00-18:00|mon-fri|*|*?office-day,s,1)
exten => _7039916709,3,Goto(office-night,s,1)
;
;
[broadvoice-in]
;
; BroadVoice rings in on the s extension
; BroadVoice is handled as an Office line.
;
exten => s,1,SetGlobalVar(RINGINGLINE=custom/on-line-four)
exten => s,2,GotoIfTime(08:00-18:00|mon-fri|*|*?office-day,s,1)
exten => s,3,Goto(office-night,s,1)
;
;

;********************************************************************
; BEGIN – Office IVR Menu
;********************************************************************
;
;
[office-day]
;
;
exten => s,1,Wait(30)
exten => s,2,Answer
exten => s,3,zapateller ; torture telemarketers
;
; menu diag enter here
;
exten => s,4,Background(silence/1) ; one second silence
exten => s,5,Background(custom/welcome) ; play the intro message
exten => s,6,NoOp
;
exten => s,7,GotoIfTime(*|*|1|jan?office-holiday,s,1)
exten => s,8,GotoIfTime(*|*|4|jul?office-holiday,s,1)
exten => s,9,GotoIfTime(*|*|11|nov?office-holiday,s,1)
exten => s,10,GotoIfTime(*|*|25|dec?office-holiday,s,1)
;
exten => s,11,GotoIfTime(*|mon|15-21|jan?office-holiday,s,1)
exten => s,12,GotoIfTime(*|mon|15-21|feb?office-holiday,s,1)
exten => s,13,GotoIfTime(*|mon|26-31|may?office-holiday,s,1)
exten => s,14,GotoIfTime(*|mon|1-7|sep?office-holiday,s,1)
exten => s,15,GotoIfTime(*|mon|8-17|oct?office-holiday,s,1)
exten => s,16,GotoIfTime(*|thu|22-28|nov?office-holiday,s,1)
;
; if its not a Holiday check to see if its during business hours
;
exten => s,17,GotoIfTime(08:00-17:59|mon-fri|*|*?office-open,s,1)
;
; if its not during business hours, we must be closed
;
exten => s,18,Goto(office-night,s,7)
;
; include access to internal extentions and services
;
;
include => pana-trans
include => internal-svc
;
; Repeat the previous menu
exten => *,1,Goto(s,5)
;
; #=hangup
exten => #,1,Background(goodbye)
exten => #,2,Hangup
;
exten => t,1,Goto(i,1) ; If they take too long, give up
;
exten => i,1,Background(pbx-invalid) ; “That’s not valid, try again”
exten => i,2,Wait(1)
exten => i,3,Goto(s,5)
;
;
[office-night]
;
;
exten => s,1,Wait(10)
exten => s,2,Answer
exten => s,3,zapateller ; torture telemarketers
;
; menu diag enter here
;
exten => s,4,Background(silence/1) ; one second silence
exten => s,5,Background(custom/welcome) ; play the intro message
exten => s,6,Background(silence/1) ; one second silence
exten => s,7,Background(custom/office-closed)
;
exten => s,8,Background(custom/this-is-afterhours-menu)
exten => s,9,Background(custom/office-hours)
;
; loops should return here
;
exten => s,10,SetGlobalVar(FLOWCONTROL=office-night,s,10)
exten => s,11,NoOp
exten => s,12,NoOp(${FLOWCONTROL})
exten => s,13,Background(custom/if-you-know-ext)
exten => s,14,Background(silence/1) ; one second silence
exten => s,15,Background(custom/to-leave-vm-by-name)
exten => s,16,Background(custom/dial-first-three-char)
;
exten => s,17,Background(silence/1)
exten => s,18,Background(custom/if-emergency)
exten => s,19,Background(silence/1)
exten => s,20,NoOp
;
exten => s,21,Background(custom/2repeat) ; play the menu messages
exten => s,22,Background(custom/2hangup) ; play the menu messages
;
exten => s,23,DigitTimeout,5 ; give them 5 seconds between digits
exten => s,24,ResponseTimeout,90 ; give them 90 seconds to make a choice
;
;
include => vmail-by-ext
include => vmail-by-name
include => internal-svc
include => emergency
;
; Repeat the previous menu
exten => *,1,Goto(s,10)
;
; #=hangup
exten => #,1,Background(goodbye)
exten => #,2,Hangup
;
exten => t,1,VoiceMail(u${DEFVM}) ; If they take too long, send to vmail
exten => t,2,Hangup
;
exten => i,1,Background(pbx-invalid) ; “That’s not valid, try again”
exten => i,2,NoOp
exten => i,3,Goto(s,10)
;
;
[office-holiday]
;
; provide Holiday greeting and provide emergency access for
; contract clients
;
exten => s,1,Background(custom/office-closed-holiday) ; play the office we are closed message
exten => s,2,Background(custom/office-hours) ; play the open hours message
exten => s,3,Goto(office-night,s,8)
;
; include access to internal extentions and services
;
include => vmail-by-ext
include => vmail-by-name
include => internal-svc
;
; Repeat the previous menu
exten => *,1,Goto(office-night,s,8)
;
; #=hangup
exten => #,1,Background(goodbye)
exten => #,2,Hangup
;
exten => t,1,VoiceMail(u${DEFVM}) ; If they take too long, send to vmail
exten => t,2,Hangup
;
exten => i,1,Background(pbx-invalid) ; “That’s not valid, try again”
exten => i,2,Wait(1)
exten => i,3,Goto(office-night,s,8)
;
;
[office-open]
;
; during normal business hours, operate like a fancy answering machine
;
exten => s,1,NoOp
exten => s,2,NoOp
exten => s,3,NoOp
;
; menu diag enter here
;
exten => s,4,NoOp
exten => s,5,NoOp
exten => s,6,NoOp
;
exten => s,7,NoOp
exten => s,8,NoOp
;
; loops should return here
;
exten => s,9,Background(custom/if-you-know-ext)
;
exten => s,10,Background(silence/1)
exten => s,11,Background(custom/if-emergency)
exten => s,12,Background(custom/press-the)
exten => s,13,Background(custom/nine-key)
exten => s,14,Background(silence/1)
;
exten => s,15,Background(custom/will-trans-to-default)
exten => s,16,Background(silence/1)
;
exten => s,17,Background(custom/2repeat) ; play the menu messages
exten => s,18,Background(custom/2hangup) ; play the menu messages
;
exten => s,19,DigitTimeout,2 ; give them 2 seconds between digits
exten => s,20,ResponseTimeout,30 ; give them 30 seconds to make a choice
;
include => pana-trans
include => internal-svc
;
; Repeat the previous menu
exten => *,1,Goto(s,9)
;
; #=hangup
exten => #,1,Background(goodbye)
exten => #,2,Hangup
;
exten => t,1,VoiceMail(u${DEFVM})
exten => t,2,Hangup
;
exten => i,1,Background(pbx-invalid) ; “That’s not valid, try again”
exten => i,2,Wait(1)
exten => i,3,Goto(s,9)
;
;
;********************************************************************
; END – Office IVR Menu
;********************************************************************

 


Article Reviews

Write a Review

Your email address will not be published. Required fields are marked *

Required Field. Minimum 5 characters.

Required Field. Minimum 5 characters, maximum 50.

Required field.There is an error with this field.

Required Field.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

There are no reviews for this article. Be the first one to write a review.

Related Posts:

Get 3CX - Absolutely Free!
Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.