Partager via


LINE_NEWCALL message

Le message de LINE_NEWCALL TSPI est envoyé à la fonction de rappel LINEEVENT chaque fois qu’un nouvel appel qui n’a pas été lancé arrive sur une ligne ouverte par TAPI. Il doit s’agir du premier message envoyé concernant cet appel. TAPI écrit le handle opaque htCall dans l’emplacement passé par le fournisseur de services sous la forme dwParam2. Cela donne au fournisseur de services la valeur htCall à utiliser dans les messages suivants.

            

Paramètres

htLine

Handle d’objet opaque TAPI pour l’appareil de ligne.

htCall

Inutilisé.

dwMsg

Valeur LINE_NEWCALL.

dwParam1

Handle opaque du fournisseur de services pour l’appel, de type HDRVCALL. TAPI transmet cette valeur comme paramètre hdCall pour identifier l’appel dans les procédures suivantes qu’il appelle pour fonctionner sur l’appel.

dwParam2

Pointeur de type LPHTAPICALL pointant vers un HTAPICALL. TAPI écrit le handle opaque TAPI pour l’appel à l’emplacement indiqué. Le fournisseur de services doit enregistrer cette valeur et la passer en tant que paramètre htCall pour identifier l’appel dans les événements suivants qu’il signale pour l’appel.

Ce paramètre peut également acquérir une valeur NULL (voir la section Remarques suivante).

dwParam3

Inutilisé.

Notes

Le fournisseur de services doit envoyer le message LINE_CALLSTATE comme message suivant pour cet appel. L’événement LINE_NEWCALL est inhabituel en ce qu’il transmet également une valeur au fournisseur de services.

Cette fonction signale tous les nouveaux appels provenant du fournisseur de services (entrants, sortants, lancés au téléphone, etc.) pour lesquels TAPI et le fournisseur de services n’ont pas encore échangé de handles opaques. Les handles sont échangés afin que TAPI et le fournisseur de services puissent par la suite effectuer des requêtes et signaler des événements impliquant l’appel. Étant donné que ces nouveaux appels ne sont pas nécessairement entrants, les appels peuvent initialement se trouver dans n’importe quel état, pas nécessairement dans l’état de l’offre . Si le fournisseur de services démarre et découvre qu’un ou plusieurs appels sont déjà actifs sur la ligne, il en informe TAPI avec LINE_NEWCALL messages suivis de LINE_CALLSTATE messages indiquant l’état actuel. Un nouvel appel sortant, lancé sur le téléphone par l’utilisateur, serait signalé avec un message LINE_NEWCALL , et le message LINE_CALLSTATE initial indiquerait que l’appel était dans l’état DIALTONE (puis continuait à partir de là).

Si le fournisseur de services passe un grand nombre d’appels à TAPI dans un laps de temps très court (pendant le même cycle d’interruption), TAPI peut être en retard dans le traitement de ces appels. Dans ce cas, TAPI indique au fournisseur de services d’attendre un peu avant d’envoyer d’autres appels. Il signale cela en écrivant une valeur NULL, au lieu d’un HTAPICALL valide, dans l’emplacement pointé par le paramètre dwParam2 de LINE_NEWCALL. Cela indique que la tentative de traitement du handle d’appel nouvellement proposé n’a pas réussi, probablement en raison d’une incapacité temporaire à allouer de la mémoire. Le fournisseur de services peut répondre en supprimant l’appel ou en renvoyant le message LINE_NEWCALL après un délai de planification (pendant lequel le fournisseur de services doit laisser le processeur autoriser TAPI à traiter d’autres actions en attente). Dans tous les cas, aucun autre message concernant le nouvel appel ne peut être passé à TAPI tant que l’échange de handle n’a pas réussi. Lorsque l’emplacement pointé vers dwParam2 acquiert une valeur non NULL , le fournisseur de services sait que cette valeur est un handle HTAPICALL valide pour l’appel.

Il n’existe aucun message correspondant directement au niveau TAPI. Ce message est utilisé au niveau TSPI pour introduire de manière unique et sans ambiguïté un nouvel appel entrant à TAPI et récupérer l’identificateur opaque TAPI pour l’appel.

Spécifications

Condition requise Valeur
Version TAPI
Nécessite TAPI 2.0 ou version ultérieure
En-tête
Tspi.h

Voir aussi

LINE_CALLSTATE

LINEEVENT