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

128 Voice API Programming Guide — June 2005
Send and Receive FSK Data
• Implementing Two-Way ADSI Using dx_TxRxIottData( )
10.8.1 Technical Overview of One-Way ADSI Data Transfer
In one-way ADSI data transfer, the ADSI server sends ADSI messages to a CPE device, such as an
ADSI-compliant telephone. The transactions that occur between the server and the CPE during
one-way ADSI data transfer are as follows:
1. The server initiates the data transfer by sending a CPE Alerting Signal (CAS) to the CPE.
2. When the CPE receives the CAS, the device generates an ACK (DTMF ‘A’ signal) to the
server. At this point the CPE device has switched from voice mode to data mode. (If the CPE
device remains in data mode, subsequent transmissions do not require the CAS.)
Note: Only ADSI-compliant CPE devices will respond to the CAS sent by the server. Check
with your manufacturer to verify that your CPE device is a true ADSI-compliant
device. ADSI-compliant devices are also referred to as "Type 3 CPE Devices" by
Telcordia Technologies and the EIA/TIA.
3. Upon receipt of the ACK signal, the server initiates the FSK transmission sequence. Each FSK
transmission sequence can contain anywhere from 1 to 5 messages.
4. The CPE receives the FSK data and uses the checksum included within the sequence to
determine the number of messages successfully received.
5. The CPE device then responds to the server with an acknowledgment digit (DTMF ‘D’)
followed by a DTMF of ‘0’ through ‘5,’ which indicates the number of messages successfully
received.
6. The server interprets the DTMF as follows:
• ACK = ‘D’ followed by a DTMF in the range of 1 – 5
• NAK = ‘D’ followed by a DTMF ‘0’
10.8.2 Implementing One-Way ADSI Using dx_TxIottData( )
The dx_TxIottData( ) function is used to send the CAS to the CPE and implement one-way ADSI
data transfer. To transfer ADSI FSK data, configure the function parameters and structures as
follows:
• Set the wType parameter DT_ADSI.
• Configure the DX_IOTT structure with the appropriate ADSI FSK data file(s). The application
is responsible for constructing the messages and checksums for each transmission.
• Set the termination conditions with the DV_TPT structure.
• Set dwTxDataMode within the ADSI_XFERSTRUC referenced by lpParams to
ADSI_ALERT to generate the CAS.
The following scenario illustrates the function calls that are required to generate an initial CAS to
the CPE and begin one-way ADSI data transfer.
1. Prior to executing dx_TxIottData( ), clear the digit buffer for the desired voice channel using
dx_clrdigbuf( ).