[This is preliminary documentation and subject to change.]
The model for transferring is very similar to conferencing. See Creating a Conference for more examples how these methods can be used.
A connection is established to person A. This connection is represented by pCallA. The user decides to transfer B to person C.
First, set up the transfer:
pCallA->SetupTransfer(pCDestAddress,
TRUE,
&pConsultCallA);
A's call object for the consultation call between A and C is pConsultCallA. C's call object for the consultation call between A and C is pConsultCallC. The CallHub that associates pConsultCallA and pConsultCallC is pConsultCallHub.
At this point, pConsultCallA->CanIConsult may be called. If this returns TRUE, the application can select MediaTerminals and A can converse privately with person C. If this returns FALSE, or the user does not wish to converse privately, the application should move to step 3 by calling:
pConsultCallA->Finish()
After calling Finish, B and C are directly connected, and the local end has been removed from the call. However, pCallA and pConsultCallA are available for informational purposes until the objects are released. As in the conferencing scenario, C has only one call object and one call hub through this whole process, meaning that for C, pConsultCallC = pCallC and pConsultCallHub = pCallHub.