Partager via


Routage des événements

Avec la fonction lineSetTerminal, l’application peut contrôler ou supprimer le routage d’événements de bas niveau spécifiés (échangés entre le commutateur et la station) sur un appareil. Avec lineSetTerminal, l’application spécifie l’appareil terminal vers lequel ces événements (tels que les événements de ligne, d’adresse ou d’appel de flux multimédia) sont routés.

Le routage des différentes classes d’événements peut être contrôlé individuellement, ce qui permet aux terminaux distincts d’être spécifiés pour chaque classe d’événements. Les classes d’événements incluent les lampes, les boutons, l’affichage, l’anneau, le commutateur de crochet et le flux multimédia.

Par exemple, le flux multimédia d’un appel (voix, par exemple) peut être envoyé à n’importe quel appareil de transducteur si le fournisseur de services et le matériel sont en mesure de le faire. En règle générale, un transducteur signifie la même chose qu’un commutateur de raccordement dans TAPI, quelque chose qui a un microphone et un haut-parleur. Les événements de sonnerie du commutateur vers le téléphone peuvent être mappés dans une alerte visuelle sur l’écran de l’ordinateur ou ils peuvent être acheminés vers un appareil téléphonique. Les événements de lampe et d’affichage peuvent être ignorés ou routés vers un appareil téléphonique (qui semble se comporter comme un ensemble de téléphones normal). Enfin, les pressions sur les boutons sur un appareil téléphonique peuvent ou ne pas être passées à la ligne. Dans tous les cas, ce routage des signaux de bas niveau de la ligne n’affecte pas l’opération de la partie ligne de TAPI, qui mappe toujours les événements de bas niveau à leur équivalent fonctionnel. Pour déterminer les terminaux qu’un appareil de ligne a disponibles (et leurs fonctionnalités), consultez les fonctionnalités de l’appareil de ligne avec lineGetDevCaps.

Supposons initialement que l’application a supprimé le routage de tous les événements (avec lineSetTerminal), et que l’utilisateur sélectionne un casque comme appareil d’E/S actuel. Un appel entrant envoie un message LINE_CALLSTATE et un message LINE_LINEDEVSTATE avec l’indication sonnant. Étant donné que le routage de tous les événements est supprimé, les événements en anneau ne sont pas routés vers le téléphone, de sorte que la sonnerie est supprimée. Au lieu de cela, l’application avertit l’utilisateur avec une boîte de dialogue contextuelle et un bip système dans le casque.

L’utilisateur décide de répondre à l’appel. Étant donné que l’appareil d’E/S actuel de l’utilisateur est le casque, l’application de téléphonie appelle lineSetTerminal sur l’appel entrant pour acheminer le média de l’appel vers le casque et répondre à l’appel. L’application peut également appeler lineSetTerminal pour acheminer la lampe et afficher les événements d’informations sur le téléphone défini afin qu’il se comporte comme d’habitude.

Dans un deuxième exemple, supposons qu’un appel entrant alerte sur l’ordinateur de l’utilisateur. Au lieu de sélectionner l’option de réponse avec la souris, l’utilisateur décide de simplement récupérer le combiné du téléphone pour répondre à l’appel. L’état du offhook au téléphone envoie un message à l’application. L’application peut interpréter cet état en tant que demande par l’utilisateur de sélectionner le combiné téléphonique pour effectuer la conversation. L’application appelle ensuite lineSetTerminal pour acheminer les données vocales sur l’appel vers le jeu de téléphones.