Voice API Programming Guide — June 2005 129
Send and Receive FSK Data
2. Issue dx_TxIottData( ). To generate an initial CAS to the CPE device, dwTxDataMode within
ADSI_XFERSTRUC must be set 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.
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. After completion of dx_TxIottData( ), the dx_getdig( ) function retrieves the DTMF ACK
sequence from the CPE device. Set the DV_TPT tp_termno field to DX_DIGTYPE to receive
the DTMF string "adx," where "x" is the message count acknowledgment digit (1-5).
After the CAS is sent to the CPE, as described in the preceding scenario, the CPE is in data mode.
Provided that the ADSI messages sent to the CPE instruct the CPE to remain in data mode,
subsequent ADSI transmissions to the CPE do not require the CAS. To send ADSI data without the
CAS, set the dwTxDataMode within the ADSI_XFERSTRUC referenced by lpParams to
ADSI_NOALERT. All other settings are the same as above.
The following scenario illustrates the function calls that are required to transfer ADSI data when
the CPE is already in data mode (without sending a CAS).
1. Prior to executing dx_TxIottData( ), issue dx_clrdigbuf( ) to ensure that the voice channel
digit buffer is empty.
2. Issue dx_TxIottData( ) and set dwTxDataMode within the ADSI_XFERSTRUC data
structure to ADSI_NOALERT. This initiates the immediate transfer of the data file(s)
referenced in the DX_IOTT structure to the CPE device.
3. 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.)
4. After completion of dx_TxIottData( ), the dx_getdig( ) function retrieves the DTMF ACK
sequence from the CPE device. Set the DV_TPT tp_termno field to DX_DIGTYPE to receive
the DTMF string "adx," where "x" is the message count acknowledgment digit (1-5).