IVR script
This information is primarily for administrators and/or people who manage Zylinc solutions
IVR script is an advanced feature in the Zylinc solution that lets you use the scripting language Asterisk dialplan to, for example, create IVR menus, or route and manipulate calls in a programmatic way.
Recent releases of the Zylinc solution let’s you Set up IVR menus directly in the Administration Portal, which is now the recommended way to use IVR menus.
You can still use the IVR Script feature, but keep in mind that its purpose is mainly for backward compatibility with previous versions of the Zylinc solution.

- In the Administration Portal menu, select INSTALL > Portal Configuration
- Make sure that IVR Script is selected
- In the Administration Portal menu, select INSTALL > IVR Script
- In the box, you can insert or edit your Asterisk dialplan script code

Only use the IVR script feature if you have specialist knowledge about the Asterisk dialplan scripting language and the Zylinc solution.
For information about the Asterisk dialplan scripting language, see https://wiki.asterisk.org/wiki/display/AST/Dialplan.

; =================================================
; contains static dialplan additions/changes
; which should not be overwritten in an upgrade
; =================================================
; This script is intended for a 2x 5 queue system with 2 incomming numbers and direct numbers to all queues.
; Switch Queues are 9541-9545 with incomming number for switch 9540
; Contact Center Queues are 9551-9555 with incomming number for Contact Center 9550
; The Two incomming numbers appply routing based on a-number to queues supporting 5 queues; Danish, Swedish, Norwegian, Finish, English
; Un matched numbers are provided an ivr to chose language invalid or no choice are sent to the 5th queues.
; For the script to work 5 switch queues must be create with the numbers 9541 to 9545 and 5 contact center queues with numbers 9551 to 9555
; No queues can be created using the incomming accept numbers 9540 and 9550
; =================================================
[ZyIncoming]
;************* A number sorting (9542) *************
;CC Accept
exten => 9550,1,Set(NumberToQueue=ccenivr) ;Default queue number (Must be defined in portal)
exten => 9550,n,GoSubIf(${CALLERID(num)}?CCSubQueueDetect,${CALLERID(num)},1)
exten => 9550,n,Goto(ZyIncoming,${NumberToQueue},1)
;SW Accept
exten => 9540,1,Set(NumberToQueue=swenivr) ;Default queue number (Must be defined in portal)
exten => 9540,n,GoSubIf(${CALLERID(num)}?SWSubQueueDetect,${CALLERID(num)},1)
exten => 9540,n,Goto(ZyIncoming,${NumberToQueue},1)
;************* CCEnglish IVR ************
exten => ccenivr,1,NoOp(ZyIncoming: CCIVR)
exten => ccenivr,n,Set(CHANNEL(language)=en)
exten => ccenivr,n,GotoIfTime(01:00-23:00,mon-fri,*,*?Menu)
exten => ccenivr,n,Goto(hangup)
exten => ccenivr,50 (Menu),NoOp(ZyIncoming: ccenivr)
exten => ccenivr,n,Read(Menu,custom/1/CCENIVR,1,,3)
exten => ccenivr,n,GotoIf($[${Menu}]?:CCEN)
exten => ccenivr,n,GotoIf($[${Menu}=1]?CCDK)
exten => ccenivr,n,GotoIf($[${Menu}=2]?CCSE)
exten => ccenivr,n,GotoIf($[${Menu}=3]?CCNO)
exten => ccenivr,n,GotoIf($[${Menu}=4]?CCSF)
exten => ccenivr,n,GotoIf($[${Menu}=5]?CCEN)
exten => ccenivr,n,Goto(CCEN)
;************* IVR to DKIVR & Queues *************
exten => ccenivr,100(CCDK),NoOp(CCDK)
exten => ccenivr,n,Goto(9551,1) ;Danish Queue
exten => ccenivr,n,Goto(hangup)
exten => ccenivr,200(CCSE),NoOp(CCSE)
exten => ccenivr,n,Goto(9552,1) ;Swedish queue
exten => ccenivr,n,Goto(hangup)
exten => ccenivr,300(CCNO),NoOp(CCNO)
exten => ccenivr,n,Goto(9553,1) ;Norwegian queue
exten => ccenivr,n,Goto(hangup)
exten => ccenivr,400(CCSF),NoOp(CCSF)
exten => ccenivr,n,Goto(9554,1) ;Suomi queue
exten => ccenivr,n,Goto(hangup)
exten => ccenivr,500(CCEN),NoOp(CCEN)
exten => ccenivr,n,Goto(9555,1) ;English Queue
exten => ccenivr,n,Goto(hangup)
;************* Hangup (ccenivr) *************
exten => ccenivr,1000(hangup),HangUp()
;************* SWEnglish IVR ************
exten => swenivr,1,NoOp(ZyIncoming: SWIVR)
exten => swenivr,n,Set(CHANNEL(language)=en)
exten => swenivr,n,GotoIfTime(01:00-23:00,mon-fri,*,*?Menu)
exten => swenivr,n,Goto(hangup)
exten => swenivr,50 (Menu),NoOp(ZyIncoming: swenivr)
exten => swenivr,n,Read(Menu,custom/1/SWENIVR,1,,3)
exten => swenivr,n,GotoIf($[${Menu}]?:SWEN)
exten => swenivr,n,GotoIf($[${Menu}=1]?SWDK)
exten => swenivr,n,GotoIf($[${Menu}=2]?SWSE)
exten => swenivr,n,GotoIf($[${Menu}=3]?SWNO)
exten => swenivr,n,GotoIf($[${Menu}=4]?SWSF)
exten => swenivr,n,GotoIf($[${Menu}=5]?SWEN)
exten => swenivr,n,Goto(SWEN)
;************* IVR to DKIVR & Queues *************
exten => swenivr,100(SWDK),NoOp(SWDK)
exten => swenivr,n,Goto(9541,1) ;Danish Queue
exten => swenivr,n,Goto(hangup)
exten => swenivr,200(SWSE),NoOp(SWSE)
exten => swenivr,n,Goto(9542,1) ;Swedish queue
exten => swenivr,n,Goto(hangup)
exten => swenivr,300(SWNO),NoOp(SWNO)
exten => swenivr,n,Goto(9543,1) ;Norwegian queue
exten => swenivr,n,Goto(hangup)
exten => swenivr,400(SWSF),NoOp(SWSF)
exten => swenivr,n,Goto(9544,1) ;Suomi queue
exten => swenivr,n,Goto(hangup)
exten => swenivr,500(SWEN),NoOp(SWEN)
exten => swenivr,n,Goto(9545,1) ;English Queue
exten => swenivr,n,Goto(hangup)
;************* Hangup (swenivr) *************
exten => swenivr,1000(hangup),HangUp()
;************* Function for language audo detect Switch*************
[CCSubQueueDetect]
; To Danish Queue
exten => _0045.,1,Set(NumberToQueue=9551) ;Danish Queue number. (Defined in portal)
exten => _0045.,2,Return()
exten => _+45.,1,Set(NumberToQueue=9551)
exten => _+45.,2,Return()
; To Swedish Queue
exten => _0046.,1,Set(NumberToQueue=9552) ;Swedish Queue number. (Defined in portal)
exten => _0046.,2,Return()
exten => _+46.,1,Set(NumberToQueue=9552)
exten => _+46.,2,Return()
; To Norwegian Queue
exten => _0047.,1,Set(NumberToQueue=9553) ;Norwegian Queue number. (Defined in portal)
exten => _0047.,2,Return()
exten => _+47.,1,Set(NumberToQueue=9553)
exten => _+47.,2,Return()
; To Finish Queue
exten => _00358.,1,Set(NumberToQueue=9554) ;Finish Queue number. (Defined in portal)
exten => _00358.,2,Return()
exten => _+358.,1,Set(NumberToQueue=9554)
exten => _+358.,2,Return()
; To English Queue
exten => _0044.,1,Set(NumberToQueue=9555) ;English Queue number. (Defined in portal)
exten => _0044.,2,Return()
exten => _+44.,1,Set(NumberToQueue=9555)
exten => _+44.,2,Return()
exten => _X.,1,Return()
exten => _+.,1,Return()
exten => _[a-zA-Z].,1,Return()
exten => t,1,Return()
exten => i,1,Return()
exten => h,1,Return()
;************* Function for language audo detect Switch*************
[SWSubQueueDetect]
; To Danish Queue
exten => _0045.,1,Set(NumberToQueue=9541) ;Danish Queue number. (Defined in portal)
exten => _0045.,2,Return()
exten => _+45.,1,Set(NumberToQueue=9541)
exten => _+45.,2,Return()
; To Swedish Queue
exten => _0046.,1,Set(NumberToQueue=9542) ;Swedish Queue number. (Defined in portal)
exten => _0046.,2,Return()
exten => _+46.,1,Set(NumberToQueue=9542)
exten => _+46.,2,Return()
; To Norwegian Queue
exten => _0047.,1,Set(NumberToQueue=9543) ;Norwegian Queue number. (Defined in portal)
exten => _0047.,2,Return()
exten => _+47.,1,Set(NumberToQueue=9543)
exten => _+47.,2,Return()
; To Finish Queue
exten => _00358.,1,Set(NumberToQueue=9544) ;Finish Queue number. (Defined in portal)
exten => _00358.,2,Return()
exten => _+358.,1,Set(NumberToQueue=9544)
exten => _+358.,2,Return()
; To English Queue
exten => _0044.,1,Set(NumberToQueue=9545) ;English Queue number. (Defined in portal)
exten => _0044.,2,Return()
exten => _+44.,1,Set(NumberToQueue=9545)
exten => _+44.,2,Return()
exten => _X.,1,Return()
exten => _+.,1,Return()
exten => _[a-zA-Z].,1,Return()
exten => t,1,Return()
exten => i,1,Return()
exten => h,1,Return()
This is help for Zylinc version 6.5. To view Zylinc unified help for other versions, go here.
© 2021 Zylinc A/S • Disclaimer
Zylinc unified help is a UK Technical Communication Awards winner
Help version: 24 February 2021 14:16:14
Share this topic: