User's Manual
Table Of Contents
- Contents
- Figures
- Tables
- Revision History
- About This Publication
- 1. Product Description
- 2. Programming Models
- 3. Device Handling
- 4. Event Handling
- 5. Error Handling
- 6. Application Development Guidelines
- 7. Call Progress Analysis
- 7.1 Call Progress Analysis Overview
- 7.2 Call Progress and Call Analysis Terminology
- 7.3 Call Progress Analysis Components
- 7.4 Using Call Progress Analysis on DM3 Boards
- 7.5 Call Progress Analysis Tone Detection on DM3 Boards
- 7.6 Media Tone Detection on DM3 Boards
- 7.7 Default Call Progress Analysis Tone Definitions on DM3 Boards
- 7.8 Modifying Default Call Progress Analysis Tone Definitions on DM3 Boards
- 7.9 Call Progress Analysis Errors
- 7.10 Using Call Progress Analysis on Springware Boards
- 7.11 Call Progress Analysis Tone Detection on Springware Boards
- 7.12 Media Tone Detection on Springware Boards
- 7.13 Default Call Progress Analysis Tone Definitions on Springware Boards
- 7.14 Modifying Default Call Progress Analysis Tone Definitions on Springware Boards
- 7.15 SIT Frequency Detection (Springware Only)
- 7.15.1 Tri-Tone SIT Sequences
- 7.15.2 Setting Tri-Tone SIT Frequency Detection Parameters
- 7.15.3 Obtaining Tri-Tone SIT Frequency Information
- 7.15.4 Global Tone Detection Tone Memory Usage
- 7.15.5 Frequency Detection Errors
- 7.15.6 Setting Single Tone Frequency Detection Parameters
- 7.15.7 Obtaining Single Tone Frequency Information
- 7.16 Cadence Detection in Basic Call Progress Analysis (Springware Only)
- 8. Recording and Playback
- 8.1 Overview of Recording and Playback
- 8.2 Digital Recording and Playback
- 8.3 Play and Record Functions
- 8.4 Play and Record Convenience Functions
- 8.5 Voice Encoding Methods
- 8.6 G.726 Voice Coder
- 8.7 Transaction Record
- 8.8 Silence Compressed Record
- 8.9 Recording with the Voice Activity Detector
- 8.10 Streaming to Board
- 8.11 Pause and Resume Play
- 8.12 Echo Cancellation Resource
- 9. Speed and Volume Control
- 10. Send and Receive FSK Data
- 11. Caller ID
- 12. Cached Prompt Management
- 13. Global Tone Detection and Generation, and Cadenced Tone Generation
- 13.1 Global Tone Detection (GTD)
- 13.1.1 Overview of Global Tone Detection
- 13.1.2 Global Tone Detection on DM3 Boards versus Springware Boards
- 13.1.3 Defining Global Tone Detection Tones
- 13.1.4 Building Tone Templates
- 13.1.5 Working with Tone Templates
- 13.1.6 Retrieving Tone Events
- 13.1.7 Setting GTD Tones as Termination Conditions
- 13.1.8 Maximum Amount of Memory for Tone Templates
- 13.1.9 Estimating Memory
- 13.1.10 Guidelines for Creating User-Defined Tones
- 13.1.11 Global Tone Detection Application
- 13.2 Global Tone Generation (GTG)
- 13.3 Cadenced Tone Generation
- 13.3.1 Using Cadenced Tone Generation
- 13.3.2 How To Generate a Custom Cadenced Tone
- 13.3.3 How To Generate a Non-Cadenced Tone
- 13.3.4 TN_GENCAD Data Structure - Cadenced Tone Generation
- 13.3.5 How To Generate a Standard PBX Call Progress Signal
- 13.3.6 Predefined Set of Standard PBX Call Progress Signals
- 13.3.7 Important Considerations for Using Predefined Call Progress Signals
- 13.1 Global Tone Detection (GTD)
- 14. Global Dial Pulse Detection
- 14.1 Key Features
- 14.2 Global DPD Parameters
- 14.3 Enabling Global DPD
- 14.4 Global DPD Programming Considerations
- 14.5 Retrieving Digits from the Digit Buffer
- 14.6 Retrieving Digits as Events
- 14.7 Dial Pulse Detection Digit Type Reporting
- 14.8 Defines for Digit Type Reporting
- 14.9 Global DPD Programming Procedure
- 14.10 Global DPD Example Code
- 15. R2/MF Signaling
- 16. Syntellect License Automated Attendant
- 17. Building Applications
- Glossary
- Index

Voice API Programming Guide — June 2005 35
Application Development Guidelines
To specify an additional timeout if subsequent digits are not received, use the DX_IDDTIME
(interdigit delay) termination condition and the TF_FIRST flag in the DV_TPT structure. The
TF_FIRST flag specifies that the timer will start after the first digit is received; otherwise the timer
starts when the dx_getdig( ) function is called.
6.1.4 Clearing Structures Before Use
Two library functions are provided to clear structures. dx_clrcap( ) clears DX_CAP structures and
dx_clrtpt( ) clears DV_TPT structures. See the Voice API Library Reference for details.
It is good practice to clear the field values of any structure before using the structure in a function
call. Doing so will help prevent unintentional settings or terminations.
6.1.5 Working with User-Defined I/O Functions
Two library functions are provided to enable you to install user-defined I/O functions (also called
user I/O functions or UIO): dx_setuio( ) and dx_setdevuio( ). For details on these functions, see
the Voice API Library Reference.
The following cautions apply when working with user I/O functions:
• Do not include sleeps, critical sections, or any other delays in the user I/O function.
• Do not call any other Intel Dialogic function inside the user I/O function. One exception is the
ec_getblkinfo( ) function which is called from within a user I/O function. For more
information on this function, see the Continuous Speech Processing API Library Reference.
The reason for these cautions is as follows. On Springware boards, while the user I/O function is
executing, the Standard Runtime Library (SRL) is blocked and cannot process further messages
from the driver. Data will be lost if the driver cannot hand off messages to the SRL. On DM3
boards, you may see chopped audio or underruns. On all boards, be aware that the risk of underruns
increases as density rises.
6.2 Fixed and Flexible Routing Configurations
On DM3 boards, the voice library supports two types of routing configuration as follows:
Note: The routing configuration supported for a board depends on the software release in which the board
is used. See the Release Guide for the software release you are using to determine the routing
configuration supported for your board. See also the Configuration Guide for your product family
for information about media load configuration file sets and routing configuration supported.
fixed routing configuration
This configuration is primarily for backward compatibility with System Release 5.0. The fixed
routing configuration applies only to DM3 boards. With fixed routing, the resource devices
(voice/fax) and network interface devices are permanently coupled together in a fixed
configuration. Only the network interface time slot device has access to the TDM bus. Each
voice resource channel device is permanently routed to a corresponding network interface time
slot device on the same physical board. The routing of these resource and network interface