Conference Calls (Windows Embedded CE 6.0)
1/6/2010
A conference call can be established in a number of ways, depending on device capabilities.
A conference call usually starts with a two-person call. For example, an application can use the lineMakeCall function to establish a call. After the two-party call exists, additional parties can be added, one at a time. The next step is to add another call to one of the existing calls. Preparing to add the third party establishes the conference call through the lineSetupConference function, which takes the original two-party call as input, allocates a conference call, connects the original call to the conference, and allocates a consultation call whose handle is returned to the application.
The application then can use the lineDial function to establish a connection to the next party to be added. The third party is added through the lineAddToConference function, which specifies both the conference call and the consultation call.
To add parties to an existing conference call, the application uses the linePrepareAddToConference function, which specifies the conference call handle and returns a consultation call handle to the application. After the consultation call exists, it can be added through the lineAddToConference function (as seen previously). This function allocates a consultation call that can be added to the conference call later, and returns a consultation call handle to the application. This conference call then is placed on conference hold. After the consultation call exists, it can be added to the existing conference call by using the lineAddToConference function.
A conference call might have to be established through the lineSetupConference function, without an existing two-party call. A call to this function returns a handle for the conference call and allocates a consultation call. After a period of consultation, the consultation call can be added through the lineAddToConference function. Additional parties are added through the linePrepareAddToConference function, followed by the lineAddToConference function.
Use the call handle for the member calls to remove the call from the conference later. You can do this by invoking the lineRemoveFromConference function on the call handle. Note that this operation is not commonly available in its fully general form. Some hookswitches might not allow it at all, or only allow the most recently added party to be removed. To determine the available effects of removing a call from a conference, consult the line's device capabilities.
After a call becomes a member of a conference call, the call state of the member reverts to conferenced. The state of the conference call typically becomes connected. The call handle to the conference call and all of the added parties remain valid as individual calls. LINE_CALLSTATE events can be received about all calls. For example, if a member disconnects by hanging up, an appropriate call-state message can inform the application of this fact; such a call is no longer a member of the conference.
As is the case with call transfer, the application can toggle between the consultation call and the conference call by using the lineSwapHold function.