
Description | Example | Errors | See Also
Name: |
int dx_TxIottData(chdev, iottp, lpTerminations, wType, lpParams, mode) | |
Inputs: |
int chdev |
|
DX_IOTT *iottp |
| |
DV_TPT *lpTerminations |
| |
int wType |
| |
LPVOID lpParams |
| |
int mode |
| |
Returns: |
0 if successful -1 if error | |
Includes: |
dxxxlib.h srlib.h | |
Mode: |
Synchronous/asynchronous | |
The dx_TxIottData( ) function is used to transmit data on a specified channel. The data may come from any combination of data files, memory, or custom devices. The wType parameter specifies the type of data to be transmitted, for example ADSI data. The iottp parameter specifies the messages to be transmitted.
Upon asynchronous completion of dx_TxIottData( ), the TDX_TXDATA event is posted.
|
Parameter |
Description |
|
chdev: |
The valid Dialogic channel device handle returned from dx_open( ). |
|
iottp: |
The pointer to the I/O Transfer Table structure. The source of message(s) to be transmitted is specified by this transfer table. This is the same DX_IOTT structure used in dx_playiottdata( ) and dx_reciottdata( ). |
|
lpTerminations: |
The pointer to the Termination Parameter Table. |
|
wType: |
Specifies the type of data to be transmitted. To transmit ADSI data, set wType to DT_ADSI.
|
|
lpParams: |
The pointer to information specific to the data type specified in wType. The format of the parameter block depends on wType. For ADSI data, set lpParams to point to an ADSI_XFERSTRUC structure. |
|
mode: |
Specifies how the function should execute, either EV_ASYNC (asynchronous) or EV_SYNC (synchronous). |
// Synchronous transmit ADSI data
DX_IOTT iott = {0};
char *devnamep = "dxxxB1C1";
char buffer[16];
ADSI_XFERSTRUC adsimode;
int chdev;
.
.
.
sprintf(buffer, "MENU.ADSI");
if ((iott.io_fhandle = dx_fileopen(buffer, _O_RDONLY|O_BINARY)) == -1) {
/* Perform system error processing */
exit(1);
}
if ((chdev = dx_open(devnamep, 0)) == -1) {
fprintf(stderr, "Error opening channel %s\n",devnamep);
dx_fileclose(iott.io_fhandle);
exit(2);
}
// source is a file
iott.io_type = IO_DEV|IO_EOT;
iott.io_bufp = 0;
iott.io_offset = 0;
iott.io_length = -1;
adsimode.cbSize = sizeof(adsimode);
adsimode.dwTxDataMode = ADSI_ALERT; // send out ADSI data with CAS
printf("Waiting for incoming ring\n");
dx_wtring(chdev, 2, DX_OFFHOOK, -1);
if (dx_TxIottData(chdev, &iott, NULL, DT_ADSI, &adsimode, EV_SYNC) < 0) {
fprintf(stderr, "ERROR: dx_TxIottData failed on Channel %s; error:
%s\n", ATDV_NAMEP(chdev), ATDV_ERRMSGP(chdev));
}
.
.
.
If the function returns -1 to indicate an error, use the SRL Standard Attribute function ATDV_LASTERR( ) to obtain the error code or you can use ATDV_ERRMSGP( ) to obtain a descriptive error message.
Possible error codes from the dx_TxIottData( ) function include the following:
Error Code |
Description |
EDX_BADPARM |
Invalid data mode |
EDX_BADIOTT |
Invalid DX_IOTT (pointer to I/O transfer table) |
EDX_BUSY |
Channel already executing I/O function |
EDX_SYSTEM |
Error from operating system; use dx_fileerrno( ) to obtain error value |
Click here to contact Dialogic Customer Engineering
Copyright 2002, Dialogic Corporation