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

142 Voice API Programming Guide — June 2005
Cached Prompt Management
2. Call SRLGetPhysicalBoardName( ) to return the physical board name, which is in the form
brdBn, such as brdB1. This function is passed the AUID of the board from step 1. For
information on this function, see the Standard Runtime Library API Library Reference.
3. Call dx_open( ) with brdBn as the device name and get a handle to the physical board device.
4. Use dx_play( ) on a channel device with IO_CACHED specified in the DX_IOTT structure
io_type field. If cached prompt capability is not supported, the function will return
EDX_BADPROD error. For a description of this function, see the Voice API Library
Reference.
12.2.2 Downloading Cached Prompts to a Board
Perform the procedure for downloading a cached prompt to a board at the start of the application or
reinitialization of the board, or periodically during runtime. The steps are as follows:
1. Use dx_getcachesize( ) on the physical board handle to determine the total size of memory
available on the physical board or the remaining size of cache available for cached prompts.
See section Section 12.2.1, “Discovering Cached Prompt Capability”, on page 141 for
information on obtaining the physical board handle.
2. On Linux, use the Linux open command to open the file to be cached. On Windows, use
dx_fileopen( ) to open the file to be cached.
3. After determining that enough memory is available, use dx_cacheprompt( ) on the physical
board device to cache the file in the board memory.
For a description of these functions, see the Voice API Library Reference.
12.2.3 Playing Cached Prompts
Call dx_play( ) or dx_playiottdata( ) on a channel device to play the prompt. Specify
IO_CACHED in the DX_IOTT structure io_type field.
If running in asynchronous mode, the TDX_CACHEPROMPT event indicates termination of the
play function.
If playing multiple prompts from different sources, see the example code in Section 12.3, “Cached
Prompt Management Example Code”, on page 144 for more information.
12.2.4 Recovering from Errors
The following are some errors that may occur while loading a cached prompt:
• If you specify an invalid physical board handle, this produces EDX_BADPARM.
To avoid this situation, be sure to specify a valid physical board handle in the form brdBn.
• If there is an error in specifying the data source (DX_IOTT), this produces EDX_BADIOTT.
To troubleshoot this error, check the DX_IOTT structure.