ms_estconf( )
Cautions | Errors | Example | See Also
Name: int ms_estconf (devh, cdt, numpty, confattr, confID) Inputs:
Returns: Includes: Category: Mode: Platform: Description
The ms_estconf( ) function establishes a conference of up to four parties. ms_addtoconf( ) must be used to increase the size of the conference beyond four and up to eight parties.
devh MSI board device handle cdt pointer to the conference descriptor table. See the MS_CDT data structure page for details. numpty number of parties in the conference. When this function completes successfully, the conference is established and numpty resources are used. confattr bitmask describing the properties of the conference. These properties affect all parties in the conference. Note: The default MSCA_NULL must be used if the conference attribute is not specified.
- MSCA_ND
- All parties in conference are notified by a tone if another party is being added or removed from a conference.
- MSCA_NN
- If MSCA_ND is set, do not notify participants if a party joins the conference in "receive-only" mode or as a monitor.
- MSCA_NULL
confID pointer to the memory location containing the conference ID number In SCbus mode, this function returns the listen TDM bus time slot number for the MSPN_TS party. The number is placed in the MS_CDT structure for the MSPN_TS party. For an MSPN_STATION party, such information is not returned because the conferenced signal is not placed on the TDM bus. In SCbus mode, the chan_attr field in the MS_CDT structure is redefined as follows:
#define chan_lts chan_attr
- Note: In SCbus mode, the MS_CDT structure is reused to return the listen TDM bus time slot information. The application is responsible for maintaining the integrity of the data in the structure.
Cautions
- Parties to be added to a conference must be off-hook when ms_estconf( ) is called.
- Cascading conferences are not supported in any form. A cascading conference occurs when a the maximum number of eight participants are already joined in a conference and more participants are added. The cascading conference contains a time slot participant that is a time slot from a second monitored conference, therefore, creating a conference within a conference. Cascading conferences may significantly deteriorate conference voice quality.
- This function fails when:
Errors
If this function returns -1 to indicate failure, obtain the reason for the error by calling the SRL standard attribute function ATDV_LASTERR( ) or ATDV_ERRMSGP( ) to retrieve either the error code or a pointer to the error description, respectively.
Refer to the error type tables found in Chapter 5, "Error Codes". Error defines can be found in dtilib.h or msilib.h.
Example
#include <windows.h> /* For Windows applications only */ #include <errno.h> #include "srllib.h" #include "dtilib.h" #include "msilib.h" #define NUM_PARTIES 3 int dev1; /* Board dev descriptor variables */ int chdev1,chdev2; /* Channel dev descriptor */ MS_CDT cdt[NUM_PARTIES]; /* Conf. desc. table */ int confID; /* Conf. ID */ int ts1, ts2; /* Open board 1 device */ if ((dev1 = ms_open("msiB1",0)) == -1) { printf( "Cannot open MSI B1: errno=%d", errno); exit(1); } /* Assume MSI/SC is connected to a DTI via SCbus. */ /* Need to do a dt_open() for DTI time slots */ /* This returns tsdev1 and tsdev2 as 2 device handles /* for 2 time slots. Follow this by dt_getxmitslot() /* to get SCbus time slots */ /* These SCbus time slots are passed on to the CDT */ /* * Continue processing */ /* Set up CDT structure */ /* Include station 2 on MSI board in conference */ cdt[0].chan_num = 2; cdt[0].chan_sel = MSPN_STATION; cdt[0].chan_attr = MSPA_NULL; /* The chan_num below is the SCbus time slot for tsdev1 on which */ /* DTI time slot is transmitting. It is received as a result of */ /* dt_getxmitslot() function above */ cdt[1].chan_num = ts1; cdt[1].chan_sel = MSPN_TS; cdt[1].chan_attr = MSPA_PUPIL; /* Set up another SCbus time slot for tsdev2 to be part of a 3 party conference. Another DTI time slot transmits on this SCbus time slot, just like above */ cdt[2].chan_num = ts2; cdt[2].chan_sel = MSPN_TS; cdt[2].chan_attr = MSPA_COACH; /* Establish conference */ if (ms_estconf(dev1, cdt, NUM_PARTIES, MSCA_ND, &confID) != 0) { printf("Error Message = %s",ATDV_ERRMSGP(dev1)); exit(1); } /* Note no listen required for cdt[0] because it is a station */ /* Do a listen for cdt[1] */ /* Set up SC_TSINFO structure for SCbus tslot */ tsinfo.sc_numts = 1; tsinfo.sc_tsarray = &cdt[1].chan_lts; /* Now, listen to TS */ if (dt_listen(tsdev1,&tsinfo) == -1){ printf("Error Message = %s",ATDV_ERRMSGP(tsdev1)); exit(1); } /* Do a listen for cdt[2] */ /* Set up SC_TSINFO structure for SCbus tslot */ tsinfo.sc_tsarray = &cdt[2].chan_lts; /* Now, listen to TS */ if (dt_listen(tsdev2,&tsinfo) == -1) { printf("Error Message = %s",ATDV_ERRMSGP(tsdev2)); exit(1); } /* * Continue processing * */ if (ms_delconf(dev1, confID) == -1){ printf("Error Message = %s",ATDV_ERRMSGP(dev1)); exit(1); } /* Continue processing */See Also
Click here to contact Telecom Support Resources
Copyright 2003, Intel Corporation