ECR Useful Link Collection
ECR Useful Link Collection
This topic is taken from the Swyx Forum Archive (2007-2014) and was originally started on 15.12.2009 by me. Since then it got constantly updated.
This topic provides a list of all online available resources regarding Extended Call Routing (ECR).
"Must have" Links
- Server Script API
- GSE build in functions
- VBScript build in functions
- Persistent Variables
- How to filter SwyxWare traces for call routing output of single call
Useful VBScript Functions for ECR Scripts
- IsPublicHolidayAT (Austria, including Federal States)
- IsPublicHolidayDE (Germany, including Federal States)
ECR scripts in the Swyx Knowledgebase
- Request configuration and user data (incl. user status) within an Extended Call Routing script (kb2910)
- Check Outlook Calendar for Conference Room (CRM) (kb2379)
- Check Outlook Calendar for Conference Room (GSE) (kb2378)
- Check PIN for Conference Room (GSE) (kb2377)
- Access web pages (and evaluate their content) within a script (kb2650)
- Call logging into database (kb2218)
- Call logging into textfile (kb2217)
- Caller verification in database (kb2219)
- Check for Bank Holiday (kb2285) (uses a text file for bank holiday list. For German bank holidays it is highly recommended to use the above listed IsPublicHoliday function)
- Tweet incoming calls on Twitter (kb4067)
- Short Message Service for left Voice Mails (kb2079)
- Speaking Clock (kb2249)
ECR scripts on Swyx Forum (forum, blogs and downloads)
- Best practice for multi-language call routing scripts (do also take a look into the blog post #7: Welcome to Babylon!)
- How to configure call routing for a group
- How to avoid loops
- How to include own VBscript code libraries into an ECR script
- How to evaluate post dialing digits
- How to figure who took a call after connecting it to a group
- How to allow calls from certain users / extensions only
- How to manipulate the displayed name and number in SwyxIt!/SwyxPhone
- How to setup a simple call queue
- How to configure a repeated announcement within a call queue without position or waiting time announcement
- How to block certain numbers from calling based on a global PreProcessing rule
- How to implement a "call park" feature
- Simple Night Service for Swyx
ECR scripts (advanced) here on Swyx Forum
- Project - Call Routing Extensions (Longest Waiting, Persistent Variables, Zendesk Integration)
- Project - Conference Room Manager
- Project - Open Queue
ECR webinar series in Swyx Partner Net (for Swyx Partners only)
- #1: Deployment of GSE Call Routing Rules (EN/DE)
- #2: How to use GSE Rule Parameters (EN/DE)
- #3: Verwendung von GSE Aktionen (--/DE)
- #4: Global Rules via PreProcessing (EN/DE)
- #5: Multilingual call routing scripts (--/--)
- #6: Usage of own VBScript code in call routing (GSE) scripts (EN/DE)
- #7: How to access text files from within the call routing (EN/DE)
- #8: How to access databases from within the call routing (EN/DE)
- #9: Analyse fehlerhaft laufender Call Routing Skripte (--/DE)
- #10: SwyxWare Call Queues (EN/--)
- #11: System Variables (EN/--)
- #12: Usage of Persistent Variables (--/--)
And finally, my blog...
The Call Routing Guy
- #2: Hello, it's me! - call yourself and get routed into your remote inquiry
- #3: Be more flexible on dates! - how to check for a time period when having the dates in variable
- #4: Take me to your leader! - how to transfer call routing rules from one user to another
- #5: Let me in! - how to setup a pin verification in front of your conference rooms
- #6: Make it easy! - how to make use of rule parameters and extend the previous pin verification with them
- #7: Welcome to Babylon! - different approaches to implement multi language call routings
- #8: Today I will stay in bed! - let your call routing know about public holidays
- #9: Don't be shy, be chatty! - how to use proper tracing in call routing scripts
- #10: I can't hide anymore! - longest waiting resp. longest idle call distribution
- #11: What time is it? - a speaking clock as call routing script
- #12: Rotating call distribution to engineers - a special call distribution approach
GSE Build-In Functions
GSE Build-In Functions
A brief description of what GSE Build-In Function are, can be found in this forum post:
The following is a list of all build-in functions:
- IpPbx.Away (from 2011)
- IpPbx.DoNotDisturb (from 2011)
- IpPbx.UserFreeStatusText (from 2011)
- IsAway() (from 2011)
- IsBusy() (from 2011)
- IsDoNotDisturb() (from 2011)
- IsLoggedIn() (from 2011)
- IsOutlookBusy() (from 2011)
- IsOutOfOffice() (from 2011)
There are a few other build in functions available which are not part of the list. These functions where available in the list of function in earlier SwyxWare versions, but have been replaced by new functions / properties in the meantime. These functions are still available for compatibility purpose but should not be used in new scripts.
Persistent VariablesIf you use variables in your script the content of these variables will be lost when the current call ends. Furthermore it is not possible to share the content of a variable with other simultaneously running scripts (same scripts, different scripts of the same or other user). There are lots of cases where you need to "remember" the content of a variable or simply share information between simultaneously running scripts.Persistent Variables solve this problem. This extension provides an easy to use VBScript class (PersistentVariable) which stores it's content into a database and retrieves it from there.The visibility, i.e. scope, of a persistent variable can be configured finely grained:
A variable with the scope User is accessible form all scripts of the current user. A user scope variable of another user with the same name does not interfere.A variable with the scope Global is accessible from all scripts of all users.A variable with the scope Namespace is accessible from any script (of any user) defining the same namespace. A variable being stored in another namespace but with the same name does not interfere.The default scope is User, i.e. each user has his own set of persistent variables without need to worry to interfere with other user's scripts.Example: Night SwitchBased upon the Persistent Variables extension this is an example on how to implement night switch functionality. There are four scripts included:
Night Switch Manager
Modify the night switch status via DTMF menu or Post Dialing Digits (e.g. using speed dial keys to call into the manager to switch the night switch on or off)
Night Switch enabled call routing script
A simple example on how to use the night switch persistent variable in a call routing script to differ between day and night routing
WebExtension for SwyxIt! Skin
A simple ASP web page that displays the current state of the night switch as red or green area. By clicking into this area/page the status can be toggled.
Shortcut for SwyxIt! Skin or Windows Desktop
A simple WSH script which toggles the current state of the night switch.
Please find the download for this project here.
A complete documentation explaining the setup, usage and all included examples can be found here.
Persistent Variables for SwyxWare Extended Call Routing
This is a Swyx Forum Open Source Project.
Copyright (c) 2011-2017 by Swyx Forum
Copyright (c) 2011-2017 by Tom Wellige
All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Server Script API - Introduction
Server Script API - Introduction
This article will cover all "hidden" Server Script API functions currently not well documented in any official SwyxWare ECR manual. It will be filled over the time, so please do not expact a complete manual right from the beginning.
There are three different COM interfaces diectly available witihn an ECR script, which do not need to be declared via CreateObject.
This interface covers properties and methods being directly connected to the current call.
This interface covers properties and methods being directly connected to the user the current script is running for.
This interface covers common properties and methods connected to scripting purposes.
There is a fourth public COM/DCOM Object available, PBXConfig, which is fully covered in the Swyx Knowledgebase. The properties and methods of this object are available for any 3rd party application running on the SwyxServer or any other machine within the network having a DCOM connection to the SwyxServer machine.
The above mentioned 3 interfaces are available within an ECR Script (made by the Graphical Script Editor) only !