
Cautions | Example | Errors | See Also
Parameter |
Description |
chdev |
Specifies the voice channel device handle obtained when the channel was opened using dx_open( ). |
sc_tsinfop |
Specifies a pointer to the data structure SC_TSINFO. |
The SC_TSINFO structure is declared as follows:
typedef struct sc_tsinfo {
unsigned long sc_numts;
long *sc_tsarrayp;
} SC_TSINFO;
The sc_numts field of the SC_TSINFO structure must be set to 1. The sc_tsarrayp field of the SC_TSINFO structure must be initialized with a pointer to a valid array. The first element of this array must contain a valid SCbus time-slot number (between 0 and 1023) which was obtained by issuing a call to xx_getxmitslot( ) (where xx_ is ag_, dt_, dx_, or ms_) or dx_getxmitslotecr( ), depending on the application of the function. Upon return from the dx_listenecr( ) function, the echo canceller of the specified voice channel is connected to the SCbus time slot specified, and it uses the signal carried on the SCbus time slot as the echo-reference signal for echo cancellation.
This function fails when:
#include <stdio.h>
#include <windows.h> #include <srllib.h> #include <dxxxlib.h> #include <msilib.h> main() { int msdev1, chdev2; /* MSI/SC Station, and Voice Channel device handles */ SC_TSINFO sc_tsinfo; /* Time slot information structure */ long scts; /* SCbus time slot */ /* Open MSI/SC board 1 station 1 device */ if ((msdev1 = ms_open("msiB1C1", 0)) == -1) { /* Perform system error processing */ exit(1); } /* Open board 1 channel 2 device */ if ((chdev2 = dx_open("dxxxB1C2", 0)) == -1) { /* Perform system error processing */ exit(1); } /* Fill in the SCbus time slot information */ sc_tsinfo.sc_numts = 1; sc_tsinfo.sc_tsarrayp = &scts; /* Get SCbus time slot connected to transmit of MSI/SC station 1 on board 1 */ if (ms_getxmitslot(msdev1, &sc_tsinfo) == -1) { printf("Error message = %s", ATDV_ERRMSGP(msdev1)); exit(1); } /* Connect the echo-reference receive of voice channel 2 on board 1 to the transmit signal of msdev1 */ if (dx_listenecr(chdev2, &sc_tsinfo) == -1) { printf("Error message = %s", ATDV_ERRMSGP(chdev2)); exit(1); } /* Continue . . . /* Then perform xx_unlisten()s and dx_unlistenecr(), plus all xx_close()s */ return(0); }
If the function returns -1, use the SRL Standard Attribute function ATDV_LASTERR( ) to obtain the error code or use ATDV_ERRMSGP( ) to obtain a descriptive error message. One of the following error codes may be returned:
Equate |
Returned When |
EDX_BADPARM |
Parameter error |
EDX_SH_BADCMD |
Function is not supported in current bus configuration |
EDX_SH_BADEXTTS |
SCbus time slot is not supported at current clock rate |
EDX_SH_BADINDX |
Invalid Switch Handler index number |
EDX_SH_BADLCLTS |
Invalid channel number |
EDX_SH_BADMODE |
Function not supported in current bus configuration |
EDX_SH_CMDBLOCK |
Blocking function is in progress |
EDX_SH_LCLTSCNCT |
Channel is already connected to SCbus |
EDX_SH_LIBBSY |
Switch Handler library busy |
EDX_SH_LIBNOTINIT |
Switch Handler library uninitialized |
EDX_SH_MISSING |
Switch Handler is not present |
EDX_SH_NOCLK |
Switch Handler clock fallback failed |
EDX_SYSTEM |
Error from operating system; use dx_fileerrno( ) to obtain error value |
Click here to contact Dialogic Customer Engineering
Copyright 2002, Dialogic Corporation