Creating a Conference

[This is preliminary documentation and subject to change.]

The method for setting up a conference is as follows:

A call exists between two parties, as in the diagram below.

User A decides to add another party to the conference. The application calls:

pCallA->AddToConference(pszDestAddress,
                           TRUE,
                           &pConsultCallA);
 

This creates a CallHub object for consultation, as shown in the following diagram:

User A may then use the ITConsultCall interface to discover whether private interaction is possible with user C.

pConsultCallA->CanIConsult( pbConsultC );
 

If CanIConsult returns pbConsultC as TRUE and user A would like to consult privately with user C before user C is added to the conference, the application must set the media terminals for the two parties to converse privately.

After this consultation, or if the user does not want to consult, the conference is completed:

pConsultCall->Finish();
 

The result is illustrated in the following diagram. All three parties in the diagram are connected in a conference.

These pictures are conceptual. From user C's point of view, pConsultCallC is the same as pCallC, and pConsultCallHub is the same as pCallHub. That is, C does not actually receive a new call object and a new CallHub object after A calls Finish. If C has registered the ITCallHubEventNotification interface, C is notified that the number of calls has changed on the CallHub when A calls Finish.

As soon as Finish is called, pConsultCallA transitions to the DISCONNECTED state . The pConsultCallA parameter can no longer be used for any call control, but the application may retain the call object for informational purposes.

Additional parties may be added to the conference by performing Step 2 and Step 3 for each new participant.