You are on page 1of 75

TelAlert™

Voice and Hardware Guide

Version 5.71
Copyrights

Copyright © 2005 - 2010 MIR3, Inc.

TelAlert™ Voice and Hardware Guide

This document is copyrighted and all rights are reserved. The distribution and sale of this product
are intended for the use of the original purchaser only per the terms of the Agreement.

This document may not, in whole or part, be copied, photocopied, reproduced, translated,
reduced, or transferred to any electronic medium or machine-readable form without prior written
consent in writing from MIR3, Inc.

MIR3, TelAlert, IN, inEnterprise, inEnterprisePRO, inAlertCenter, inAlertCenterPRO, inCampusAlert


inGovAlert, inGovAlertPRO, inSalesTalk, inTechCenter, inTechCenterPRO, inWebServices,
inConnect, inConsole and Enterprise Access Control are trademarks of MIR3, Inc. All other product
and company names are marks of their respective holders.

This document is the property of MIR3, Inc. and may not be distributed in any manner except with
the express written permission of MIR3, Inc.

Software Version: 5.71

Document Revision: 3.0

MIR3, Inc.
3398 Carmel Mountain Road
San Diego, CA 92121

Phone: 858.724.1200

Fax: 858.724.1201

Email: support@mir3.com

http://www.mir3.com

2 | TelAlert Version 5.2 Voice and Hardward Guide


Preface
The TelAlert™ Version 5.71 Voice and Hardware Guide describes how to use the TelAlert™
software. While the TelAlert Text to Speech (TTS) component is supported only on Windows
platforms, it can with a TelAlert Messaging Server running on any of the major platforms (Sun
Solaris, HP-UX, Windows, and Linux). The information in this document is accurate regardless of
the platform used to support the TelAlert system.

This Guide does not include instructions about how to install, configure or integrate the TelAlert 6e™
system with third-party data sources.
Table of Contents

Introduction ................................................................................... 1
1.1 Overview .............................................................................................. 1
1.2 Guide Introduction ................................................................................. 1
1.2.1 Contents ....................................................................................... 1
1.2.2 Audience....................................................................................... 1
1.2.3 Related Technical Documentation ...................................................... 1
1.3 Product Support Contact Information ......................................................... 1
1.4 TelAlert™ Solutions from MIR3 .................................................................. 2
1.5 Guide Conventions ................................................................................. 2
1.5.1 File Locations ................................................................................. 4
1.5.2 Screen Captures ............................................................................. 4
1.6 Voice and TTS Functionality...................................................................... 4
Dialogic Hardware and Voice/TTS Software Installation .................. 7
2.1 Overview .............................................................................................. 7
2.2 Introduction to Text to Speech (TTS) ......................................................... 7
2.3 Supported Platforms ............................................................................... 8
2.3.1 Checking the Voice/TTS Server Version............................................... 8
2.4 Chapter Organization .............................................................................. 8
2.5 Voice Fonts ........................................................................................... 9
2.6 Dialogic Card and TTS Software Installation ................................................. 9
2.6.1 Preparing to Install the TTS Software ............................................... 10
2.6.2 Installing the TTS Software Contained on the CD ................................ 16
Step 1: Install the TelAlert TTS Driver ..................................................17
Step 2: Install the TTS Software .........................................................17
Step 3: Install American English Voice Font(s) .......................................18
2.6.3 Configuring a Custom TTS Dictionary................................................ 18
Step 1: Change the Configuration File to Enable a Dictionary ....................19
Step 2: Create an Empty Formatted Dictionary File.................................20
Step 3: Edit the Dictionary to Customize Pronunciations ..........................20
2.7 Dialogic TTS [Port] Definition (Local and Slave).......................................... 21
2.7.1 Local Dialogic Ports ....................................................................... 21
2.7.2 Slave Dialogic Ports ....................................................................... 22
2.7.3 Remote Dialogic Ports .................................................................... 25
2.7.4 Phone Line Considerations .............................................................. 25
2.8 Testing Hardware Installation and Port Definition ....................................... 25
2.8.1 Using TestComm .......................................................................... 26
2.9 Advanced TTS Configurations ................................................................. 28
2.9.1 Use of TTS with TelAlert 6e............................................................. 28
2.9.2 Embedded XML Control of TTS Voice ................................................ 28
2.9.3 TTS Rate Control .......................................................................... 29
Software Configuration for Outgoing Messages ............................. 31
3.1 Overview ............................................................................................ 31
3.2 Before You Begin.................................................................................. 31
3.2.1 Installation and Upgrade Considerations ............................................ 31
3.3 Getting Started .................................................................................... 32
3.3.1 Needed Information ...................................................................... 32
3.3.2 General Considerations .................................................................. 33
3.4 Voice Notification Logic .......................................................................... 34
3.5 Setting Up Live Voice Notification ............................................................. 38
3.5.1 Elements .................................................................................... 38
3.6 Setting Up Voice Mail/Answering Machine Notification................................... 42
3.6.1 Elements .................................................................................... 42
3.7 Setting Up Live Voice/Voice Mail Flexibility ................................................. 48
3.7.1 Elements .................................................................................... 48
3.8 Setting Up Voice Paging Functionality ....................................................... 53
Software Configuration for IVR Menus .......................................... 55
4.1 Overview ............................................................................................ 55
4.2 Getting Started .................................................................................... 55
4.2.1 Needed Information ...................................................................... 55
4.2.2 General Considerations .................................................................. 55
4.2.3 TelAdmin vs. telalert.ini File Configuration .................................... 56
4.2.4 Making TelAlert Re-Read its Configuration File .................................... 56
4.3 Setting Up Voice Menus ......................................................................... 57
4.3.1 Enabling Dial-In Voice Menu Access .................................................. 57
4.3.2 Configuring [User] Definitions for Voice Menus ................................... 58
4.4 TelAlert’s Default Voice Menu .................................................................. 60
4.4.1 Voice Menu Basics ......................................................................... 60
Logging on to the System ...................................................................60
Navigating and Customizing the Default MenuAck Voice Menu....................60
4.5 Creating Custom Voice Menus ................................................................. 61
4.5.1 General Considerations .................................................................. 62
4.5.2 Menu Event Keywords .................................................................... 63
4.5.3 Menu Script Commands ................................................................. 64
4.5.4 Menu Script Examples ................................................................... 66
4.5.5 Disabling User Verification for Dial-In Voice Menu Access....................... 66
4.5.6 Voice Menus and Command Line Requests.......................................... 67
Appendix ...................................................................................... 69
MIR3 Contact Information ........................................................................... 69

6 | TelAlert Version 5.2 Voice and Hardward Guide


1
Introduction
1.1 Overview
This chapter includes a high-level look at the TelAlert Voice and TTS (Text-To-Speech) software
technologies and their supporting Dialogic hardware.

1.2 Guide Introduction


Thank you for using the MIR3 TelAlert Voice and Hardware Guide, your primary source for configuring
Text to Speech (TTS), Interactive Text to Speech (ITTS) and Dialogic boards in TelAlert.

1.2.1 Contents
To help you learn how to use the TelAlert Voice and Hardware effectively, the first page of each chapter
includes a bulleted table of contents summarizing the information in the chapter.
1.2.2 Audience
The TelAlert Voice and Hardware Guide is designed for use by individuals who are responsible for the
configuration and administration of the TeAlert Urgent Messaging and TelAlert 6e systems.

1.2.3 Related Technical Documentation


This manual covers the physical specifications of each Engine, setting up and connecting the Engines, as well
as software configuration information for the basic functionality associated with each Engine. However, the
possibilities available to you for configuring your TelAlert Urgent Messaging System (as well as integration of
TelAlert with other applications) are quite wide-ranging: For this reason, you will want to use this Guide in
conjunction with the following manuals to gain the complete picture of TelAlert implementation possibilities:

 TelAlert Administrator Guide - This detailed information on how to use recipient-related


features in the TelAlert system functions. It assumes you have installed TelAlert and are ready to
begin configuring and administering it.

 The TelAlert Desktop Guide - This guide contains details on using the TelAlert Desktop—
including TelAdmin, a GUI-based configuration tool that is included with TelAlert. TelAdmin allows
you to configure TelAlert from within a graphical application rather than from a command line.

1.3 Product Support Contact Information

Refer to Appendix: MIR3 Contact Information for MIR3 customer support.


1.4 TelAlert™ Solutions from MIR3
TelAlert is a trademark of MIR3, Inc., but is referred to without trademark symbols in the remainder of
this document.

1.5 Guide Conventions


This guide is written in Microsoft Word format and converted to PDF format to preserve the formatting.
The following information provides you with the key to help you identify information as you navigate
through this Guide:

Example Purpose

Use of Monospaced Fonts

telalertc -i DestinationName -m "Message" Command line text — Text


Italicized text within a command line example represents representing information entered
a variable. In the above example, DestinationName is by the user at the command line or
the invocation of an item in TelAlert’s configuration file; presented by TelAlert as output is
message represents the message text to be sent by shown in a monospaced font.
TelAlert.
The same monospaced font is used
2001/03/16 11:50:11>Event [21]Alert
to represent file names, file
Completed (23), Status: [81]Message
extensions, and lines of code drawn
sent, TelamonTestPage from TelAlert files. Where a single
line is too long to be represented as
such, the continuation is indented.
Note that long lines in the
telalert.ini file may be
continued on the next line, but you
must use an ampersand (&) to do
this.

Click OK. Within procedural (how-to) text, boldface words are


characters you type or elements you can click. Within
overview or conceptual text, bolded words may simply
represent concepts that have been highlighted to
emphasize their relative importance.

1. Go to the Add User Within procedural text, numbered steps denote actions that
page. should be followed in sequence.

Message Formatting

In this guide, message text passed on the command line is enclosed in quotation marks.
This is not required in all cases, but putting your message text in quotation marks is an
excellent habit, as it ensures that neither TelAlert nor any shell you might be using will
read the message as anything other than a string of text to be delivered.

2 | TelAlert Version 5.2 Voice and Hardward Guide


Broken Lines in the telart.ini File

In the .ini file excerpts presented in this guide, you will sometimes see an ampersand (&)
at the end of a line. This symbol tells TelAlert to treat the next line as a continuation of
the preceding one.

If you wish to break a line in the .ini file so that it continues on the next line, you must
place an ampersand at the end of the one line, just at the point prior to continuation.
Otherwise, TelAlert will treat the continuation as a new line.

Any white space before the & character will be retained in the logically concatenated
single line. Any leading white space on the continuation line will be removed.

Note that line breaks in this document due to page width do not necessarily correspond
to line breaks in telalert.ini. As noted above, line breaks that occur in this
document due to page width are indented on the following line.

Example Purpose
"Open telalert.ini and search for ..."
File names and extensions — The same
" ... gives the file a .bak monospaced font is used to represent file names
extension and then ..." and extensions.

{LauraTextPager} telalert.ini examples — Entries drawn


... from the TelAlert configuration file are also
Configuration=SkyTelNationalText represented in a monospaced font.
Pager
PIN=4850879

The ellipses (...) indicate information that


may be present in the actual
telalert.ini entry but which is
omitted in the example because it is not
relevant here.

Click OK. Within procedural (how-to) text, boldface words


are characters you type or elements you can
click. Within overview or conceptual text, bolded
words may simply represent concepts that have
been highlighted to emphasize their relative
importance.

2. Go to the Add User page. Within procedural text, numbered steps denote
actions that should be followed in sequence.

 Click Save to save your work. Within procedural text, bulleted text denotes
available options. Within overview or conceptual
 Click Cancel to exit without
text, bulleted text also denotes supporting
saving.
information that is subordinate to the major
topic being discussed in the Guide.

Chapter 1: Introduction | 3
Example Purpose

The light bulb icon denotes a helpful tip.

The information icon denotes reference material.

The note icon indicates definitions or


considerations that help you understand the
related task.

1.5.1 File Locations


Default TelAlert installation causes TelAlert to be installed in /usr/telalert in /tmp on UNIX systems,
or in c:\Program Files\telalert on Windows. There are various subdirectories located under these
main directories. While you are not required to use these defaults, all references to file locations in the
TelAlert documentation assume (for simplicity of representation) that these default settings have been
used. Also, this guide represents TelAlert file locations using UNIX notation; in this regard, the key
difference to be noted by Windows users is the use of forward slashes instead of back slash.

You are not required to accept these defaults during installation, but all references to file locations in
TelAlert documentation assume (for simplicity of representation) that these default settings have been
used.

1.5.2 Screen Captures


Due to the flexibility of permissions in the TelAlert system, some of the functionality represented in the screen
captures for this Guide is not always visible to, or functional for, all users. The User Interface screen captures
are intended for instructional use. The system administrator determines access to specific functions using the
Enterprise Access Control (EAC) role-based access functions available in the TelAlert system.

1.6 Voice and TTS Functionality


TelAlert supports two separate "speech" software technologies:

 TTS (Text-To-Speech), which uses speech synthesis.

 ITTS (Interactive Text –To-Speech), which allows the reciepient to respond to TelAlert

These software technologies are supported on Intel’s Dialogic telephony cards. TelAlert only supports
Dialogic cards installed in Windows machines. If the TelAlert server is not a Windows machine, an
additional ’slave’ Windows box, controlled by the TelAlert server, will be required.

Dialogic is now an Intel subsidiary. Dialogic does not sell its cards directly to end-users; customers must
purchase Dialogic cards from a distributor or retailer. In addition customers must purchase the Dialogic
drivers seperatly, the drivers do NOT come with the Dialogic boards. MIR3 recommends purchasing from a
'master' distributor that has extensive Dialogic experience; MIR3 is NOT an authorized Dialogic distributor.

Dialogic does not provide technical support to end-users. MIR3 cannot provide Dialogic hardware technical
support. Customers must obtain hardware support from Dialogic-authorized 'master' distributors, which
again is why MIR3 recommends purchasing from an authorized Dialogic 'master' distributor with excellent
technical support capability.

4 | TelAlert Version 5.2 Voice and Hardward Guide


Functions supported on Dialogic boards include:

 Dialup outgoing Voice and TTS messaging

 Incoming Voice and TTS IVR (Interactive Voice Response) menus

Dialogic boards do NOT support:

 Dialup outgoing TDD (Telecommunications Devices for the Deaf) messaging and incoming
TDD menus

 Outgoing dialup pager/cellphone numeric/text messaging (analog modem)

 Messaging over loudspeakers

Dialogic boards must be installed in Windows machines (although Intel/Dialogic provide some Linux
drivers, certain third-party software that TelAlert uses for both Voice and TTS functionality is only
supported on Windows). The Windows machine containing the Dialogic boards does NOT have to be the
TelAlert server - the Dialogic boards can be managed remotely from a TelAlert server installation on
another machine (either a UNIX TelAlert server, or a Windows TelAlert server that does not have room to
install the Dialogic boards). Of course, this requires that certain software be installed on the Windows
machine as well as on the TelAlert server.

Chapter 1: Introduction | 5
2
Dialogic Hardware
and Voice/TTS
Software Installation
2.1 Overview
This chapter contains an overview of Dialogic cards, including hardware installation, driver
installation, and choice of Voice and/or TTS software technologies.

2.2 Introduction to Text to Speech (TTS)


While wireless devices, such as cell phones and pagers, have an almost ubiquitous reach, there is still a demand
to provide an additional or alternative notification pathway. A comprehensive messaging system must have a way
to deliver messages in any way a device can accept it, including in a synthesized or recorded human voice.
These “Voice” messages can be in the form of simple one-way announcements or more complex interactive,
password-driven menu response systems.

The TelAlert Voice/TTS Server can deliver natural-sounding speech in a variety of languages. Pronunciation of
non-standard or technical terms and their speed of rendering can also be finely controlled.

The TelAlert Messaging Server can be deployed on any supported operating system and controls the TelAlert
Voice/TTS Server via TCP/IP. The TelAlert Voice/TTS Server requires Microsoft Windows (see Supported
Platforms below), and utilizes Intel Dialogic voice drivers and hardware to interface with a PBX or the public
telephone system.

For distributed networks, the TelAlert Messaging Server(s) and the TelAlert Voice/TTS Server(s) can be deployed
on different machines. This provides a fault tolerant, flexible and scalable voice capability that matches the needs
of today’s global business.
2.3 Supported Platforms
Required Components Supported Platforms

