lineSetupConference
The lineSetupConference
function sets up a conference call for the addition of the third party.
LONG lineSetupConference(
HCALL hCall, |
|
HLINE hLine, |
|
LPHCALL lphConfCall, |
|
LPHCALL lphConsultCall, |
|
DWORD dwNumParties, |
|
LPLINECALLPARAMS const lpCallParams |
|
); |
|
Parameters
hCall
The initial
call that identifies the first party of a conference call. In some environments
(as described in device capabilities), a call must exist to start a conference
call, and the application must be an owner of this call. In other telephony
environments, no call initially exists, hCall must be left NULL, and hLine
must be specified to identify the line on which the conference call is to be
initiated. The call state of hCall must be connected.
hLine
A handle to
the line. This handle is used to identify the line device on which to originate
the conference call if hCall is NULL. The hLine parameter is
ignored if hCall is non-NULL.
lphConfCall
A pointer to
an HCALL handle. This location is then loaded with a handle identifying the
newly created conference call. The application will be the initial sole owner
of this call. The call state of hConfCall is not applicable.
lphConsultCall
A pointer to
an HCALL handle. When setting up a call for the addition of a new party, a new
temporary call (consultation call) is automatically allocated. Initially, the
application will be the sole owner for this call.
dwNumParties
The expected
number of parties in the conference call. This number is passed to the service
provider. The service provider is free to do as it pleases with this number:
ignore it, use it as a hint to allocate the right size conference bridge inside
the switch, and so on.
lpCallParams
A pointer to
call parameters to be used when establishing the consultation call. This
parameter may be set to NULL if no special call setup parameters are desired.
Return Values
Returns a
positive request ID if the function will be completed asynchronously, or a
negative error number if an error has occurred. The dwParam2 parameter
of the corresponding LINE_REPLY message is zero if the function is successful
or it is a negative error number if an error has occurred. Possible return
values are:
LINEERR_BEARERMODEUNAVAIL,
LINEERR_UNINITIALIZED, LINEERR_CALLUNAVAIL, LINEERR_INVALMEDIAMODE,
LINEERR_CONFERENCEFULL, LINEERR_INVALPOINTER, LINEERR_INUSE, LINEERR_INVALRATE,
LINEERR_INVALADDRESSMODE, LINEERR_NOMEM, LINEERR_INVALBEARERMODE,
LINEERR_NOTOWNER, LINEERR_INVALCALLHANDLE, LINEERR_OPERATIONUNAVAIL,
LINEERR_INVALCALLSTATE, LINEERR_OPERATIONFAILED, LINEERR_INVALCALLPARAMS,
LINEERR_RATEUNAVAIL, LINEERR_INVALLINEHANDLE, LINEERR_RESOURCEUNAVAIL,
LINEERR_INVALLINESTATE, LINEERR_STRUCTURETOOSMALL, LINEERR_USERUSERINFOTOOBIG.
Remarks
If
LINEERR_INVALLINESTATE is returned, the line is currently not in a state in
which this operation can be performed. A list of currently valid operations can
be found in the dwLineFeatures field (of the type LINEFEATURE) in
the LINEDEVSTATUS
The lineSetupConference
function provides two ways to establish a new conference call, depending on
whether a normal two-party call is required to pre-exist or not. When setting up
a conference call from an existing two-party call, the hCall parameter
is a valid call handle that is initially added to the conference call by the lineSetupConference
request; hLine is ignored. On switches where conference call setup does
not start with an existing call, hCall must be NULL and hLine
must be specified to identify the line device on which to initiate the
conference call. In either case, a consultation call is allocated for
connecting to the party that is to be added to the call. The application can
then use lineDial
The
conference call typically transitions into the onHoldPendingConference
state, the consultation call into the dialtone state, and the initial
call (if there is one) into the conferenced state.
A conference
call can also be set up by a lineCompleteTransfer
A consultation
call can be canceled by invoking lineDroponit. When dropping a consultation
call, the existing conference call typically transitions back to the connected
state. The application should observe the LINE_CALLSTATE messages to determine
exactly what happens to the calls. For example, if the conference call reverts
back to a regular two-party call, the conference call will become idle and the
original participant call may revert to connected.
If an
application specifies the handle of the original call (hCall) in a call
to the lineUnhold function, both the conference call and the
consultation call typically go to idle.
See Also