Voice API Programming Guide — June 2005 131
Send and Receive FSK Data
10.8.4 Implementing Two-Way ADSI Using dx_TxIottData( ) The dx_TxIottData( ) function is used to implement two-way ADSI data transfer. The
dx_TxIottData( ) function transmits the CAS and the subsequent "Switch to Peripheral Mode
Message" to the CPE. To transfer ADSI FSK data, set the parameters and configure the structures
as described below:
•Set the wType parameter DT_ADSI.
•Configure the DX_IOTT structure with the appropriate ADSI FSK data file(s), including the
"Switch to Peripheral Mode" message. 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 two-way ADSI data transfer.
1. Prior to executing dx_TxIottData( ), clear the digit buffer for the desired voice channel using
dx_clrdigbuf( ).
2. Issue dx_TxIottData( ). To generate an initial CAS to the CPE device, set dwTxDataMode
within ADSI_XFERSTRUC data structure to ADSI_ALERT.
3. The CAS is received by the CPE and the CPE sends an acknowledgment digit (DTMF ‘A’) to
the voice device.
Note: If the DTMF acknowledgment digit is not received from the CPE device within 500
ms following the end of the CAS, the function will return a 0 but the termination
mask returned by ATDX_TERMMSK() will be TM_MAXTIME to indicate an
ADSI protocol error. (The function will return a -1 if a failure is due to a general
transmission error.)
4. Upon receipt of the DTMF ‘A’ ACK, the voice device automatically transmits the data file
referenced in the DX_IOTT structure, which must include the "Switch to Peripheral Mode"
message.
5. After receiving the data file(s), the CPE responds with a DTMF ACK or NAK, indicating the
number of messages successfully received. (The application is responsible for determining
whether the message count acknowledgment matches the number of messages that were
transmitted and for re-transmitting any messages.)
Note: Upon successful completion, the function terminates with a TM_EOD (end of data)
termination mask returned by ATDX_TERMMSK( ).
6. The CPE responds to the "Switch to Peripheral Mode" message with either DTMF ‘B’ if the
peripheral is available or DTMF ‘A’ if the peripheral is unavailable.
7. After completion of dx_TxIottData( ), the dx_getdig( ) function retrieves the DTMF ACK
sequence from the CPE device. Set the DV_TPT tp_termno parameter to DX_DIGTYPE to
receive the DTMF string "adxb," where "x" is the message count acknowledgment digit (1-5).
When the DTMF string is received, additional messages can be sent and received between the
server and the CPE peripheral.