TTS software Windows NT/2000/XP


Windows Server 2003

Dialogic telephony boards See the following Intel documents - Guide to Intel Dialogic
(D/4PCI, D/4PCIU, or D/4PCIUF) System Releases, Operating Systems, and Intel Dialogic and
Intel NetStructure Boards.
(http://download.intel.com/design/telecom/applnots/9861.pdf)

Dialogic System Release software See the following Intel documents - Guide to Intel Dialogic
(6.0 or 5.1.1) System Releases, Operating Systems, and Intel Dialogic and
Intel NetStructure Boards,
(http://download.intel.com/design/telecom/applnots/9861.pdf)

TelAlert Messaging Server 5.71 See TelAlert 5.71 Release Notes

Please refer to TelAlert Release Notes for most current platform support information.

2.3.1 Checking the Voice/TTS Server Version

From a command window, type telalertv –version to display the program’s version information. If this version
of TelAlertV has been correctly installed, the output will look like this:

telalertv_SR6(5.71):Windows 32 . . . [etc].

2.4 Chapter Organization


Here’s a summary of TTS implementation steps covered in the following sections:

 Dialogic Card Installation

 Dialogic Voice/TTS Media Controller

 Visual Voice Software Installation

 TTS Software installation from CD

 Testing Hardware Installation and Port Definition

8 | TelAlert Version 5.2 Voice and Hardward Guide


2.5 Voice Fonts
The TelAlert Voice/TTS Server now supports AT&T Natural Voices fonts that are encoded at 8K or 16K sample
rates. The prior version also technically supported both 8K and 16K sample rates, but all previous voice fonts
were distributed only in 16K format. TelAlert is now standardizing on 8K fonts for all new American English TTS
installations. Users do not have to update old 16K fonts because the new software can dynamically switch
between 8K and 16K fonts as necessary.

The following table provides a summary of available voice fonts. Fonts may be selected using either their full
name or short name.

Language Gender Encoding Short Full Name


Name
American English Male 8K Mike ATT DTNV1.4 Mike

American English Female 8K Crystal ATT DTNV1.4 Crystal

American English Male 16K Mike16 ATT DTNV 1.4 Mike16

American English Female 16K Crystal16 ATT DTNV 1.4 Crystal16

Spanish Male 16K Alberto16 ATT DTNV 1.4 Alberto16

German Male 16K Reiner16 ATT DTNV 1.4 Reiner16

French Male 16K Alain16 ATT DTNV1.4 Alain16

Use care when specifying Voice Font names

• There are inconsistencies in the naming convention used for full names. The position of
spaces must exactly match the names shown in the table when using full names to reference
a voice font.
• Default fonts will now be used unless a full match is found for the specified font name (for
example, “crystal1” was entered instead of “crystal16”).

2.6 Dialogic Card and TTS Software Installation


The TTS CD contains several separate installation programs. These can be used in various combinations to
install or upgrade TelAlert TTS software on a Windows NT/2000/XP/2003 machine equipped with Dialogic
telephony interface cards.

This Dialogic-equipped machine may also host the TelAlert Messaging Server software (the TelAlertE service
daemon and its child processes); or this Dialogic-equipped machine may be a ‘slave’ machine running under the
control of a separate machine (either Windows or Unix) that contains the TelAlert Messaging Server software.

TelAlert supports both synthesized text to speech (TTS) and pre-recorded speech (Voice) telephony technology.
TTS is a superset of Voice. Therefore, the TelAlert Voice technology software must be installed before installing
the TTS technology software. The Voice technology is installed automatically as part of a full installation of the
TelAlert Messaging Server software on a Windows machine; or by a special “TelAlertV” InstallShield package on
a “slave” Dialogic machine.

Chapter 2: Dialogic Hardware and Voice/TTS Software Installation | 9


Note: If you are migrating an existing Voice installation to TTS, or upgrading an existing TTS 5.6 installation to
5.71, modify the procedure as described below. Note that these modifications are not required if
upgrading from TelAlert 5.61, only 5.6 and earlier.

 In both cases, upgrade the TelAlert software to 5.71 on the TelAlert server, and on the
“slave” Dialogic machine (if any). Confirm that the telalert, telalerte, telalertv, and
telaconfe executables are all version 5.71.

 For Voice to TTS migrations, start at Step 7B, “For Voice-TTS Migrations”.

 For TTS 5.6 to 5.71 upgrades:

o If you wish to change your voice fonts, start at Step 9: “Install TTS software using the TTS
CD”. No other software should be installed from the TTS CD.
o If you do not want to change your voice fonts, start at Step 10B, “For all cases”.

2.6.1 Preparing to Install the TTS Software


1. Install the Dialogic boards and set the board IDs as follows:
A. Prior to installing the board in a slot, make sure the board ID is set as follows:

 Set the board ID to 0 if this is the first Dialogic board installed on the machine.

 Set the board ID to 1 if it is the second board, to 2 if it is the third, and so on.

B. When you physically install the boards, insert the first board in the first PCI slot, the second board
in the second PCI slot, and so on. Do not skip slots, but if you have to, write down the board ID and
PCI slot number of each board for reference when you configure the Dialogic software.
2. After booting the machine, cancel out of the Windows “Found new hardware” wizard, if Windows started
the wizard.
3. Install the Dialogic System Release (SR) software from a separate Dialogic CD.
Note: Several different driver software versions are available: You must use the correct version for your
Dialogic card model and Windows version.
A. During the installation, select the following options:

 When prompted for a location for the Destination Directory, the Dialogic installer
will suggest installing the software on the drive specified by the “System Drive”
environment variable (it may or may not be drive C:\). We strongly recommend
accepting the installer’s suggested location.

 When prompted, select the Compact (22 MB) setup option.

 When prompted to run the Dialogic Board Configuration (DCM), leave the Run
Board Configuration (DCM) box unchecked. It is recommended that you reboot
before running the DCM.

B. After installing the SR software, install any SR software feature packs or service packs that are
required for your operating system and board.
C. Reboot Windows, and cancel out of the Found New Hardware wizard if it appears on the screen.
4. After installing the SR software, you need to use the DCM to auto-detect the Dialogic board and create
configuration data. After that, you need to setup the Dialogic system service to automatically start when
the machine is rebooted.

10 | TelAlert Version 5.2 Voice and Hardward Guide


To add the board data and set the Dialogic system service to auto-start, do the following:

A. Right-click the TelAlert icon in the system tray, and select TelAlert Stop.
B. From the Start menu, select Programs > Intel Dialogic System Software > Configuration
Manager-DCM.
C. In the Computer Name dialog box, select the Local computer and click Connect. To connect to a
remote computer, select the Remote radio button, enter the computer name, and click Connect.
For TCP/IP networks, you can enter the IP address instead of the remote computer name.
The DCM main window displays. When DCM is started with the Dialogic System Service startup
mode set to manual, DCM automatically detects PCI boards and adds configuration data. Your
installed boards appear in a tree structure in the main window. The icon for each board indicates
that the board is not yet available, even though it is enabled (as shown via the Action menu).
To set up the Dialogic system service to automatically start when the machine is rebooted,
do the following:

A. Select Service > Start Service to start the Dialogic System Service.
Each board listed should show a green light indicating that it is available, and the System Service
Status should say "Running". If this is not the case, run the Universal Dialogic Diagnostics Utility
(Start > Programs > Intel Dialogic System Software > Universal Dialogic Diagnostics Utility)
for additional information or contact your Dialogic distributor for support.
B. Select Service > Startup Mode > Automatic to ensure the Dialogic System Service is
automatically restarted whenever you reboot your machine.
C. Exit DCM, reboot your machine, and open DCM again.
Again, each board listed should show a green light indicating that it is available, and the System
Service Status should say Running. If this is not the case, run the Universal Dialogic Diagnostics
Utility (Start > Programs > Intel Dialogic System Software > Universal Dialogic Diagnostics
Utility) for additional information or contact your Dialogic distributor for support.
5. If this machine will host the TelAlert Messaging Server software, install it (if it is not already installed).
Make sure the license is either an evaluation license, or a permanent license with a non-zero number of
allowed TTS Ports. (The TelAlert Messaging Server software is included on your TelAlert or Corporate
Messenger CD.)
6. If the TelAlert Messaging Server software will be on another machine, do the following:
A. Install the TelAlert Messaging Server software on the other machine (if it is not already installed).
Make sure the license is either an evaluation license, or a permanent license with a non-zero
number of allowed TTS Ports. (The TelAlert Messaging Server software is included on your TelAlert
or Corporate Messenger CD.)
B. Install the “slave” linking software on this machine so that the TelAlert Messaging Server machine
can control this machine. Run the TelAlertV560.exe InstallShield package located in the
TelAlertBin directory on the TelAlert or Corporate Messenger CD. (This InstallShield package is not
accessible through the AUTORUN menu on the CD.) The InstallShield process will create some
data files which must be transferred to the separate TelAlert Messaging Server machine. See the
Voice and Hardware Guide for details.

Chapter 2: Dialogic Hardware and Voice/TTS Software Installation | 11


7. Setup the Access and Port sections. For new installations, use whichever administrative method
you have chosen for configuring the TelAlert Messaging Server (using TelAlert Desktop or editing
telalert.ini files).
 Using TelAlert Desktop:

A. Configure the Access section to accept incoming phone calls by setting the keyword
VoiceDialInAccess=True.

B. Configure the Access section to use Voice technology by setting the keyword
VoiceDialInTTS=False.
C. Make sure a phone line is connected to a voice channel jack on the Dialogic board. You can
connect to any jack on the board. However, the VoiceLine keyword in the Port Voice Voice1
paragraph must match the voice channel jack number to which you connect. The default
VoiceLine keyword value is 1, matching the first voice channel jack.

 Editing the telalert.ini file:

A. Configure the Access section to accept incoming phone calls by setting the keyword
VoiceDialInAccess=True.

B. Configure the Access section to use Voice technology by setting the keyword
VoiceDialInTTS=False.
C. Create and activate a Port paragraph of Model=TTS. The Types keyword value should
include Voice, TTS, Interactive Voice, and Interactive TTS.

For Voice to TTS migrations, use whichever administrative method you have chosen for configuring
TelAlert Messaging Server (using TelAlert Desktop or editing telalert.ini files).

 Using TelAlert Desktop:

A. Configure the Access section to accept incoming phone calls by setting the keyword
VoiceDialInAccess=True.

B. Configure the Access section to use Voice technology by setting the keyword
VoiceDialInTTS=False.
C. To change your existing Port(s) from Model=Voice to Model=TTS, use the following procedure:
a. Open TelAlert Desktop and connect to the TelAlert server.

12 | TelAlert Version 5.2 Voice and Hardward Guide


b. Select and open for Update the Voice port you wish to change.

Chapter 2: Dialogic Hardware and Voice/TTS Software Installation | 13


c. Click on the Import button at the bottom of the window.
d. In the Paragragh Import window that opens, click on the Edit Imported Text tab.
e. Type in Model=TTS

f. Click on Preview Import Results tab.


g. Click on Apply.
h. Click Save, Save, then OK. At this point, the Port definition is moved from under the Voice
tree to the TTS node of the tree.

14 | TelAlert Version 5.2 Voice and Hardward Guide


i. Select and open for Update the same port now under the TTS node.
j. Click on the Types tab.
k. Press the Ctrl key and highlight TTS and InteractiveTTS under Available Types, and
then click Add.

l. Click Save, Save, then OK. The Port definition is now completely modified from Voice to TTS.
m. Repeat for all Voice ports.

 Editing the telalert.ini file:

A. Configure the Access section to accept incoming phone calls by setting the keyword
VoiceDialInAccess=True.
B. Configure the Access section to use Voice technology by setting the keyword
VoiceDialInTTS=False.
C. Change your existing Port(s) from Model=Voice to Model=TTS.
8. Make sure a phone line is connected to the Dialogic hardware. Make a phone call to the associated
Dialogic port, verify the Port is answered using (non-TTS) Voice technology.
9. Install TTS software using the provided CD (for details, see Installing the TTS Software Contained
on the CD). If the Autoplay menu does not appear when the CD is inserted, do either of the following:

 Right-click on the CD drive in Windows Explorer, and select Autoplay.

 Run the InstallTTS.exe program in the CD’s root directory. The Autoplay menu contains
four separate installation steps. Perform the steps in the order shown. As you click on
each step, a separate installer will launch on top of the Autoplay menu. When each
installer completes, go back to the Autoplay menu and select the next installer. When all
installers have been run, close the Autoplay menu. More detail on each of these separate
software installations is given in the next section of this document.

Chapter 2: Dialogic Hardware and Voice/TTS Software Installation | 15


10. Using your normal administrative method:

 For new TTS installs and Voice-TTS migrations, change the Access section to use TTS
when answering incoming calls (VoiceDialInTTS=True).

 For all cases (new TTS installs, Voice-TTS migrations, TTS 5.6 to 5.71 upgrades), set
the TTS voice name (TTSDialInVoiceName) in the Access section to your
preferred value selected from the voice font(s) you have installed (the TTS 5.6
practice of leaving this keyword blank to select the “default” voice is obsolete, this
keyword should always have a nonblank value in 5.71). For more information on the
various voice font names for instance, there are differences between the names of the
fonts normally installed with 5.6 and those normally installed with 5.71; and there are
both “Short Name” and “Full Name” values for each font), see Available Voice Fonts
table later in this document. Also note that this keyword can optionally specify a
“rate” (speed, tempo) for this voice; see TTS Rate Control under Advanced TTS
Configurations later in this document.

 For TTS 5.6 to 5.71 migrations, you must also update each existing Configuration of
Type=TTS or InteractiveTTS to have a nonblank value for the TTSVoiceName keyword;
this keyword also supports an optional rate setting.

 For all cases, remember to set TTSVoiceName in all new Configurations of Type=TTS
or InteractiveTTS that you create.

11. Make a phone call to the associated Dialogic port, and verify that the Port is answered using TTS
technology.

2.6.2 Installing the TTS Software Contained on the CD


The following instructions provide more detail to Step 9: Install TTS software using the CD listed above. The
CD contains installers for the following TTS software components:
1. TelAlert TTS Driver, includes Microsoft Speech API (SAPI).
2. Text-To-Speech Software (AT&T Natural Voices Runtime TTS Engine).
3. American English Male Voice Font (AT&T Natural Voices 8K Mike voice font) and Female Voice
Font (AT&T Natural Voices 8K Crystal voice font.

These installation programs should be run sequentially in the order listed above.

Login to Windows as Administrator before running these programs.

The total disk space required by the four installation programs is approximately 685 MB.

It is only necessary to install one of the voice fonts. However, you can install multiple voice fonts. If you do,
configure each voice port to answer using a specific voice font. Specific fonts for outgoing messages may be
assigned in either Configuration or Destination paragraphs. Additional fonts are available. Each
additional font requires a separate runtime license.

16 | TelAlert Version 5.2 Voice and Hardward Guide


Step 1: Install the TelAlert TTS Driver
This step will install Microsoft Speech API (SAPI) runtime support (if it is not already installed) and will also install
the TelAlert TTS Driver. It will require approximately 60K of disk space in the TELALERTBIN directory; and up to
2.7 MB of disk space in the Windows System directory, depending on whether any Microsoft SAPI components
are already installed.

Purpose
Microsoft SAPI provides a standard way for TTS software to interface with applications. The TelAlert TTS Driver is
used by the TelAlertV process to interface the AT&T Natural Voices Runtime Software with the Dialog integration.
The TelAlert TTS Driver and TelAlertV process use SAPI to communicate with the AT&T Natural Voices Runtime
Software.

Installation Steps
1. Click the Install TelAlert Text-To-Speech Drivers option on the TTS Install splash screen to launch the
installer. This installer may also be launched by running the ‘Setup” program that is located in the TelAlert
TTS Drivers directory of the TTS installation CD.
2. The Select Installation Folder page in the installation wizard will prompt for an install location. This is the
location where TelAlert’s binary executables are installed, and is the path listed in the TELALERTBIN
Environment variable. The default TelAlert location (“C:\Program Files\TelAlert\”) should be used in most
cases.
3. Click the Next button on each subsequent wizard page to accept defaults, then press the Finish button of
the final page. Click Close to exit after installation completes.

Result
A Speech icon is added to the Windows Control Panel as a result of Microsoft SAPI runtime installation. A library
named SAPIVVStream.dll is installed in the TELALERTBIN directory as a result of the TelAlert TTS Driver
installation.

Step 2: Install the TTS Software


Purpose
This step will install the AT&T Natural Voices Runtime Software that converts text to speech using one or more
AT&T voice fonts. This step will also install a Dictionary Editor program (named WinDictEdit.exe) that is used to
modify the pronunciation of specific words or acronyms.

Installation Steps
1. Click the Install Text-To-Speech Software option on the TTS Install splash screen to launch the installer.
This installer may also be launched by running the ‘Setup” program that is located in the ATT NaturalVoices
Runtime directory of the TTS installation CD
2. Click the Next button on each subsequent wizard page to accept defaults, then press the Finish button of
the final page. Click Close to exit after installation completes.

Result
The AT&T Natural Voices Runtime Software is installed. A new sub-menu named “AT&T Natural Voices 1.4” is
added to the Windows Start menu. This submenu contains a shortcut to the Dictionary Editor program.

Chapter 2: Dialogic Hardware and Voice/TTS Software Installation | 17


Step 3: Install American English Voice Font(s)
Purpose
The ATT NaturalVoices Runtime software can generate speech using a variety of distinctive voices varying in
gender; intonation/pitch [tenor, baritone], and language. An individual combination of gender, intonation/pitch, and
language is referred to as a voice font. This step will install the selected voice font(s).

Note: This step will take more time than the previous steps, due to the amount of data copied from the
CD to your hard disk. The voice font installation will require approximately 190 MB of disk space for
each installed voice font.

Installation Instructions
1. Click the Install American English Male Voice Font (Mike) option or the Install American
English Female Voice Font (Crystal) option from the TTS Install splash screen to launch the installer.
At least one Voice Font must be installed. Additional fonts are available, but are not included on the CD.
2. Click the Next button on each subsequent wizard page to accept defaults, then press the Finish button of
the final page.

Result
The selected voice font(s) will be available for use. The voice font installation can be verified by launching the
properties dialog from the Windows Control Panel and selecting the Text To Speech tab. The full name for the
Mike font is ATT DTNV1.4 Mike. This name should be listed in the Voice selection combo box. The Voice
selection combo box may be used for testing the voice using the PC’s audio device (sound card and speaker, if
the PC has audio hardware installed. It is not necessary for the PC to have audio hardware for TTS to work; and it
is not possible to use the Dialogic card for testing through the Control Panel). Any settings you make to test voice
in this way (default voice font, speech rate) will not affect the TelAlert TTS voice settings.
The voice font can be played on the PC’s audio device (sound card) by pressing the Preview Voice button. The
Audio Output… can be used to select a specific output device for testing; this button has no effect when using
TelAlert is running.

Note: This dialog will not function properly while TelAlert is started with TTS ports enabled because
TelAlert will take control of the PC’s voice resources.

2.6.3 Configuring a Custom TTS Dictionary

In general, the AT&T NaturalVoices voice font data contains extremely detailed rules for pronouncing words;
that’s why the 8K voice font files average 190MB, and the 16K files average 600MB. Therefore, customization of
pronunciation is usually not necessary. However, your installation may have a few words (proper names for
people or equipment locations, or acronyms such as the name of your company) whose pronunciation you wish to
“fine-tune”. This section provides instructions for setting up a dictionary that is used to customize such
pronunciation. A summary of the steps is as follows:

1. Change the configuration file to enable a dictionary. Do this only once.


2. Create an empty formatted dictionary file. Do this only once.
3. Edit the dictionary to customize pronunciations. Do this as often as needed.

18 | TelAlert Version 5.2 Voice and Hardward Guide


Step 1: Change the Configuration File to Enable a Dictionary

The AT&T Natural Voices Runtime Software uses a configuration file named tts.cfg to store TTS software
configuration data. This data includes both properties associated with specific voice fonts, and properties that
apply to all fonts for a specific “language dialect”, such as English-USA. This configuration file can be found in the
following default location:

x:\Program Files\ATTNaturalVoices\TTS1.4\Desktop\data\
This step describes how to make a one-time change of the AT&T configuration file to specify that one or more
“user” exception dictionaries will be used (a separate dictionary is required for each language dialect). This
configuration file change can be done via a TelAlert-provided program, or by manual editing of the tts.cfg file.

Note: Whether you use AddWinDict.exe or manually edit tts.cfg, do this step only once, prior to the first time
you run the WinDictEdit.exe program.

To change the configuration file using the TelAlert-provided, do the following:

1. Locate the AddWinDict.exe program in the TELALERTBIN directory.


2. Launch AddWinDict.exe and select the language dialect that you want to associate with the custom
dictionary.

Do one of the following:

 If a dictionary is already assigned for the selected language dialect, the current
dictionary path and name will appear in the edit box labeled Dictionary name. In this
case, you can exit AddWinDict.exe without needing to make any changes.

 If no dictionary is already assigned, press the Set default button to set the Dictionary
path\name to a value that is appropriate for the selected language (For example:
en_us\tts_en_us.dict. Notice that this path is RELATIVE to the path for the location of
the tts.cfg file).

Press the Apply button to save the dictionary name, and then exit AddWinDict using the red “X” icon in the upper
right corner; or press the OK button to simultaneously save the name and exit the application.
Instead of using the AddWinDict.exe program, the tts.cfg file can optionally be manually edited to enable
custom dictionaries. The following is an example of the tts.cfg file contents in a system that has the Mike8
voice font installed.
Language en_us
LanguageLocale en_us
LanguageDictionary en_us\en_us.dict att_darpabet_english
LanguageTextAnalysis en_us\fe_en_us.dll
UserDictionary en_us\tts_en_us.dict

Voice mike_8k
VoiceName Mike
VoiceData en_us\mike\mike.dat
VoiceAudio en_us\mike\dbg711uc archive
VoiceLanguage en_us
VoiceDefault true
The UserDictionary definition in the above example needs to be inserted into the file to enable the custom
dictionary. Use any text editor (such as Windows Notepad) to add this line to the file.

Chapter 2: Dialogic Hardware and Voice/TTS Software Installation | 19


Step 2: Create an Empty Formatted Dictionary File

This procedure describes how to create a specially-formatted disk exception dictionary file for each language. To
do so, you use the AT&T Natural Voices Dictionary Editor (WinDictEdit.exe) that is installed by AT&T Natural
Voices Runtime Software installer. The following procedure describes how to create an empty dictionary file:
Note: TelAlert TTS ports must not be active while using the Dictionary Editor program (either stop
TelAlert or Deactivate TTS ports while using the program).
1. Launch the Dictionary Editor program from the AT&T Natural Voices 1.4/Desktop sub-menu of the
Windows Start menu. If your Start menu does not have an entry for this program, locate the x:\Program
Files\ATTNaturalVoices\TTS1.4\Desktop\bin directory, and run WinDictEdit.exe located in that
directory.
2. Select the Save option from the File menu. This will display the Save As dialog.
3. Use the Save in combo box to navigate to the language specific subdirectory associated with the
dictionary (example: en_us).
4. Type the dictionary name in the File name edit box. This is the name that was specified in the
Dictionary name edit box of the AddWinDict application, or that you manually added when editing
tts.cfg (example: tts_en_us.dict).
5. Press the Save button to create the dictionary file.

Step 3: Edit the Dictionary to Customize Pronunciations

As often as needed, edit the dictionary to customize pronunciations. This is also done by using the Dictionary
Editor program (WinDictEdit.exe) that is installed by the AT&T Natural Voices Runtime Software installer.

The help system for the Dictionary Editor provides instructions for changing the pronunciation of a word. The help
file is named wdehelp.chm and is located in the same directory as WinDictEdit.exe.

20 | TelAlert Version 5.2 Voice and Hardward Guide


2.7 Dialogic TTS [Port] Definition (Local and Slave)
Creating these definitions is covered in detail in Chapter 5: The Role of Ports in TelAlert in the
TelAlert Administrator Guide. The following is a summary of the basics. If you have not already
installed TelAlert, do so now using the instructions in the TelAlert Quick Start Guide. During the
installation, you will be prompted for the information to set up the first Dialogic [Port], which
you can then clone per the instructions below to provide additional [Port] definitions.

2.7.1 Local Dialogic Ports


For LOCAL Dialogic ports (where the Dialogic card is physically installed in the TelAlert server
machine), using your preferred configuration method (editing telalert.ini; TADesktop’s
TelAdmin tool; or TE’s TelaWeb GUI), create or update the [Port] definition to be similar to this:

{Dialogic1} Active=True
Model=Voice
Types=Voice,
InteractiveVoice
VoiceLine=1
#see vvoice32.ini regarding
LineDroppedTone
LineDroppedTone=0
Modify the VoiceLine= value as appropriate for your particular allocation of ports on the Dialogic
card. If you using multiple ports on the Dialogic Card with TelAlert, simply clone this entry and
modify both the {Dialogic1} name and VoiceLine= value as appropriate.

The definition above is for Voice, as indicated by the keyword values Model=Voice and
Types=Voice,InteractiveVoice; a TTS definition has Model=TTS and
Types=Voice,InteractiveVoice,TTS,InteractiveTTS. TTS is a superset of Voice, so
with Model=TTS, you actually have a choice of any combination of four Type= values: TTS,
InteractiveTTS, Voice, and InteractiveVoice. This allows a single TTS port to be used
both for current TTS (voice synthesis) speech tasks, and also for older integration or menu
scripting tasks that utilize special prerecorded Voice files that have not been upgraded to TTS. Also
note that it is OK to have some ports on a multiport Dialogic card be Voice (only), some ports TTS
(and Voice), and other ports used by applications other than TelAlert; the maximum number of
Dialogic ports that can be utilized by TelAlert is equal to the sum of the [License]
VoicePorts= and TTSPorts= keyword values.
There are several [Port] keywords you may want to set in certain circumstances; these are
discussed in The Role of Ports in TelAlert chapter in the TelAlert Administrator Guide. For
instance, if you have multiple Dialogic ports, you may want to categorize them (between outgoing
and incoming calls, etc.) using the Class= and BackupClass= keywords. Also, if you have
multiple ports, you may want to set TelAlert to deactivate a port that is encountering repeated
errors, while if you have a single port, you may NOT want deactivation to occur; this is controlled
by the ConnectErrorXXX= and DialingErrorXXX= keywords. If some ports go through a PBX
while others are direct telco lines, you will need PhonePrefixes= lines referencing two distinct
[PhonePrefixes] sections.

Chapter 2: Dialogic Hardware and Voice/TTS Software Installation | 21


2.7.2 Slave Dialogic Ports
For SLAVE Dialogic ports (where the Dialogic card is NOT physically installed in the TelAlert server
machine), the initial definitions are created as part of the 'TelAlertV' InstallShield process discussed
above. If you subsequently add additional slave Dialogic ports, you will need to create their
definitions manually. For instance, suppose you initially configured port 1 on a 4-port Dialogic card,
and now you want to add ports 2 through 4:
On the Slave Windows Machine:

1. Edit the 'services' file (which is located IN %SystemRoot%\system32\drivers\etc\


services). This file may have a large block of entries that looks like this:

telainetdstart 25360/tcp # TelaInetD Server Startup


telaconfstart 25367/tcp # TelaConf Server Startup
telalertstart 25368/tcp # TelAlert Server Startup
telainetd 25370/tcp # TelaInetD Server
telaaguig 25372/tcp # TelAlert AdminGUI-G
telaaguim 25373/tcp # TelAlert AdminGUI-M
telaaguis 25374/tcp # TelAlert AdminGUI-S
telaagui 25375/tcp # TelAlert AdminGUI
telaremt 25376/tcp # TelAlert Remote
telaconf 25377/tcp # TelaConf Server
telalert 25378/tcp # TelAlert Server
telalertv1 25379/tcp # TelAlertV
or maybe just a line or two like this:

telalertv1 25379/tcp # TelAlertV

Either way, you need to clone the LAST line for EACH additional port. Each cloned line should
increment both the service NAME suffix (telalertv1) and the socket number (25379) by 1.

telalertv2 25380/tcp # TelAlertV


telalertv3 25381/tcp # TelAlertV
telalertv4 25382/tcp # TelAlertV

1. In the TelAlert installation directory (usually c:\program files\telalert), edit the


inetd.conf file. This file has some lines that are 'wide' (over 132 characters per line), so be
CERTAIN to use a TEXT editor, NOT a word processor that will attempt to 'wrap' wide lines. The
file will have a block of entries that looks like this:

telaaguig stream tcp nowait Administrator


"c:\Program Files\TelAlert\AdminGUI.exe" admingui -inetd -form telaconfg.n1f

telaaguim stream tcp nowait Administrator


"c:\Program Files\TelAlert\AdminGUI.exe" admingui -inetd -form telaconfm.n1f

telaaguis stream tcp nowait Administrator


"c:\Program Files\TelAlert\AdminGUI.exe" admingui -inetd -form telaconfs.n1f

telaagui stream tcp nowait Administrator


"c:\Program Files\TelAlert\AdminGUI.exe" admingui -inetd -form telaconf.n1f
22 | TelAlert Version 5.2 Voice and Hardward Guide
telalertv1 stream tcp nowait Administrator
"c:\Program Files\TelAlert\TelAlertV.exe" telalertv -remote -dir

c:\Program Files\TelAlert c:\Program Files\TelAlert


c:\Program Files\TelAlert c:\Program Files\TelAlert -file
telalert%d.vap vvoice32.ini -log 0 75000 telalertv1.log
telalertv1.bak
Again, the line starting with 'telalertv1' and ending in 'telalertv1.bak' is a SINGLE line. You will need
to clone the LAST line for EACH additional port. In each cloned line, there are three fields that contain
the text 'telalertv1' (the initial entry name, and the two logfile names at the end); these fields
must be replaced with telalertv2, etc. For instance, to add Dialogic port 2:

telalertv2 stream tcp nowait Administrator


"c:\Program Files\TelAlert\TelAlertV.exe" telalertv -remote -dir
c:\Program Files\TelAlert c:\Program Files\TelAlert c:\Program
Files\TelAlert c:\Program Files\TelAlert -file telalert%d.vap
vvoice32.ini -log 0 75000 telalertv2.log telalertv2.bak

2. Repeat this for ports 3 and 4.

3. To have the telainetd background service daemon recognize that it is now responsible for creating
additional media controller processes, at a command prompt, execute the commands

telainetd -stop
telainetd -start

On the UNIX machine:

2. Edit the /etc/services file, making the same changes as were made above to the

%SystemRoot%\system32\drivers\etc\services file on the slave Windows


machine.

4. Add additional [Port] definitions to the TelAlert configuration. Again, these definitions must
PRECEDE all 'local' port definitions. If you are editing the telalert.ini file, insert the new
definitions immediately after the existing slave Dialogic port definition; if you use TelAdmin or
TelaWeb, delete all port definitions except for the existing slave Dialogic port definition, add the
new slave Dialogic port definitions, and re-add the other port definitions.

For example, if you are editing telalert.ini, the existing slave Dialogic port definition should
looks something like this (this is the entry that you cut-and-pasted from the dialogic_port.ini
file during the original installation):

{DialogicSlave1} Active=True Model=Voice


Types=Voice,InteractiveVoice
Host=<<DNS name of your WINDOWS Dialogic machine>>
Service=telalertv1
VoiceLine=1
#LineDroppedTone= Access=Dialogic

Chapter 2: Dialogic Hardware and Voice/TTS Software Installation | 23


5. You will need to clone this ENTIRE definition for EACH additional port. In each cloned entry, you
need to increment the suffix on {DialogicSlave1}, the suffix on the Service=telalertv1
reference, and the VoiceLine= value. Make sure your cloned definitions appear in the
telalert.ini file IMMEDIATELY following the original {DialogicSlave1} definition. Again,
this is so that telalerte will record the port/socket numbers used by these 'slave' definitions before
assigning port/socket numbers to 'local' definitions.

6. The example above is for a Voice port; for a TTS port, change the keyword Model=Voice to
Model=TTS, and change the keyword Types=Voice,InteractiveVoice to
Types=TTS,InteractiveTTS. For instance, to add port 2 in a TTS installation:

{Dialogic2} Active=True Model=TTS


Types=TTS,InteractiveTTS
Host=<<DNS name of your WINDOWS Dialogic machine>> Service=telalertv2
VoiceLine=2
#LineDroppedTone= Access=Dialogic

7. After making these changes on the Unix machine: if you edited telalert.ini, issue a
'telalert -compile -terse' command; if you used TelAdmin, insure that your changes
were saved; and if you use TelaWeb, export the .ini files (or at least the [Access] and [Port]
sections).

8. Then issue 'telalert -stop' and 'telalert -start' commands on the Unix machine. You
should see status messages relating to the initialization of the Dialogic processes on the slave
Windows machine. You can verify this by looking at the telalertv2.log, telalertv3.log,
etc., files on the Windows machine. Notice that a -stop and a -start are required. Adding the
Dialogic port(s) increases the total number of child processes that TelAlert may need to manage
simultaneously, which requires increasing the size of some tables that are built at -start time.

NOTES:

 There is probably a file named 'services' on the Windows machine in the TelAlert
installation directory (normally c:\program files\telalert). This was the template
file for your original changes to the Windows %windir%\system32\drivers\etc\
services and Unix /etc/services files. Since you've changed the actual services
files, it doesn't matter whether or not you change this template.
Notice that it is not strictly necessary to set up 'services' definitions showing that
telalertv2 corresponds to port/socket 25380, etc., and then reference those
'services' definitions in the Service=telalertv2, etc. lines in the cloned port
definitions. Instead, you could simply directly define the port/socket number in the port
definitions, for instance, Service=25380. However, it’s considered 'Best Practices' to
define all reserved port/socket numbers in the 'services' file.

 There is probably a file named 'dialogic_port.ini' on the Windows machine in the


TelAlert installation directory (normally c:\program files\telalert). Again, this
was just a template, so it doesn't matter whether or not you change it to match the cloned
[Port] definitions for the additional ports you added on the Unix TelAlert server.
 Normally the same [Access.Dialogic] section information can be used for all ports on
the slave machine. If some ports will be reserved for incoming calls and others reserved for
outgoing calls; or if some ports will use Voice technology while others use TTS technology;
you may want to have separate [Access] sections.

24 | TelAlert Version 5.2 Voice and Hardward Guide


2.7.3 Remote Dialogic Ports

A Remote Dialogic port is one that is controlled by one TelAlert server, and can be 'borrowed' by
another TelAlert server. For instance, suppose you have a Dialogic card installed in a San
Francisco TelAlert server, and you have another TelAlert server in New York. The New York server
can configure a ’Remote’ Dialogic port that will allow it to make TTS calls utilizing the San
Francisco TelAlert server’s Dialogic card, regardless of whether the New York server has any
Dialogic cards it manages itself.
The San Francisco server controls which other TelAlert servers can ’borrow’ its Dialogic card by
putting the IP addresses of the allowed servers into the London telalert.remote file. There
are no other configuration changes made on the San Francisco server. The New York server
creates a port definition like this:
{SanFranciscoRemoteDialogic} Active=True
Model=Remote
Service=telaremt
Host=DNS name or IP address of SF server
For more details, see the Setting Up a Remote Port topic in of the TelAlert Administrator
Guide manual.

2.7.4 Phone Line Considerations


Each Dialogic port requires its own phone line, and these phone lines should not be shared with
other equipment (data modems, desk phones). The phone lines can be either direct Telco lines,
PBX lines, or a mixture; see Chapter 6: Dialing the Telephone in the Adminstrator Guide for
details on configuring TelAlert to know to dial '9' for an outside line from a PBX, '1' for a domestic
long-distance call, etc. Note that PBX lines must be ANALOG, not digital, lines. Make sure to plug
the lines in firmly -- if the card is not precisely aligned with the rear panel cutouts, sometimes the
lines will not 'click' into place, and can come loose later.
If only outgoing calls will be made, these lines can be part of a PBX 'pool'; TelAlert never needs to
know its own phone number(s) or extension(s), and if no incoming calls will be made, nobody else
needs to know them either. But if incoming calls will be made, you’ll need to decide whether you
want to publish the individual phone numbers for each line; or establish a Telco or PBX 'hunt group'
covering all of the incoming lines, and only publish the single hunt group number.

2.8 Testing Hardware Installation and Port Definition


Making outgoing TTS calls to deliver messages requires [Configuration] definitions, covered in
the next chapter. However, incoming TTS calls do not use [Configurations], and thus can be
tested at this point.

 The same general test procedure will work for both Voice and TTS software technologies. A
few keyword settings will differ, as detailed below.

 As noted earlier, Dialogic ports may reference either [Access] or [Access.Dialogic].


In this procedure documentation, [Access] will be used for simplicity.

 [Access]VoiceDialInAccess must be set to True regardless of whether Voice or TTS


technology is being used; which technology is being used is indicated by in the next step.

Chapter 2: Dialogic Hardware and Voice/TTS Software Installation | 25


 For Dialogic, [Access]VoiceDialInTTS must be set to False (default) for Voice, and
True for TTS.

 VoiceDialInUserRequired=True (the default) provides a better test (requires more


prompts to be spoken and DTMF touch-tones to be recognized).

 This example uses the default [User]{operator}, which contains the default keyword
values Password=giants and Menu=MenuAck. [Menu] {MenuAck} invokes an
external script; TelAlert provides prototype scripts in Korn shell format (menu_ack.sh and
menu_ack.ksh) and in Perl format (menu_ack.pl). Insure that the [Menu]
{MenuAck} definition has been updated so that its Command= keyword value reflects the
script version you want to use, and its Shell= keyword value points to the matching
command shell location. See [Menu] Section in the Keyword Reference chapter in the
TelAlert Administrator Guide; and the Software Configuration for IVR Menus
chapter in this manual, for more information on setting up external scripts for menus. If the
external script is not set up properly, the call will terminate immediately after TelAlert
speaks the prompt defined by [Access] TTSMenuMessage or VoiceMenuMessage.

 Dial the phone number for the Dialogic port. It should answer and speak the
VoiceDialInUsernamePrompt or TTSDialInUsernamePrompt, as appropriate. Key in
67372867#, which is the DTMF equivalent of 'operator’ with a # to terminate input. It should
then speak the VoiceDialInPasswordPrompt or TTSDialInPasswordPrompt, as
appropriate.

Key in 442687#, which is the DTMF equivalent of ’giants’ with a # to terminate input. It
should then speak VoiceMenuMessage or TTSMenuMessage as appropriate, and then
start speaking the prompts defined in the script called by [Menu] {MenuAck}. Once the
script has begun, key in 8 to have the script terminate the call.

 If the test succeeds, proceed to the next chapter. If the test fails, recheck the preceding
installation instructions, and check the telalert.trail file for error messages. If you
cannot determine the cause of the problem, contact TelAlert Technical Support.

2.8.1 Using TestComm


TestComm is a port-querying program copied onto your machine during the TelAlert server
software installation process. It is located with the other TelAlert executables in the directory
pointed to by the TELALERTBIN environment variable (by default, /usr/telalert or
c:\program files\telalert).

You can use it to test whether the VisualVoice middleware software, the Dialogic drivers, and the
Dialogic card are working properly. If you are having a Dialogic problem that you suspect is
outside of TelAlert itself, it is highly recommended that you run TestComm and save the output
before contacting Technical Support. It cannot be used until after the Dialogic hardware, Dialogic
drivers, and TelAlert server hardware
When using TestComm to query a port on the machine TelAlert is installed on, use this syntax:
testcomm D portnum 0
 where the D stands for Dialogic,

 portnum is the identifier of the Dialogic port (1, 2, 3, etc.), and

26 | TelAlert Version 5.2 Voice and Hardward Guide


 0 is the default value for the LineDroppedTone that VisualVoice recognizes. (See the comments
in the vvoice32.ini file for information on defining a custom LineDroppedTone.) You
should see output similar to this:

Chapter 2: Dialogic Hardware and Voice/TTS Software Installation | 27


>testcomm d 1 0
Note testcomm(1.18)Windows32, 19Jan2004, (c)1993-2004, MIR3 [20040119]
Note Opening Dialogic:1
Note Success Dialogic:1 Detected
It may take up to 10 seconds for the test to complete. Note that the test will fail if the TelAlert
server is already exclusively accessing the same port; use a telalert -show or -status
command to check if the port is already in use.
TestComm accepts alternate parameter sequences for testing other types of ports (Engine,
modem, terminal server, etc.); those parameters are discussed in detail elsewhere in this
documentation. Running TestComm without any parameters at all will produce a brief
summary of the different parameter sequences.

2.9 Advanced TTS Configurations


2.9.1 Use of TTS with TelAlert 6e
Special consideration should be taken when using TelAlert 6e with TTS regarding passwords,
especially if LDAP authentication is being used. In TelAlert 6e, users can set up their accounts with
any password they desire, such as complex combinations of letters, numbers, and special
characters. This can become quite cumbersome when responding to a call from TelAlert which
requires users to authenticate by entering their password using the telephone key pad. It is
advisable that a user enters a pin like password into the TelAlert system for easier access when
responding to alerts. When LDAP authentication is used by TelAlert 6e, users will authenticate to
the web UI using their domain credentials, but will still use the pin style password stored by
TelAlert 6e when responding to TTS alerts.

2.9.2 Embedded XML Control of TTS Voice


Many aspects of TTS synthesis can be modified using Speech Synthesis markup language (SSML), Java Speech
markup language (JSML) and Microsoft SAPI 5.1 markup language. However, this is an advanced topic, and we
recommend that anyone who wants to use this feature contact TelAlert Technical Support for additional
information and examples.

Force Spelling of Words


\The one SAPI we will mention here is used to force TelAlert to spell out words in a message. This is most often
used to spell out hostnames names of devices when attempts to pronounce them result in a message that is not
understood.

The SAPI call of interest uses XML syntax to force a TTS device to spell out a section of text. For example,
<spell>
These words should be spelled out.

</spell>
These words should not be spelled out.

To get the above to work with TelAlert, we need to embed a flag in the message to enable XML. The flag is
~xmlon. To send the above to TelAlert, the following syntax would be used:

telalertc –i bill_voice
–m “~xmlon <spell> These words should be spelled out. </spell>
These words should not be spelled out.”

28 | TelAlert Version 5.2 Voice and Hardward Guide


2.9.3 TTS Rate Control
The rate (tempo and speed) of each TTS synthesized voice can now be controlled to suit your application and
audience.

To change the voice speed, a notation is added to the font name in the TTSDialInVoiceName or
TTSVoiceName keywords. For example, to speed up the voice, use:

Mike16 | Rate=+1

or

ATT DTNV 1.4 Mike16 | Rate=+1

To slow down the voice, use:

Mike | Rate=-1

or

ATT DTNV 1.4 Mike | Rate=-1

Valid settings are from -9 to +9. Typical settings are -1 or -2.

The same syntax can be used in the -ttsvoice option on the command line, usually for testing.

Chapter 2: Dialogic Hardware and Voice/TTS Software Installation | 29


3
Software Configuration for
Outgoing Messages
3.1 Overview
This chapter contains instructions for setting up TelAlert to send notifications to Voice and TTS
destinations—including live humans, voice mail/answering machines, and loudspeakers.

3.2 Before You Begin


3.2.1 Installation and Upgrade Considerations
On new TelAlert installations (either Evaluation or Permanent), the install procedure prompts for the
information needed to set up the appropriate [Port], [Modem] and [PhonePrefixes] entries for
any included TelAlert Dialogic hardware. (The default [Access] and [CallProgress] section values
are usually adequate and so they are not customized during installation).
This prompting and customization does not occur during upgrades of existing TelAlert installations; nor
does it occur when Dialogic hardware is added to an existing installation. The information must be
manually added using your chosen configuration method (editing telalert.ini with a text editor; the
TelAdmin GUI tool).

 [Port] entries, and to some extent [Access] entries, were covered in The Role of Ports
Chapter in the TelAlert Administrator Guide.

 [PhonePrefixes] is covered in the Dialing the Telephone Chapter in the TelAlert


Administrator Guide.

 [Access], [Configuration], [Destination], and [User] will be discussed in this


chapter. The Keyword and Command Reference manual remains the definitive source for
information regarding details of configuration keywords and values.

 Note that Device definitions in the CM WebUI interface map to [Destination] definitions in
TelAdmin.
3.3 Getting Started
3.3.1 Needed Information
Before proceeding with the work described in this chapter you should gather as much information as
possible on each of the destinations/devices to which you will be delivering TTS notifications. This will be
used in setting up entries under [Configuration] and [Destination] (for TelAlert 6e, Device
instead of [Destination]). Note that not all of the following items will be relevant for every entry:

 Name of user (if you wish to require a password, and/or wish to provide a custom list of IVR menu
responses after the message is delivered)

 Telephone number (direct or PBX)

 Average number of rings it takes the system to answer the call (direct or PBX)

 Extension, if any (number to dial after PBX answers to reach the desired party)

 Average number of rings it takes for the extension to answer (if any)

 Mailbox (code to request leaving a voicemail)

 Terminator (key signaling the end of voicemail recording)

 Type of tone indicating the voicemail system or answering machine has begun recording

 Duration (in seconds) of any regularly occurring pauses taking place during each part of the call

 Duration (in seconds) of any messages or music regularly played to the caller during each part of
the call

32 | TelAlert Version 5.2 Voice and Hardward Guide


3.3.2 General Considerations
Users
The concept of “user” has the same general relevance for TTS notification as for most other notification
media: by including a User= keyword value in each of your TTS destination/device definitions, and
creating corresponding [User] definitions, you can:

 Require message recipients to provide a password before the message will be delivered

 Require message recipients to provide a password when responding to a message via the command line

 Track messages in terms of the people associated with the destinations to which they are sent

 Link these destinations to information (e.g., on-duty schedules) referred to in the [user]
definitions

 Provide a custom ivr menu of choices after the message is delivered


You may want to include a User= setting in all of your destination/device definitions to take advantage of
one or more of these features. Note that all device definitions are associated to a User in TelAlert 6e
installations.
You should note that User values are required in destinations associated with [Configuration]
definitions of Type=InteractiveVoice and InteractiveTTS, in order to define the password, menu
script, etc., that is used 'interactively'.
For complete information on creating and invoking [User] definitions, see the Representing Users
chapter in the TelAlert Administrator Guide.
Method of Configuration
To set up TTS messaging, you use your chosen configuration method (editing the telalert.ini file with
a text editor; using the TADesktop’s TelAdmin tool). This documentation will specify the definitions that
need to be created, and the keyword/value pairs that need to be defined, in a configuration-method-neutral
manner.
For more information on these various configuration methods, see the TelAlert Administrator Guide
Configuration Basics chapter.
Making the TelAlert Service daemon Re-Read its Configuration File
Several of the configuration methods change configuration data in on-disk files and databases, but do not
necessarily change the configuration data that the running telalerte service daemon has cached in memory.
For more information on this, and references to the detailed considerations and differences between the
various configuration methods, see the Configuration Basics chapter in the TelAlert Administrator
Guide.
TelAlert Vocabulary
When you send a message using TTS technology (Type=TTS or InteractiveTTS), all words will be'spoken';
in general, none will be spelled out. You can 'fine-tune' the TTS pronunciation rules for particular words
(company and geographic names, acronyms, etc.)
Local Area Code
Be sure that the correct local area code appears under [PhonePrefixes]. This is important for all
TelAlert features that involve dialing, not just TTS notifications. The proper LocalAreaCode value is the
area code for your location, regardless of the area code associated with your [Configuration]
definitions. When reading a [Configuration] definition, TelAlert compares the area code it finds there
against this value, then dials the area code only if the two do not match. For more information, see Dialing
the Telephone in the TelAlert Administrator Guide.

Chapter 3: Software Configuration for Outgoing Messages | 33


Reaching an Outside Line; Other Special Dialing Techniques
For any notification method that requires dialing, there are a number of special techniques you may need
to employ in order to take into account particular aspects of your organization’s phone system or policies:
techniques for getting an outside line, for initiating a long-distance call, etc. For more information, see the
Dialing the Telephone chapter in the TelAlert Administrator Guide.

3.4 Voice Notification Logic


Throughout this chapter, you will be reminded from time to time of the logic TelAlert follows as it
attempts to deliver voice notifications. The current section presents this logic in its entirety—so you can
tackle the tasks of voice notification configuration with a solid understanding of the underlying process
at work.

Read This Section!

TelAlert’s voice notification functionality is so flexible that it is possible to configure it to


work with almost any phone or voice mail system. Because this can be a relatively
complex process, it is very important that you be familiar with the framework in which
you are operating. For this reason, be sure to read this section before proceeding.

1. Pass Dialing Instructions to the Dialogic card


TelAlert initiates the send by passing dialing instructions to the Dialogic telephony card. If it detects one, it
dials the number. If not, it gives TelAlert a “no dial tone” error.
Because the notification is using a configuration of Type=TTS or Type=InteractiveTTS, TelAlert tells
the Dialogic card to dial and nothing more. If a modem answers the line, neither the Dialogic card nor
TelAlert will recognize or respond to it; instead, TelAlert proceeds with its attempt to deliver the voice
message, according to the instructions provided.
The number the Dialogic card is told to dial is constructed out of several values stored in the TelAlert
configuration file. The principal component is Number. This is preceded by AreaCode, but only if this value
differs from the value assigned to LocalAreaCode. Where specified, the number is also preceded by
special digits used to get an outside line or initiate a long distance call.

Note – Commas cannot be sent to a Dialogic card

For a Dialogic card, the number cannot include pauses, represented by commas ( ,,).

2. Listen for the Call to be Answered


During dialing, no “listening” is taking place; the Dialogic card is proceeding without regard for anything
that may be happening at the other end of the line. As soon as dialing is complete, TelAlert begins
listening. It does this using (1) the Dialogic card and (2) settings under [CallProgress] that define
each of the “cadences” (timed patterns of sound/no sound) associated with ringing, busy signals, etc.
Ultimately, the goal of TelAlert’s listening is to determine if the call has been answered.
If TelAlert hears a busy signal after dialing, it hangs up. If the line is not busy, usually the first sound
TelAlert detects is ringing. The default ringing definition (in conjunction with an alternate definition, also
provided) permits TelAlert to recognize the ringing used by almost all telephone companies and PBXs,
world-wide. If changes are needed, you can modify these settings.
Once TelAlert recognizes ringing, it will wait until it has heard the number of rings specified by the
RingCount setting before giving up. Whether or not it detects ringing, TelAlert will decide whether the
call has been answered based on certain conditions specified by settings in the TelAlert configuration file.

34 | TelAlert Version 5.2 Voice and Hardward Guide


There are four such conditions that, when met, can lead TelAlert to consider the call to have been
answered:

 InitialToneWait expires. As mentioned above, if this amount of time elapses without


TelAlert having heard a tone of any kind (including ringing), it assumes the call has been
answered. You should set this value (under [Configuration]) considerably higher when
calling a cellular phone, since many seconds may pass between dialing and the start of ringing.

 ToneWait expires. This value, set under [Configuration], determines how much time
between tones (i.e., after at least one tone has been detected) TelAlert will tolerate before
considering the call to have been answered. Principally, ToneWait allows TelAlert to determine
that ringing has stopped.

 TelAlert recognizes a “voice” cadence. This pattern, like the ringing and busy cadences, is
defined under [CallProgress] using values that take into account the irregularity of human
speech. There is also an alternate definition, and both can be modified, as necessary.

 TelAlert recognizes one or more special tones. The special tone TelAlert is to listen for is
specified under [Configuration] using MinToneOn, MinToneOff, MaxToneOn,
MaxToneOff, and ToneRepeats settings. If ToneRepeats is set to zero, this condition
does not apply; if AnswerToneOnly is set to True, hearing this special tone is the only
condition that can lead TelAlert to recognize the call as having been answered.

Contingency: Dialing an Extension

If the [Configuration] or [Destination] definition includes a value for


Extension, TelAlert will go through two separate listening phases.
Here, TelAlert dials the main number and, when it determines that the call has been
answered, begins waiting the number of seconds specified by ExtensionWait (if any).
When this time elapses, it dials the value assigned to Extension and waits the amount of
time assigned to ExtensionListenDelay (if any). When this time elapses, TelAlert
once again begins listening for an answer. When it detects an answer, it follows one of
the procedures described below, depending on whether it expects a person or a system
to answer.

3. Proceed According to Who—or What—is Expected to Answer


Not all voice notifications require a real person to answer, of course; in some cases, all that is desired is for
TelAlert to leave a voice mail message. How TelAlert proceeds when the call is answered depends on which
of three expectations it has as to who or what will answer:

 A real person will answer

 A voice mail system or answering machine will answer

 Either a real person or a voice mail system/answering machine may answer

 Telalert’s expectations in this regard are determined by settings in its configuration file, as
discussed below.

Chapter 3: Software Configuration for Outgoing Messages | 35


Expectation One: A Real Person Will Answer
[Configuration] definitions of Type=InteractiveTTS in which
This holds true only for
AnswerConfirmationRequired is set to True.
In this case, when it believes the call has been answered, TelAlert repeats “TelAlert” (or whatever value is
assigned to TTSDialOutConfirmationPrompt, under [Access]) while waiting for the person who
has answered to press the # key. If the # key is not pressed before ToneConfirmWait expires, TelAlert
hangs up. If the person presses the # key, TelAlert asks for a password (specified under the user definition
associated with this destination). If the person provides the correct password, TelAlert follows these steps:

 Waits the amount of time assigned to premsgwait (if any).

 Reads the message.

 Waits the amount of time assigned to postmsgwait (if any).

 Offers the user a menu of acknowledgment choices (by default, positive acknowledgment or
negative acknowledgment).

 Registers the input of the user.

 Hangs up.

The “wait” values seen above are timing mechanisms that make it possible to insert pauses of specified
lengths at specific points along the message-delivery timeline. They are optional, but they can be very
helpful in setting up TelAlert to navigate the intricacies of the telephone system into which you are calling.
In the above description, where a "wait" value’s source is not specified, it comes from the relevant
[Configuration] definition.
Expectation Two: A System Will Answer
This holds true for [Configuration] definitions of Type=TTS. Here, Type=TTS (as opposed to
InteractiveTTS) tells TelAlert not to elicit any response from the person or machine answering the call.
In this scenario, once it determines that the call has been answered, TelAlert follows these steps:

 Waits the amount of time assigned to mailboxwait (if any).

 Issues the [Configuration] definition’s Mailbox value (if any).

 Issues the [Destination] definition’s Mailbox value (if any).

 Waits the amount of time assigned to premsgwait (if any).

 Reads the message.

 Waits the amount of time assigned to postmsgwait (if any).

 Waits the amount of time assigned to terminatorwait (if any).

 Issues the [Destination] definition’s Terminator signal (if this value has been set).

 Issues the [Configuration] definition’s Terminator signal (if this value has been set).

 Hangs up.

36 | TelAlert Version 5.2 Voice and Hardward Guide


Here, Mailbox is the value that some telephone systems require you to dial to access the person’s voice
mailbox and leave a message. Terminator is the value that some systems ask you to issue to signal the end
of the message. Both of these values can be set in both the [Destination] and the [Configuration]
definition in order to give you more flexibility in configuring for the system you are dialing into.
The various “wait” values seen above are simply timing mechanisms that make it possible to insert pauses
of specified lengths at specific points along the message-delivery timeline. All of these are optional, but
they can be very helpful in setting up TelAlert to negotiate the intricacies of a voice mail system. In the
above description, where a "wait" value’s source is not specified, it comes from the relevant
[Configuration] definition.
Expectation Three: Either A Person or a System May Answer
This holds true where Type=InteractiveTTS (thus accommodating the possibility of a person
answering) and AnswerConfirmationRequired is set to False (thus accommodating the possibility of
a system answering). In addition, some value must be assigned to Mailbox. This is the value that some
telephone systems require you to dial to access the person’s voice mailbox and leave a message. Even if
no such value is required by the voice mail system, some value must appear here (a comma, for instance)
so that TelAlert understands that it is to go through the process of leaving a voice mail message if it does
not receive an answer confirmation tone.
Once TelAlert believes the call has been answered, it begins repeating “TelAlert” while waiting for the
person who has answered to press the # key. If the # key is pressed, it prompts the person for a
password and, if the password is correct, TelAlert follows these steps:

 Waits the amount of time assigned to premsgwait (if any).


 Reads the message.

 Waits the amount of time assigned to postmsgwait (if any).


 Offers the user a menu of acknowledgment choices (by default, positive acknowledgment or
negative acknowledgment).

 Registers the input of the user.

 Hangs up.
If the # key is not pressed before ToneConfirmWait expires, TelAlert proceeds assuming that it is
dealing with a system or machine. TelAlert follows these steps:

 Waits the amount of time assigned to mailboxwait (if any).


 Issues the [Configuration] definition’s Mailbox value (if any).
 Issues the [Destination] definition’s Mailbox value (if any).
 Waits the amount of time assigned to premsgwait (if any).
 Reads the message.

 Waits the amount of time assigned to postmsgwait (if any).


 Waits the amount of time assigned to terminatorwait (if any).
 Issues the [Destination] definition’s Terminator signal (if this value has been set).
 Issues the [Configuration] definition’s Terminator signal (if this value has been set).
 Hangs up.

Chapter 3: Software Configuration for Outgoing Messages | 37


Here, Terminator is the value that some systems ask you to issue to signal the end of the message.
Both of these values can be set in both the [Destination] and the [Configuration] definition in
order to give you more flexibility in configuring for the system you are dialing into.
The various “wait” values seen above are timing mechanisms that make it possible to insert pauses of
specified lengths at specific points along the message-delivery timeline. All of these are optional, but they
can be very helpful in setting up TelAlert to negotiate the intricacies of a voice mail system. In the above
description, where a "wait" value’s source is not specified, it comes from the relevant [Configuration]
definition.

3.5 Setting Up Live Voice Notification


This section begins with a discussion of each of the elements comprising the setup for voice notifications
intended exclusively for delivery to a live destination—i.e., a real person.
It then proceeds through a step-by-step example. Note that there can be a tremendous amount of variety
from one voice configuration scenario to the next. Thus, this example is presented only as one of many
possible applications of the principles dealt with here and in Voice Notification Logic.

3.5.1 Elements
The essential pieces of a live voice notification setup are a [Configuration], a [Destination], and
a [User] definition.
[Configuration] Definition
The [Configuration] definition for a live voice notification might look something like this. Each setting
is discussed below.

[Configuration]...
{OutboundVoiceLive}
AreaCode=800
Number=555-1212
Type=InteractiveTTS
AnswerConfirmationRequired=True
ToneConfirmWait=5
UserRequired=True ExtensionWait=1s
ExtensionListenDelay=3s
VoiceAnswerWait=1m
PreMsgWait=1s
PostMsgWait=1s
NoMessageResponse=False
NoUserValidation=False
 AreaCode—The area code associated with the main number you are dialing.

 Number—The main number you are dialing. If this and the area code are unique to the person to
whom you want to deliver the message, they belong in the destination. Here they are in the
[Configuration] definition because the intended person is designated by an extension—
implying that more than one person can be reached at the same area code and main number.

 Type—For live text to speech notification, this must be set to InteractiveTTS.

 AnswerConfirmationRequired—For voice notifications that are exclusively live, this must be


set to True.

38 | TelAlert Version 5.2 Voice and Hardward Guide


 ToneConfirmWait—The number of seconds TelAlert spends speaking the value of
VoiceDialOutConfirmationPrompt (by default, "TelAlert") while waiting for the person
answering the phone to press the # key.

 UserRequired—For [Configuration] definitions of type InteractiveTTS, this must be set


toTrue.

 ExtensionWait—The amount of time TelAlert waits after it detects an answer and before it dials
the specified extension (set in the destination). This is needed in situations in which the extension
cannot be entered immediately upon answer.

 ExtensionListenDelay—The amount of time TelAlert waits without listening after dialing the
extension. This is used to keep TelAlert from accidentally interpreting music or a recorded message
played during the call transfer as an answer. When this value is properly set, TelAlert does not
begin listening again until the extension is ringing.

 VoiceAnswerWait—The amount of time TelAlert waits to detect an answering voice.

 PreMsgWait—The amount of time TelAlert waits before reading the message, once it has followed
all other instructions leading up to the reading of the message.

 PostMsgWait—The amount of time TelAlert waits after reading the message, before taking the
next appropriate step.

 NoMessageResponse—Set to False, suppresses the acknowledge prompt.

 NoUserValidation—Set to False, eliminates the need for a password.

[Destination] Definition
A [Destination] definition for live voice notification might look something like this. Each
setting is discussed below.

[Destination]...
{DavidVoiceLive}
User=David
Configuration=OutboundVoiceLive
Extension=123

 {DavidVoiceLive}—The name of the destination. Whatever name you assign, it should reflect
the nature of the destination.

 User—A destination invoking a [Configuration] definition of Type=InteractiveTTS must


contain a User setting pointing to an entry you create under [User](see below).

 Configuration—A reference to the above [Configuration] definition.

 Extension—The number that must be dialed after the main number is answered in order to reach
the intended person. If it were necessary to enter another value prior to entering the extension (if,
for instance, the recorded message said, “Press 3 if you would like to enter an extension”), you
could make this value a part of the Extension value:

Extension=3,123
The comma inserts a one-second pause between these values.

Chapter 3: Software Configuration for Outgoing Messages | 39


[User] Definition
The user invoked in the destination must exist under [User]. Note that this will be automatically
configured in TelAlert 6e implementations. Each setting is discussed below.
[User]
...
{David}
Active=True
Password=password
 Active—Set to True, this means that the user definition is ready for use by TelAlert.

 Password—You must specify a password in any [User] definition invoked by a destination that
[Configuration] definition of Type=InteractiveTTS.
points to a

Example
The scenario is this:
You want TelAlert to be able to call David at home to deliver certain messages. You want TelAlert to deliver
the message to David alone—not to anyone else, and not to his answering machine.
Step One: Create the [User] Definition
Because the [Configuration] definition’s type will be InteractiveTTS, you must create a [User]
definition. Do this first, as the destination must refer to the [User] definition. If you prefer, you can set
up a general [User] definition that can be invoked in all instances requiring one: User=Operator, for
instance. In this case, though, create a unique [User] definition for David alone:

[User]...
{David}
Active=True
Password=password
For purposes of live voice notification, you must provide a Password value.
Step Two: Create the [Configuration] Definition
Because the destination must point to a [Configuration] definition, create the [Configuration]
definition next:

[Configuration]...
{OutboundVoiceLive}
Type=InteractiveTTS
AnswerConfirmationRequired=True
ToneConfirmWait=15
UserRequired=True
Here, ToneConfirmWait has been set rather high in anticipation of the possibility that someone other
than David may answer and then have to call him to the phone. PreMsgWait and PostMsgWait are not
essential elements; mostly they are set to provide a little padding on either side of the message, so David
has time to get a pencil, think about his response, etc.
Because TelAlert is calling David at home, there are no extension-related values here. Because the
telephone number being called is unique to David, it is set under the destination, below.

40 | TelAlert Version 5.2 Voice and Hardward Guide


Step Three: Create the [Destination] Definition
This destination is quite simple, containing only the area code and phone number and pointing to the
relevant
[Configuration] and [User] definitions:
[Destination]...
{DavidVoiceLive}
AreaCode=800
Number=555-1212
User=David
Configuration=OutboundVoiceLive

Other Considerations
Perhaps you want to send voice notifications to David at home only when certain emergencies arise at
times that he is likely to be at home (late at night or on the weekend). To set this up, follow these steps:
Under [Schedule], create two special entries for David:

[Schedule]...
{DavidHomeEmergency}
Sunday=00:00-23:59
Monday=23:00-23:59, 00:00-07:00
Tuesday=23:00-23:59, 00:00-07:00
Wednesday=23:00-23:59, 00:00-07:00
Thursday=23:00-23:59, 00:00-07:00
Friday=23:00-23:59, 00:00-07:00
Saturday=00:00-23:59

{DavidNever}
Sunday=00:00-00:00
Monday=00:00-00:00
Tuesday=00:00-00:00
Wednesday=00:00-00:00
Thursday=00:00-00:00
Friday=00:00-00:00
Saturday=00:00-00:00
Under {DavidVoiceLive}, point to these schedules by adding these settings:
Schedule=DavidNever
AlternateSchedule=DavidHomeEmergency
AlternateSchedulePriority=90
Now, David will receive a voice notification at home only if the alert meets all three of these conditions:

 {DavidVoiceLive}—whether directly or by means of a group send in which the


it invokes
[Group] definition contains {DavidVoiceLive}

 it is assigned a priority of 90 or higher

 it occurs during the hours specified in {DavidHomeEmergency}

Chapter 3: Software Configuration for Outgoing Messages | 41


Why is the {DavidNever} schedule needed? If the destination contained no explicit Schedule setting, it
would be considered valid (i.e., on duty) during all hours for all alerts assigned a priority of less than 90.
But because it invokes a [Schedule] definition such that it is never active, all alerts of a priority less
than 90 are effectively filtered.

3.6 Setting Up Voice Mail/Answering Machine Notification


This section begins with a discussion of each of the elements comprising the setup for voice notifications
intended exclusively for delivery to a voice mailbox or answering machine.
It then proceeds through a step-by-step example. Note that there can be a tremendous amount of variety
from one voice configuration scenario to the next. Thus, this example is presented as only one of many
possible applications of the principles dealt with here and in the Voice Notification Logic section.

3.6.1 Elements
The essential pieces of a voice mail/answering machine notification setup are a [Configuration]
definition and a [Destination] definition.

[Configuration] Definition
A [Configuration] definition for a voice mail/answering machine notification might look something like
this. Each setting is discussed below.

[Configuration]...
{OutboundVoiceMail}
AreaCode=800
Number=555-1212
MailboxWait=1s
Type=TTS
ExtensionWait=1s
ExtensionListenDelay=3s
VoiceAnswerWait=1m
PreMsgWait=1s
PostMsgWait=2s
Terminator=#
TerminatorWait=1s
 AreaCode—The area code associated with the main number you are dialing.

 Number—The main number you are dialing. If this and the area code are unique to the person to
whom you want to deliver the message, they belong in the destination. Here they are in the
[Configuration] definition because the intended person is designated by an extension—
implying that more than one person can be reached at the same area code and main number.

 MailboxWait—The amount of time TelAlert waits before dialing the Mailbox value, if one is
specified in the destination.

 Type—For voice mail/answering machine notification, this must be set to TTS. Otherwise, TelAlert
seeks answer confirmation.

 ExtensionWait—The amount of time TelAlert waits after it detects an answer and before it dials
the specified extension (set in the destination). This is needed in situations in which the extension
cannot be entered immediately upon answer.

42 | TelAlert Version 5.2 Voice and Hardward Guide


 ExtensionListenDelay—The amount of time TelAlert waits without listening after dialing the
extension. This is used to keep TelAlert from accidentally interpreting music or a recorded message
played during the call transfer as an answer. When this value is properly set, TelAlert does not
begin listening again until the extension is ringing.

 VoiceAnswerWait—The amount of time TelAlert waits to detect the voice mail or answering
machine message.

 PreMsgWait—The amount of time TelAlert waits before reading the message, once it has followed
all other instructions leading up to the reading of the message.

 PostMsgWait—The amount of time TelAlert waits after reading the message, before taking the
next appropriate step.

 Terminator—In general, the tone TelAlert issues after reading the message. A Terminator
value set in a [Configuration] definition is played immediately after the Terminator value (if
any) set in the destination. Most voice mail systems do not require the caller to issue a
Terminator tone, but many will accept one.
 TerminatorWait —The amount of time before TelAlert issues the Terminator tone.
[Destination] Definition
A [Destination] definition for a voice mail/answering machine notification might look something like
this. Each setting is discussed below.

[Destination]...
{CynthiaVoiceMail}
User=Cynthia
Configuration=OutboundVoiceMail
Extension=123
Mailbox=1
 User—A destination invoking a [Configuration] definition of Type=TTS must contain a User
setting.

 Configuration—A reference to the above [Configuration] definition.

 Extension—The number that must be dialed after the main number is answered in order to reach
the intended person. If it were necessary to enter another value prior to entering the extension (if,
for instance, the recorded message said, “Press 1 if you would like to enter an extension”), you
could make this value a part of the Extension setting:

Extension=3,123
The comma inserts a one-second pause between these values.

 Mailbox—The number or other value that must be dialed after the intended person is reached in
order to leave a message. For instance, a person’s voice mail greeting might say, “To leave a
message, press 1. To return to the main switchboard, press 2.” Here, you would set Mailbox to 1
in order to get TelAlert into the person’s voice mailbox.

Chapter 3: Software Configuration for Outgoing Messages | 43


User
The [User] definition invoked in the destination must exist under [User]. Each setting is discussed below.
[User]
...
{Cynthia}
Active=True
Password=password
 Active—Set to True, this means that the [User] definition is ready for use by TelAlert.

 Password—You must specify a password for any [User] definition invoked by a destination that
points to a [Configuration] definition of Type=TTS.

Example
The scenario is this:
You want to leave voice messages for Cynthia in her voice mailbox at work. You do not want TelAlert to
speak to her live; instead, you want to go directly into voice mail. TelAlert is connected to an inside line and
is set up with its own identity within the company phone system.
Step One: Map the Process

As you first lay out all the steps, try not to think in terms of what TelAlert has to do. Think instead of the
normal procedure you would follow in sending a message directly to Cynthia’s voice mail from an inside
line. In addition to mapping the active steps, you need to consider timing of each. You must create a
[Configuration] definition and a destination that together cause TelAlert to do the right thing at the
right time, relative to the voice mail system’s ability to receive and process input.
The process outlined below makes certain assumptions about the telephone system in use. Obviously,
there are significant variations from one system to another.
1. From your own phone, press # to indicate that you want to log on.
2. Wait for the system to begin prompting you for a password.
3. Enter the password.
4. Wait for the menu to begin playing.
5. Choose the menu item for sending voice mail to another user.
6. Wait for the tone.
7. Record the message.
8. Press the # key to indicate that you have finished recording.
9. Wait for the message telling you to enter the extension number of the person for whom the message is
intended.
10. Enter the extension number.
11. Press the # key to send the message.
12. Press the * key to exit the menu.
13. Hang up.
Note that some systems allow you to choose a menu item at any time; it may not always be necessary for
you to wait for a menu or other message to play completely before entering a value. However, some brief
wait may be necessary for the system to go from one listening mode to another. In other words, you may
have to wait for the system to begin listing menu items before choosing the desired item.

44 | TelAlert Version 5.2 Voice and Hardward Guide


Step Two: Create the [User] Definition
Because the [Configuration] definition’s type will be TTS, you must create a [User] definition. Do
this first, as the destination must refer to this entry. If you prefer, you can set up a general [User]
definition that can be invoked in all instances requiring a user: User=Operator. In this case, though,
create a unique [User] definition for Cynthia alone:

[User]
...
{Cynthia}
Active=True
Password=password

Step Three: Create the [Configuration] Definition


In reality, you will probably work on the [Configuration] definition and [Destination] definition
together, since they work together in replicating the steps comprising the overall procedure for leaving a
voice mail message. Keep in mind, though, that the destination must refer
to an existing [Configuration] definition; thus, you should begin the [Configuration]
definition first.
Details of InternalVoiceMail are discussed below. These descriptions pertain specifically to the
procedure at work in this particular configuration-destination combination. Note that the meanings
suggested by the keywords do not necessarily match their function. For instance, the value assigned to
Mailbox is not actually a mailbox value, in the normal sense; rather, it is comprised of a password, a
pause, and a menu choice. Here, each keyword’s main significance is the order in which it comes into play.

[Configuration]...
{InternalVoiceMail}
Type=TTS
Number=##
MailboxWait=1s
Mailbox=9876,1
Terminator=,*
UserRequired=True
AnswerConfirmationRequired=False
PreMsgWait=5.5s

 Type—This must be set to TTS if the [Configuration] definition will not be used to send to live
destinations.

 Number—The first thing TelAlert dials. In this example, by dialing ## TelAlert signals to the phone
system that it wants to log in. After dialing, TelAlert listens until it hears the phone system
message, which asks for a password. Since this message matches the voice cadence defined under
[CallProgress], TelAlert recognizes the call as having been answered.
 MailboxWait—The amount of time TelAlert waits before dialing the Mailbox value. Here, this is
set just high enough to get TelAlert into the menu from which it can choose the option for sending
a message.

 Mailbox—The first value TelAlert dials after it detects an answer. Taken together, 9876,1
represents the password (9876), a one-second pause (represented by the comma), and the number
of the menu item for sending a voice mail message to another phone system user (1).

Chapter 3: Software Configuration for Outgoing Messages | 45


 Terminator—In general, the tone TelAlert issues after reading the message. A Terminator value
set in a configuration is played immediately after the Terminator value set in the destination. Here, *
is the value that gets TelAlert out of the phone system menu; the one-second pause inserted before it
serves simply as “padding”between it and the destination’s Terminator value.

 UserRequired—This must be set to True for all configurations of Type=TTS and


Type=InteractiveTTS.
 AnswerConfirmationRequired—This must be set to False for all configurations of Type=TTS.
 PreMsgWait —The amount of time TelAlert waits between issuing the Mailbox value and reading
the message. Here, this is set high enough to get TelAlert past the recorded message and tone played
by the phone system after the caller chooses the menu item for leaving a message.

Inside Access

If your phone system requires you to dial a special digit before dialing an inside number
and you have already configured TelAlert to take this into account using the
InsideAccess keyword, the above [Configuration] definition will not work
properly. Because the number of digits under Number will fall short of the
InsideDigitCount value (under [PhonePrefixes]), TelAlert will affix the
InsideAccess value to the front of Number when dialing. Thus, ## will become
7##, for instance, and TelAlert will not log in successfully.
In this case, you should set up TelAlert to call Cynthia’s voice mail from an
outside line. See Other Considerations for a discussion of this issue.
Alternatively, you can leave InsideAccess blank and manually affix this
special digit to the front of all internal numbers.

Step Four: Create the [Destination] Definition


Generally, information that might be used in conjunction with other destinations goes in the
[Configuration] definition. Conversely, the destination generally contains information uniquely related
to the person or voice mailbox to which the message is being sent.
[Destination]
...
{CynthiaVoiceMail}
User=Cynthia
Configuration=InternalVoiceMail
Terminator=,#,,123#

 User—This value must be set in any destination referring to a [Configuration] definition of


Type=TTS or Type=InteractiveTTS. Further, the invoked [User] definition must exist.
 Configuration—The source for most of the generally applicable information needed to send
messages to this destination.

 Terminator—In general, the tone TelAlert issues after reading the message. A Terminator
value set in a destination is played immediately before the Terminator value set in the
configuration. Here, this setting is used to specify the tone signaling the end of the message (#); it
also contains the extension to which the message will be sent and the value that tells the system to
go ahead and send the message (another #). The one-second pause before the first # is just

46 | TelAlert Version 5.2 Voice and Hardward Guide


precautionary “padding.” The two-second pause is designed to make sure TelAlert waits for the
prompt before entering the extension number (123).

Other Considerations

If, in the same phone system environment, you wanted TelAlert to call Cynthia’s voice mail from an outside
line, you might use a [Configuration] definition like this:

[Configuration]
...
{ExternalVoiceMail}
Type=TTS
AreaCode=800
Number=555-1212
Extension=##433
MailboxWait=1s
Mailbox=9876,1
Terminator=,*
AnswerConfirmationRequired=False
UserRequired=True
PreMsgWait=5.5s
Here, the difference in process rests with the fact that TelAlert dials in from outside in order to log in to the
system. This is accomplished using typical AreaCode and Number values and setting up Extension so
that, upon determining that the main number has been answered, TelAlert dials ## (to indicate that it
wants to log in) and 433 (its extension, to indicate whom it wants to log in as). Here, Mailbox functions
as in the previous example: it completes the log-in by providing TelAlert’s password, then specifies the
desired menu item.
From this point on, the procedure is identical to the one already described. The [Destination]
definition differs only in that it points to a different [Configuration] definition:

[Destination]
...
{CynthiaExternalVoiceMail}
User=Cynthia
Configuration=ExternalVoiceMail
Terminator=#,,123#

Chapter 3: Software Configuration for Outgoing Messages | 47


3.7 Setting Up Live Voice/Voice Mail Flexibility
This section begins with a discussion of each of the elements comprising the setup for voice notifications
that can be delivered to either a live person or a voice mailbox/answering machine.
It then proceeds through a step-by-step example. Note that there can be a tremendous amount of variety
from one voice configuration scenario to the next. Thus, this example is presented as only one of many
possible applications of the principles dealt with here and in Voice Notification Logic.

3.7.1 Elements
The essential pieces of a live voice/voice mail notification setup are a [Configuration] definition, a
[Destination] definition, and a [User] definition.
[Configuration] Definition
A [Configuration] definition for a live voice/voice mail notification might look something like this.
Each setting is discussed below.
[Configuration]...
{OutboundVoiceLiveOrMail}
AreaCode=800
Number=555-1212
Type=InteractiveTTS
ExtensionWait=1s
ExtensionListenDelay=2s
ToneConfirmWait=5
AnswerConfirmationRequired=False
UserRequired=True
VoiceAnswerWait=True
PreMsgWait=0.5s
PostMsgWait=1s
MailboxWait=1s
Terminator=#
TerminatorWait=1s

 AreaCode—The area code associated with the main number you are dialing.
 Number—The main number you are dialing. If this and the area code are unique to the person to
whom you want to deliver the message, they belong in the destination. Here they are in the
[Configuration] definition because the intended person is designated by an extension—
implying that more than one person can be reached at the same area code and main number.

 Type—This must be set to InteractiveTTS to ensure live voice/voice mail flexibility.


 ExtensionWait—The amount of time TelAlert waits after it detects an answer and before it dials
the specified Extension value (set in the destination). This is needed in situations in which the
extension cannot be entered immediately upon answer.

 ExtensionListenDelay—The amount of time TelAlert waits without listening after dialing the
extension. This is used to keep TelAlert from accidentally interpreting music or a recorded message
played during the call transfer as an answer. When this value is properly set, TelAlert does not
begin listening again until the extension is ringing.

48 | TelAlert Version 5.2 Voice and Hardward Guide


 ToneConfirmWait—The number of seconds TelAlert spends speaking the value of
TTSDialOutConfirmationPrompt (by default, "TelAlert") while waiting for the person
answering the phone to press the # key. TelAlert goes through this process even if voice mail
answers; it proceeds by reading the message into voice mail only if the # key is not pressed during
this interval (this is how it understands whether a person or a machine has answered).

 AnswerConfirmationRequired—For voice notifications that are exclusively live, this must be


set to False. This setting permits TelAlert to read the message even if the # key is not pressed.

 UserRequired—For [Configuration] definitions of type InteractiveTTS, this must be set to True.


 VoiceAnswerWait—The amount of time TelAlert waits to detect the voice mail or answering
machine message.

 PreMsgWait—The amount of time TelAlert waits before reading the message, once it has followed
all other instructions leading up to the reading of the message.

 PostMsgWait—The amount of time TelAlert waits after reading the message, before taking
whatever step follows.

 MailboxWait—The amount of time TelAlert waits before dialing the Mailbox value. A Mailbox
value must be specified in the destination to let TelAlert understand that it is to leave a message if
it does not receive answer confirmation.

 Terminator—The tone TelAlert issues after reading the message. A Terminator value set in a
[Configuration] definition is played immediately after the Terminator value (if any) set in
the destination. Most voice mail systems do not require the caller to issue a Terminator tone, but
many will accept one.

 TerminatorWait —The amount of time before TelAlert issues the first Terminator tone.
[Destination] Definition
A [Destination] definition for live voice notification might look something like this. Each
setting is discussed below.

[Destination]...
{RachelVoiceLiveOrMail}
User=Rachel
Configuration=OutboundVoiceLiveOrMail
Extension=321

 {RachelVoiceLive}—The name of the destination. Whatever name you assign, it should reflect
the nature of the destination.

 User—A destination invoking a [Configuration] definition of Type=InteractiveTTS must


contain a User setting.

 Configuration—A reference to the above [Configuration] definition.

 Extension—The number that must be dialed after the main number is answered in order to reach
the intended person. If it were necessary to enter another value prior to entering the extension (if,
for instance, the recorded message said, “Press 3 if you would like to enter an extension”), you
could make this value a part of the Extension value:

Extension=3,321
The comma inserts a one-second pause between these values.

Chapter 3: Software Configuration for Outgoing Messages | 49


[User] Definition
The User value must point to an entry under [User]. Each setting is discussed below.
[User]
...
{Rachel}
Active=True
Password=password
 Active—Set to True, this means that the [User] definition is ready for use by TelAlert.

 Password—You must specify a password in any [User] definition invoked by a destination that
[Configuration] definition of Type=InteractiveTTS.
points to a

Example
The scenario is this:
You want to deliver voice messages to Rachel at her desk, which is at another site that cannot be dialed
internally. You want TelAlert to deliver the message regardless of whether she or her voice mail answers.
Step One: Map the Process

In first laying out all the steps, try not to think in terms of what TelAlert has to do. Think instead of the
normal procedure you would follow in calling Rachel yourself. In addition to mapping the active steps, you
need to consider the timing of each. You must create a [Configuration] definition and a destination
that together cause TelAlert to do the right thing at the right time, relative to the phone system’s ability to
receive and process input.
The process outlined below makes certain assumptions about the telephone system in use. Obviously,
there are significant variations from one system to another.

1. Dial the area code

2. Dial the number

3. Wait for an answer and listen to the recorded message

4. Enter rachel’s extension and wait for ringing to begin

5. Wait for an answer

If her voice mail answers,

6. Listen to her personal greeting

7. Wait for the tone signaling that it is time to speak

8. Record the message

9. Press the # key

10. Hang up

50 | TelAlert Version 5.2 Voice and Hardward Guide


If a person answers, of course, you determine whether or not it is Rachel and, if so, speak to her.
TelAlert, by contrast, will say “TelAlert” a specified number of times while waiting for her to press the #
key. If TelAlert detects this tone, it knows that it is dealing with a person. In this case, it asks the person for
the correct password. If it receives the correct password, it assumes that it has succeeded in reaching
Rachel; it then reads the message and asks for positive or negative acknowledgment before hanging up.
Step Two: Create the [User] Definition
Because the [Configuration] definition’s type will be InteractiveTTS, you must create a [User]
definition. Do this first, as the destination must refer to the user. If you prefer, you can set up a general
[User] definition that can be invoked in all instances requiring one: User=Operator, for instance. In
this case, though, create a unique [User] definition for Rachel alone:

[User]...
{Rachel}
Active=True
Password=password

Step Three: Create the [Configuration] Definition


In reality, you will probably work on the [Configuration] definition and destination together, since
they work together in replicating the steps comprising the overall procedure for delivering a message to
Rachel. Keep in mind, though, that the destination must refer to an existing [Configuration]
definition; thus, you should begin the [Configuration] definition first.

Details of OutboundVoiceLiveOrMail are discussed below. These descriptions pertain specifically to


the procedure at work in this particular configuration-destination combination.

[Configuration]...
{OutboundVoiceLiveOrMail}
AreaCode=800
Number=555-1212
Type=InteractiveTTS
ExtensionWait=1s
ExtensionListenDelay=3.5s
ToneConfirmWait=5
AnswerConfirmationRequired=False
UserRequired=True
PreMsgWait=0.5s
PostMsgWait=1s
Terminator=#
TerminatorWait=1s
 AreaCode—The area code associated with the main number that must be dialed to reach Rachel.

 Number—The main number that must be dialed to reach Rachel. Here, the number and the area
code are not unique to her; if they were, they would belong in the destination.

 Type—This must be set to InteractiveTTS to ensure live voice/voice mail flexibility.

 ExtensionWait—The amount of time TelAlert waits after it determines that the main number has
been answered and before it dials the specified Extension value (set in the destination). Here,
this setting makes TelAlert wait until the phone system is ready to receive an extension.

Chapter 3: Software Configuration for Outgoing Messages | 51


 ExtensionListenDelay—The amount of time TelAlert waits without listening after dialing
Rachel’s extension, which consistently begins ringing three seconds after the extension is dialed.
This ensures that TelAlert does not interpret any sound preceding this ringing as an answer.

 ToneConfirmWait—The number of seconds TelAlert spends speaking the value of


TTSDialOutConfirmationPrompt (by default, "TelAlert") while waiting for Rachel to press the
# key after she answers. TelAlert goes through this process even if her voice mail answers; it
proceeds by reading the message into voice mail only if she does not press the # key during this
interval (this is how it understands whether a person or a machine has answered).

 AnswerConfirmationRequired—For voice notifications that are exclusively live, this must be


set to False. This setting permits TelAlert to read the message even if the # key is not pressed.

 UserRequired—For [Configuration] definitions of type InteractiveTTS, this must be set


toTrue.

 PreMsgWait—The amount of time TelAlert waits before reading the message, once it has followed
all other instructions leading up to the reading of the message.

 PostMsgWait—The amount of time TelAlert waits after reading the message, before taking
whatever step follows.

 Terminator—The tone TelAlert issues to signal that it is done reading the message. The phone
system in this example does not require a terminator tone but will accept one.

 TerminatorWait —The amount of time before TelAlert issues the Terminator tone.

Step Four: Create the [Destination] Definition


Generally, information that might be used in conjunction with other destinations goes in the
[Configuration] definition. Conversely, the destination generally contains information uniquely related
to the person or voice mailbox to which the message is being sent.

[Destination]...
{RachelVoiceLiveOrMail}
User=Rachel
Configuration=OutboundVoiceLiveOrMail
Extension=321
Mailbox=,
 User—This value must be set in any destination referring to a [Configuration] definition of
Type=TTS or Type=InteractiveTTS. Further, the User value must point to an entry under
[User].
 Configuration—The source for most of the generally applicable information needed to send
messages to this destination.

 Extension—Rachel’s extension number. ExtensionWait goes in the [Configuration]


definition because, presumably, you would want to use the same ExtensionWait value for all
extensions available through the main number set in the [Configuration] definition.

 Mailbox—The phone system in this example does not require you to do anything special to
indicate that you wish to leave a message once you encounter Rachel’s personal greeting. However,
in this case, setting some Mailbox value (here, a comma—i.e., a one-second pause) is necessary

52 | TelAlert Version 5.2 Voice and Hardward Guide


to make TelAlert understand that it will be delivering a voice mail message in the event that it does
not receive a tone confirmation.

3.8 Setting Up Voice Paging Functionality


Voice paging services deliver spoken messages to a special kind of pager, just as numeric or text paging
services deliver numeric or text messages to numeric or text pagers. Voice paging is covered here, rather
than in the paging chapter, because setting it up is similar to setting up standard, non-interactive voice
notification. For instance:
[Configuration]...
{VoicePage}
Type=TTS
ToneWait=6.5s
BlindAnswerWait=10s
AnswerToneOnly=True
IgnoreVoice=True
ToneRepeats=2
MinToneOn=0.080s
MaxToneOn=0.120s
MinToneOff=0.080s
MaxToneOff=0.120s
PreMsgWait=1s
Terminator=#
PostMsgWait=2s

[Destination]
...
{CynthiaVoicePage}
Configuration=VoicePage
AreaCode=800
Number=555-1212
Number and AreaCode appear in the destination because, here, the number is unique to the person being
paged. If the service had you dial the same number for everyone and then key in a PIN, Number and
AreaCode would go in the [Configuration] destination and you would enter the PIN as the
Mailbox value in the destination.
The MinTone and MaxTone values tell TelAlert how to recognize the series of special tones provided by
the service provider to indicate that it is time to speak the message.
Voice paging providers often answer calls with a voice recording followed by a special tone prompting the
caller to speak the message. You can let TelAlert recognize the speech as a sign that the call has been
answered, but in this case you must find a PreMsgWait setting such that TelAlert does not speak the
message before or during the special tone.
If you set IgnoreVoice and AnswerToneOnly to True in the [Configuration] definition, TelAlert
considers the call answered only if it hears the special tone, defined using MinToneOn, MinToneOff,
MaxToneOn, MaxToneOff, and ToneRepeats. Thus, PreMsgWait is not needed. Here,
AnswerToneOnly is set to True to ensure that the mere expiration of the ToneWait value does not
cause TelAlert to proceed as if the call had been answered. IgnoreVoice is set to True to ensure that
TelAlert does not hear the pre-recorded speech and therefore stop listening for the special tone.

Chapter 3: Software Configuration for Outgoing Messages | 53


4
Software Configuration for
IVR Menus
4.1 Overview
This chapter contains instructions for creating Interactive Voice Response menus to allow users to
check message details, acknowedge alerts, update integrated systems, and enter commands.
These menus are always invoked for incoming TTS calls, and can optionally be invoked after
outgoing TTS message delivery

4.2 Getting Started

4.2.1 Needed Information


Before setting up voice menus as described in this chapter, you must already have configured
TelAlert for voice notification as described in the Software Configuration for Outgoing
Messages Chapter, and (unless you are handling dial-in authentication with an external
application) created at least one [User] definition (see the Representing Users chapter in the
TelAlert Administrator Guide for details on creating [User] definitions). You may also need the
following information:

 A list of individuals to be allowed dial-in access

 To create custom menus, a detailed flowchart of each menu tree you want to create,
including prompts and commands

4.2.2 General Considerations


TelAlert’s voice menus, which require a Dialogic telephony card, are defined using a combination of
[Menu] section definitions and, UNIX shell or Perl scripts. Which menus are used in what situations
is controlled by settings in the [Access] and [User] sections. The prompts for voice menus are
generated by the text to speech software in sequences defined in the menus’ scripts.
Scripts
Scripts are the key to TelAlert’s voice menus. You can program menu scripts to do almost anything
you can do at the command line. The default MenuAck menu, for example, lets users not only play
and respond to messages, but access the host system’s ping command. You can create any
number of scripts and use menu definitions to associate different ones with different users, so that
each user has appropriate menu options.
Users
Voice menu access requires a user name and a password, which must be specified in the [User]
section, where you can also specify which menu the user will hear. If appropriate, everyone can
share a single [User] definition (for example, Operator); in that case, all users will hear the
same menu. The DialInMenuAccess keyword controls whether a user can access voice menus
by dialing in to a Dialogic telephony card; the DialOutMenuAccess keyword controls whether a
user is offered voice menu access after an outgoing InteractiveVoice message.

Note that TelAlert does not enforce any access restrictions based on user definitions. You can use
the ${User} parameter to limit dial-in voice menu users’ access to their own messages.

Menus
The [Menu] section controls how TelAlert interacts with scripts to create voice menus. Normally,
each script will need its own menu definition.

Access
The [Access] section controls what happens with dial-in access before the voice menu script
starts running. Keywords in this section let you enable or disable dial-in voice menu access, set
how many beeps TelAlert sounds when it answers a voice call, and change the prompts that
request the user name and password.
Keywords
Due to the many different sections involved in setting up voice menus, in this chapter keywords are
sometimes identified with the shorthand [section_name] keyword_name, for example,
"[Modem] AnswerDTMF" rather than "the AnswerDTMF keyword in the [Modem] section".

4.2.3 TelAdmin vs. telalert.ini File Configuration


To set up voice menus, you can use TelAdmin or edit the telalert.ini file directly. As a rule,
TelAlert documentation seeks to provide method-neutral information. The instructions offered here
apply equally to both methods.
For detailed information on these two configuration options, including important differences
between the two, see the TelAlert Desktop Guide.

4.2.4 Making TelAlert Re-Read its Configuration File


Only when TelAlert re-reads its configuration file will your configuration changes take place. How
you make it do this depends on your configuration method. For information on the two configuration
methods, including different methods for reloading configuration information, see the TelAlert
Desktop Guide.

56 | TelAlert Version 5.2 Voice and Hardward Guide


4.3 Setting Up Voice Menus
Once you have installed and tested the Dialogic telephony card, basic voice menus are ready to use.
You need only change a few defaults in the [Access] and [User] sections.

4.3.1 Enabling Dial-In Voice Menu Access


By default, dial-in voice menu access is enabled. You can check in telalert.ini or TelAlert
Desktop to see if the keywords are set to True.

[Access]...
VoiceDialInAccess=True
VoiceDialInTTS=True

For Dialogic Telephony Cards, both VoiceDialInAccess and


VoiceDialInTTS must be set to True for Inbound Access

VoiceDialInAccess determines whether TelAlert will answer the phone when an


incoming call is received on a TTS port. VoiceDialInTTS determines whether TelAlert
will use TTS or the now obsolete Voice technology. For TelAlert to answer an incoming
call on a Dialogic port and use TTS to create the outgoing message, both of these
keywords must be set to True.

(This setting has no effect on whether dial-out voice menus are available to recipients of
InteractiveTTS messages.) If you have not changed the other relevant TelAlert defaults, with
this setting TelAlert will answer any call made to the line connected to it, emit two short beeps, and
speak, “Please enter user name.” Before you can get past that initial voice prompt, you must
create one or more [User] definitions.

When Modem Access Is Enabled, Use a Separate [Access] Definition

The dial-in menus discussed in this chapter can also be accessed using terminal emulation
software and a modem. Since Dialogic telephony cards do not support analog modem
functionality, this should notbe enabled on TTS ports.
To disable this option, add ModemDialInAccess=False to the [Access] section
associated to TTS ports. To use this option with a Modem port, create a separate
[Access] section with this value set to True and assign it to the Modem port.

Chapter 4: Software Configuration for IVR Menus | 57


4.3.2 Configuring [User] Definitions for Voice Menus
Configuring Voice Menus for All Users
If you have already created [User] definitions, you can enable voice menus for all users by
setting the following keyword values:

[User]...
DialInMenuAccess=True
DialOutMenuAccess=True
Menu=MenuAck
DialInMaxMessages=0
For TelAlert 6e installations, this is set under the [User] <Default> setting in Desktop Admin.
DialInMenuAccess=True allows access to voice menus by dialing the Dialogic card.
DialOutMenuAccess=True allows users to access voice menus after receiving an
InteractiveTTS alert, that is, after receiving a voice call from TelAlert. The default value for
both of these keywords is False, so if you leave either keyword out entirely or use a blank
value, that type of voice menu access is disabled.

The Menu= keyword determines which menu definition (and thus which script) to use. MenuAck
is the definition for menu_ack.sh (or, in Windows, .pl), the default menu script for most
TelAlert installations. If you set up your own menu, as discussed below, replace that value with
the name of your custom menu.

Configuring Voice Menus for Selected Users Only


To enable voice menu access for selected users only, leave the [User] defaults as is, and instead
add the keyword value to the individual definitions as appropriate:
[User]
...
DialInMenuAccess=False
DialOutMenuAccess=False
Menu=
...

{JoeBlow}
...
DialInMenuAccess=True
DialOutMenuAccess=True
Menu=MenuAck
Since the default values of DialInMenuAccess and DialOutMenuAccess are False, [User]
definitions where either is missing or has a blank value will not have that type of voice menu access.
You can also turn voice menus on by default, and disable it only for selected users. For example:

[User]
...
DialInMenuAccess=True
Menu=MenuAck...

{JoeBlow}
...

58 | TelAlert Version 5.2 Voice and Hardward Guide


DialInMenuAccess=False
With this setting, [User] definitions where the keyword is missing or has a blank value will have
access to voice menus. Only users whose access is explicitly turned off, as above, will be denied
access.

Creating [User] Definitions for Use Only with Voice Menus

If your TelAlert implementation will not require [User] definitions for any other purpose, you
must create at least one to enable voice menus. For example:

[User]
...

{Operator}
Password=xyzzy
DialInMenuAccess=True
Menu=MenuAck
With this definition, anyone who knows the {Operator} user name and associated password can
dial in to a TelAlert system. If you plan to set up additional voice menus for different purposes (for
example, one for techs and managers, and another for help desk staff and network
administrators), create a [User] definition for each purpose:

[User]
...

{Tech}
Password=xyzzy
DialInMenuAccess=True
Menu=MenuTech
...

{Manager}
Password=abbab
DialInMenuAccess=True
Menu=MenuManager

Chapter 4: Software Configuration for IVR Menus | 59


4.4 TelAlert’s Default Voice Menu
4.4.1 Voice Menu Basics

Logging on to the System


When you dial into TelAlert and a Dialogic telephony card answers, by default you will hear “Please
enter user name.” The logon prompt by can be changed using the [Access]
TTSDialInUsernamePrompt.
After you hear the prompt, spell out your user name with the keys on your touch-tone phone:

2 = A B C
3 = D E F
4 = G H I
5 = J K L
6 = M N O
7 = P Q R S
8 = T U V
9 = W X Y Z
Enter the name of one of the definitions in the [User] section, press #, and you will hear, “Please
enter password” (or whatever message you set in [Access] TTSDialInPasswordPrompt).
Enter the password for that user definition, press #, and you will hear the menu associated with
that user (unless the definition is not configured for dial-in menu access, in which case TelAlert will
hang up.)
This menu is selected by the keyword [User] Menu=menuname. If there is a Menu= value in the
user definition, it will override the default value for the [User] section. In most installation types,
that default is preset to Menu=MenuAck.

Navigating and Customizing the Default MenuAck Voice Menu

You navigate TelAlert’s voice menus just the way you do a voice mail system. After you log on, you
will hear a menu similar to this one (the default MenuAck):

TelAlert Access Online. Hello, system online. Press 1 for all TelAlert messages, 2 to select
a specific message, 6 to call help desk, 7 to ping, 8 to exit.
Choosing 1 will let you hear and respond to all waiting messages associated with the [User]
definition you used to log in (providing the ackwait parameter has not expired and the alert has
not otherwise been released or cleared). If you know the send ID, you can press 2 to go to a
specific message.
The default for choice 6 is an undefined number. You can specify a help-desk extension either by
modifying telalert.ini, or by modifying the scripts menu_ack.sh/ksh (for UNIX); or
menu_ack.pl (for all platforms).
The shell scripts (.sh/.ksh) always include choice 6 in the prompt they speak. If somebody
actually selects 6, and if no extension has been defined, they then speak "cannot transfer to
helpdesk".
The Perl script (.pl) does not include choice 6 in its prompts unless an extension has been defined.
If somebody selects choice 6 when no extension has been defined, since it was not included in the
prompts, "invalid input" is spoken, instead of "cannot transfer to helpdesk".

60 | TelAlert Version 5.2 Voice and Hardward Guide


To change “help desk” to something else, like “operator,” search the script for the three
occurrences of “helpdesk,” and change them to the word or words you prefer.
Finally, you should note that the script speaks specifically "helpdesk extension", not "helpdesk
number", because we can only transfer if the TTS port is on a PBX. If the TTS port is on a direct
outside line, it can't transfer.
If you are experienced at using shell scripts, you can customize the default menu as much as you
like, or replace it with one of your own.
Command-Line Considerations for MenuAck
If you add a -remark parameter when sending a message, TelAlert will speak the remark instead
of the -m text when a recipient plays it through a voice menu. If you add a -source parameter,
the recipient can use the voice menu to ping the source without having to enter its IP address. For
example:
telalert -i gregalphapager -ackwait 1h -mp 555-1212 -m "This is the
pager message" -remark "This is the voice message"
-source "15.24.88.13"
Note that by itself, TelAlert does not know how to speak the -remark text. The menu_ack.sh
(.ksh or .pl) script includes code that sends that text to TelAlert through a speak command
(discussed in Creating Custom Voice Menus).
Troubleshooting Dial-In Access
If you are unable to access the voice menus when you dial in, make sure the following keyword
value for is set for the default user:

[User]...
DialInMaxMessages=0
If you are using thetelalert.ini method of configuring TelAlert, delete any
DialInMaxMessages lines from the individual [User] definitions. If you are using TelAdmin,
make sure that all of the user definitions have DialInMaxMessages set to 0.

Higher values are for use only with an older method of dial-in access that has been supplanted by
the more powerful and flexible script-based method discussed in this chapter.

4.5 Creating Custom Voice Menus


If you can write shell scripts, or any other kind of script that can interact with TelAlert via stdin
and stdout, what you can do with TelAlert’s voice menus is limited only by your imagination and
programming expertise.
In this section, we will cover the only the fundamentals of creating your own menus. A detailed
how-to guide is beyond the scope of this manual, but if you are an experienced script programmer,
the information here plus the sample scripts bundled with TelAlert should give you all you need to
know.
Custom voice menu development is also available from MIR3 Professional Services. Contact your
account manager for more information.

Chapter 4: Software Configuration for IVR Menus | 61


4.5.1 General Considerations
To design the most effective voice menus, forget about TelAlert for the moment, and think about
what options you would like to have on your menus. List all the TelAlert, controlling application,
and other commands you want to include, then create a flowchart showing how you want to
organize them into menus, including “back,” “top,” and “exit” branches as appropriate.
Keep in mind that in addition to interacting with TelAlert through the messages and commands
discussed below, a script can issue any of the TelAlert commands discussed in Chapter 3 of the
TelAlert Keyword and Command Reference.
Allow for Multiple Instances of a Script
Under certain circumstances, TelAlert may run more than one copy of a script at a time. If you
have a multiport Dialogic telephony card, this can happen easily, but even if TelAlert has only one
voice line you can end up with multiple instances if one user hangs up and another dials in before
the first user’s script has responded to the Hangup message from TelAlert.
The ${ConnectID} value from the Online message will be different for each instance of the script,
so you can use it to avoid problems in these situations. Use the script’s ConnectID variable in
temporary file names, system variables, and other places where multiple instances of the script
might step on each other.

Creating a [Menu] Definition


Each script you create needs its own [Menu] definition. For example, in Windows, the default
MenuAck script has the following definition:

[Menu]
...
{MenuAck}
Active=True
Shell=
Command=c:/mksnt/sh.exe ${TelAlertCfgFS}/Scripts/menu_ack.ksh
Online=Online ${ConnectID} ${Type} ${User}
Data=Data ${ConnectID} ${InputLength} ${InputTimeRemaining}
${InputData} Hangup=Hangup ${ConnectID}
Error=Error ${ConnectID} ${Error} ${InputData}
The Command keyword value is most often, as above, a single command that invokes the script. In
such cases, you should delete the default value of the Shell keyword. When TelAlert issues the
command, ${TelAlertCfgFS} is replaced with the TelAlert program directory path.

The default Shell=/bin/sh -c is appropriate only when you want to issue a series of
commands to be handled by the shell. You may change the Shell value to invoke any other shell
you wish to use.
The other keywords in the [Menu] section should normally be left at their default values.

62 | TelAlert Version 5.2 Voice and Hardward Guide


4.5.2 Menu Event Keywords
After TelAlert invokes a menu script in response to an incoming call, it sends information about the
call from the user to the script’s stdin. There are four kinds of messages TelAlert can pass to a
running menu script, which may act on the information itself, or route it to a controlling application
for further processing.
The format of these messages is set by keywords in the [Menu] section. Few users will have any reason
to change these keywords’ default values, but there are two additional replaceable parameters:

 ${Port}: The name of the [Port] definition used by the call. If you have a multiport
Dialogic telephony card, you may wish to use this to tell the script which line the call is on.

 ${TimeStamp}: The time at which the event occurred.

If you append one or both of these parameters to the end of an event keyword’s default values,
that should not break the scripts that are bundled with TelAlert. The ${Port} parameter would
most logically be used in the Online keyword value, since it will not change in the course of the
script’s execution.
Online
An Online message is sent immediately after the script is invoked to tell it the name of the user,
call type (normally InteractiveTTS; InteractiveModem is also valid), and connect ID (an
arbitrary integer TelAlert assigns to track calls). Only one online message will be sent to each
instance of a script. The keyword is [Menu] Online, and its default value is:

Online ${ConnectID} ${Type} ${User}


Data
TelAlert uses Data messages to pass user input (touch-tone key presses) as requested by Accept
commands from the script. The keyword is [Menu] Data, and its default value is:

Data ${ConnectID} ${InputLength} ${InputTimeRemaining} ${InputData}


 ${InputLength} is the number of digits actually entered by the user. This will be less
than the number requested by the accept command if the command times-out before the
user enters all the digits or if the user manually ends data entry by pressing the # key.

 ${InputTimeRemaining} is the number of seconds left before the Accept command


would have timed out. If the command does time out, this value is 0.

 ${InputData} is a string comprised of the digits entered by the user in response to the
Accept command’s prompt. The string may also include *, which may be used, for example,
to indicate the periods in an IP address to be pinged. It cannot include #, since TelAlert
interprets that key as the end of the data string.

Chapter 4: Software Configuration for IVR Menus | 63


Hangup
TelAlert sends a Hangup message to the script if it detects that the user has hung up. After
sending a Hangup, TelAlert will wait 15 seconds, and then kill the script if it is still running. The
keyword is [Menu] Hangup, and its default value is:

Hangup ${ConnectID}

Some Telephone Company switches, and many PBXs, do not properly report
hangups to Dialogic hardware
This prevents TelAlert from sending the Hangup message. Furthermore, users may think
they’ve hung up, but have actually left their phone off-hook. All scripts that contain input
prompt loops should also contain a 'loop counter' that will cause the script to terminate if
it repeatedly has the input timer expire without any input being received; see the
standard TelAlert scripts such as menu_ack for examples.

Error
When Telalert is unable to interpret an Accept, Speak, Transfer, or Disconnect command correctly,
it sends an Error message to the script. After sending an Error, TelAlert will wait 15 seconds, and
then kill the script if it is still running. The keyword is [Menu] Error, and its default value is:

Error ${ConnectID} ${Error} ${InputData}


4.5.3 Menu Script Commands
After TelAlert invokes a menu script, it responds to commands from the script’s stdout. These
commands may be generated by the script itself, or the script may pass them along from the
controlling application(s).
All menu commands must include the call’s connect ID, an arbitrary integer assigned to the call by
TelAlert and passed to the script’s stdin by the Online command. If the connect ID in the
command does not match the number of a current connection (that is, if the user has hung up),
TelAlert sends a Hangup command to the menu script’s stdin, waits 15 seconds, and then kills
the script if it is still running
Accept
The Accept command tells TelAlert to speak a phrase and wait for the user’s input.

accept [connect ID] [input flags] [number of input digits]


[number of seconds to wait for input] "prompt text"
All five parameters must be set for the command to work properly:

• Input flags: these three flags specify how user input will be handled. Uppercase is on; lowercase
is off. All three flags must be set.

 E/e Echo: with modem calls, whether user input is echoed. (This setting has no effect
with voice calls.)

 T/t Typeahead: whether the user can respond to a prompt before TelAlert has finished
speaking it. If this option is off, any responses the user makes while TelAlert is speaking
are ignored.

64 | TelAlert Version 5.2 Voice and Hardward Guide


 C/c Clip: whether TelAlert stops speaking as soon as the user responds. (This setting
has no effect when typeahead is turned off.)

• Connect ID: the ID number assigned to the call by TelAlert.

• Number of input digits: the number of touch-tone key presses that will constitute the user’s
response. The valid range is 1 to 80.

• Number of seconds to wait for user input: The number of seconds TelAlert will wait for the
user to respond. The valid range is 1 to 240. At the end of that time, TelAlert stops accepting user
input and sends a Data message containing any input received up to that point.

• Prompt text: The text to speak to the user. Maximum length is 120 characters.

In a script, an Accept command will normally be followed by a command that watches for the Data
message from TelAlert returning the requested data. For example:
echo Accept $ConnectID ETC 10 30 $RequestDataPrompt
read Opcode ConnectID MsgLength MsgTimeRemaining Msg
After receiving this Accept command, TelAlert will speak the contents of the
$RequestDataPrompt script variable to the user, then wait up to 30 seconds for the user to
enter up to 10 digits. Here are some possible Data messages the read command might get back
from TelAlert:

 Data 5401 10 24 8005551212: The user quickly entered all ten digits, as expected.

 Data 5401 1 15 0: The user entered only one digit, then with 15 seconds left before
timeout pressed # to end data entry.

 Data 5401 0 0: The user did not press any keys before the Accept command timed out.

 Data 5401 8 0 80055512: The user pressed only eight digits before the Accept
command timed out.

Given the possibility for user error, it is usually necessary to follow the echo Accept and read
commands with code that parses the Data message and branches to different subroutines
depending on the message’s contents. It is also prudent to include an error-handling routine that
checks the opcode variable to see if it is Error instead of the expected Data. See the sample
scripts in TelAlert’s scripts directory for some examples.
Print
The print command tells TelAlert to speak the prompt text.

print [ConnectID] "prompt text"


You can use this command prior to an Accept command in order to speak more than 120
characters, or to create voice prompts for non-TelAlert commands, like the ping routine in the
default menu_ack.sh (.ksh or .pl) menu script.

In a script, the print command might be used like this:

echo print $ConnectID $TransferPrompt

Chapter 4: Software Configuration for IVR Menus | 65


Transfer
The Transfer command tells TelAlert to transfer the call to another extension. Since it does not
include prompt text, you may want to precede it with a Speak command telling the user to hold
while the call is being transferred.

Transfer [ConnectID] [extension number]


In a script, a Transfer command might be followed by another command that watches for the
Hangup message from TelAlert:

echo Transfer $ConnectID


$help_desk_extension read Opcode
ConnectID

Disconnect
The Disconnect command tells TelAlert to speak the prompt text and then hang up.
Disconnect [ConnectID] "prompt text"
In this case, the prompt text is optional. In a script, the command might be used as follows:

echo Disconnect $ConnectID $DisconnectPrompt

4.5.4 Menu Script Examples


You can learn more about designing menu scripts by studying the samples included with TelAlert:

ITO\menu_opc.sh.in
Legent\menu_pdm.sh (or .ksh)
Remedy\menu_ars.sh
Remedy\menu_helpdesk.sh (or .ksh)
Remedy\menu_helpdesk.pl
Scripts\menu_ack.sh (or .ksh)
Scripts\menu_ack.pl
Two of these are defined in the default [Menu] section. The script menu_ack.sh (or .ksh) is
associated with MenuAck, and menu_helpdesk.sh (or .ksh) with RemedyMenu.

4.5.5 Disabling User Verification for Dial-In Voice Menu Access


If you prefer to have your script rather than TelAlert authenticate your users, you can disable
TelAlert’s dial-in user name and password dialog by setting the following keyword values:

[Access]
...
VoiceDialInUserRequired=False
VoiceDialInUser=Operator

[User]
...
{Operator}
Menu=DialInMenu

66 | TelAlert Version 5.2 Voice and Hardward Guide


With these settings, when you call into TelAlert, you will go immediately into the menu script set in the
DialInMenu menu definition. TelAlert will associate the user defined in VoiceDialInUser as the
user for the call.
We do not recommend using this setting with the menu scripts that come with TelAlert, since that
would make your voice menus available to anyone who happens to dial in.

4.5.6 Voice Menus and Command Line Requests


TelAlert 4.08 introduced "requests"—a way for two-way pagers to initiate interactions with TelAlert
via a [Notification] definition. (For a detailed explanation of requests, see Setting Up
Requests: Unsolicited Messages From Two-Way Pagers in Configuring for Pager
Notification, in the TelAlert Administrator Guide). You can now include requests generated on
the command line, using a command like this:

telalert -request string


This change allows you to create a custom voice menu script that offers a "place a request"
option to users who call and identify themselves to TelAlert. This script could then process the
user-provided input by creating and executing a TelAlert command like the one shown above.
A request generated in this way will be processed by the [Notification] definition referred to
under [Limits], using the NotificationRequest keyword. (In two-way paging, by contrast,
the [Notification] definition is determined by the NotificationRequest value set in the
[Configuration] definition that governs the pager.)

Chapter 4: Software Configuration for IVR Menus | 67


5
Appendix
MIR3 Contact Information
MIR3 customer care includes technical support, and product updates, and comprehensive
documentation. MIR3 ensures the success of your TelAlert installation by backing it with the
industry’s most readily available and professional product and service support. Our support
representatives are available 24-hours a day, 7 days a week. If you are a registered support user,
and wish to submit new support requests and review/update existing requests, do the following:

 Go to http://mir3.com.

 Click the Support link from the Support page, and then click the Self-Service Portal link.

 From the Login page, enter your username and password.

General Company Contact Information:

MIR3, Inc.
3398 Carmel Mountain Road
San Diego, CA 92121
+1.858.724.1200 Office
+1.858.724.1201 Fax

Customer Support Hotline:

1.888.489.8611 (US + Canada)


+1.858.724.1246 (International)

Customer Support Email:

support@mir3.com

You might also like