ITAutomatedPhoneControl::SelectCall, méthode (tapi3if.h)

La méthode SelectCall sélectionne l’objet téléphonique actuel sur l’objet Call pointé par le paramètre pCall .

Syntaxe

HRESULT SelectCall(
  [in] ITCallInfo   *pCall,
  [in] VARIANT_BOOL fSelectDefaultTerminals
);

Paramètres

[in] pCall

Pointeur vers l’interface ITCallInfo .

[in] fSelectDefaultTerminals

Si VARIANT_TRUE, utilisez des terminaux par défaut. Pour plus d'informations, consultez la section Notes qui suit.

Valeur retournée

Si la méthode réussit, retourne S_OK. Sinon, il retourne une valeur d’erreur.

Remarques

L’application doit disposer d’un privilège de propriétaire à la fois sur l’appel et sur le téléphone pour que cette méthode retourne la réussite. Si le téléphone n’est pas déjà ouvert avec le privilège propriétaire, cette méthode échoue.

Si le paramètre fSelectDefaultTerminals a la valeur VARIANT_TRUE, cette méthode récupère tous les terminaux par défaut associés au téléphone et tente de les sélectionner lors de l’appel. Si l’instanciation de l’un des terminaux échoue ou si la sélection de l’un des terminaux de l’appel échoue, l’ensemble de la méthode SelectCall retourne l’échec et l’appel ne sera pas sélectionné sur le téléphone. Si ce n’est pas le comportement requis pour une application, l’application doit passer VARIANT_FALSE pour le paramètre fSelectDefaultTerminals et gérer la sélection du terminal séparément.

Une fois cette méthode terminée, l’objet phone conserve une référence à l’objet d’appel (autrement dit, il appelle la méthode AddRef sur ITCallInfo).

Pour Windows XP, un seul appel à la fois peut être sélectionné sur un téléphone. Les versions futures de TAPI peuvent prendre en charge la sélection simultanée de plusieurs appels à utiliser avec des téléphones qui prennent en charge plusieurs apparences d’appel.

Notez qu’un appel peut être désélectionné de deux manières : (1) l’application peut appeler ITAutomatedPhoneControl::UnselectCall, ou (2) l’objet téléphone lui-même peut appeler ITAutomatedPhoneControl::UnselectCall. Consultez la liste suivante pour plus d’informations sur le moment où cela se produit.

Une fois cette méthode terminée, la gestion suivante est effectuée sur l’appel sélectionné :

  • Lorsque le téléphone est activé, l’objet téléphonique appelle ITBasicCallControl::D isconnect sur tout appel actuellement géré qui n’est pas déjà dans l’état d’appel CS_DISCONNECTED.
  • Si un appel sélectionné atteint l’état d’appel CS_DISCONNECTED, l’objet téléphonique désélectionne automatiquement l’appel à l’aide de la méthode ITAutomatedPhoneControl::UnselectCall .
  • Si le téléphone est fermé, tout appel sélectionné est automatiquement désélectionné à partir de ce téléphone.
  • Lorsque le téléphone est désactivé ou qu’un appel est sélectionné lorsque le téléphone est désactivé, l’objet téléphone appelle ITBasicCallControl::Answer sur l’appel actuellement géré s’il est dans l’état d’appel CS_OFFERING.
  • L’objet téléphonique appelle ITAutomatedPhoneControl::StartTone( PT_RINGBACK, 0 ) sur lui-même lorsqu’un appel est sélectionné sur celui-ci dans l’état d’appel CS_INPROGRESS et que le téléphone est désactivé, ou lorsqu’un appel sélectionné sur le téléphone entre dans l’état d’appel CS_INPROGRESS et que le téléphone est désactivé.
  • L’objet téléphonique appelle ITAutomatedPhoneControl::StopTone sur lui-même lorsqu’un appel est sélectionné sur celui-ci dans l’état d’appel CS_CONNECTED ou lorsqu’un appel sélectionné sur le téléphone entre dans l’état d’appel CS_CONNECTED.
  • L’objet téléphonique appelle ITAutomatedPhoneControl::StartRinger( 0, 0 ) sur lui-même lorsqu’un appel est sélectionné sur celui-ci dans l’état d’appel CS_OFFERING, CS_INPROGRESS ou CS_CONNECTED et que le téléphone est activé. Cela se produit également lorsqu’un appel sélectionné sur le téléphone entre dans l’état CS_OFFERING, CS_INPROGRESS ou CS_CONNECTED appel et que le téléphone est activé.
Selon les circonstances, l’objet téléphone effectue l’une des actions suivantes lorsqu’un appel est sélectionné sur celui-ci dans l’état d’appel CS_DISCONNECTED ou lorsqu’un appel sélectionné sur le téléphone entre dans l’état d’appel CS_DISCONNECTED.
  • Si le téléphone est onhook, l’objet téléphone appelle ITAutomatedPhoneControl::StopRinger sur lui-même.
  • Si le téléphone est offhook et que l’événement d’état d’appel CS_DISCONNECTED a une cause égale à CEC_DISCONNECT_BUSY, l’objet téléphonique appelle ITAutomatedPhoneControl::StartTone( PT_BUSY, 0 ).
  • Si le téléphone est offhook et que l’événement d’état d’appel CS_DISCONNECTED cause est égal à CEC_DISCONNECT_NORMAL, l’objet téléphonique appelle ITAutomatedPhoneControl::StopTone.
  • Si le téléphone est offhook et que l’événement d’état d’appel CS_DISCONNECTED n’a ni cause CEC_DISCONNECT_BUSY ni cause CEC_DISCONNECT_NORMAL, l’objet téléphonique appelle ITAutomatedPhoneControl::StartTone( PT_ERROR, 0 ).

Configuration requise

   
Plateforme cible Windows
En-tête tapi3if.h (inclure Tapi3.h)
Bibliothèque Uuid.lib
DLL Tapi3.dll

Voir aussi

ITAutomatedPhoneControl

ITBasicCallControl

ITCallInfo