Professional Documents
Culture Documents
Version 5.71
Copyrights
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.
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.
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
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
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.
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.
Example Purpose
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.
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.
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
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.
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.
Dialup outgoing TDD (Telecommunications Devices for the Deaf) messaging and incoming
TDD menus
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.
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
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)
Please refer to TelAlert Release Notes for most current platform support information.
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].
The following table provides a summary of available voice fonts. Fonts may be selected using either their full
name or short name.
• 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”).
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.
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”.
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”.
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 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.
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.
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.
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).
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.
l. Click Save, Save, then OK. The Port definition is now completely modified from Voice to TTS.
m. Repeat for all Voice ports.
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:
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.
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.
These installation programs should be run sequentially in the order listed above.
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.
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.
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.
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.
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:
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.
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.
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.
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.
{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.
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.
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
2. Edit the /etc/services file, making the same changes as were made above to the
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):
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:
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.
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.
The same general test procedure will work for both Voice and TTS software technologies. A
few keyword settings will differ, as detailed below.
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.
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,
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.”
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
Mike | Rate=-1
or
The same syntax can be used in the -ttsvoice option on the command line, usually for testing.
[Port] entries, and to some extent [Access] entries, were covered in The Role of Ports
Chapter in the TelAlert Administrator Guide.
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)
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)
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
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
For a Dialogic card, the number cannot include pauses, represented by commas ( ,,).
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.
Telalert’s expectations in this regard are determined by settings in its configuration file, as
discussed below.
Offers the user a menu of acknowledgment choices (by default, positive acknowledgment or
negative acknowledgment).
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:
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.
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:
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.
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.
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.
[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.
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.
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.
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:
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.
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.
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.
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.
[User]
...
{Cynthia}
Active=True
Password=password
[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).
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.
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
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#
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.
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.
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.
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.
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.
10. Hang up
[User]...
{Rachel}
Active=True
Password=password
[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.
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.
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.
[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.
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
[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.
To create custom menus, a detailed flowchart of each menu tree you want to create,
including prompts and commands
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".
[Access]...
VoiceDialInAccess=True
VoiceDialInTTS=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.
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.
[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.
{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}
...
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
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.
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".
[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.
[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.
${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.
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:
${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.
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:
• 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.
• 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.
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:
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.
[Access]
...
VoiceDialInUserRequired=False
VoiceDialInUser=Operator
[User]
...
{Operator}
Menu=DialInMenu
Go to http://mir3.com.
Click the Support link from the Support page, and then click the Self-Service Portal link.
MIR3, Inc.
3398 Carmel Mountain Road
San Diego, CA 92121
+1.858.724.1200 Office
+1.858.724.1201 Fax
support@mir3.com