Freigeben über


Ereignisrouting

Mit der funktion lineSetTerminal kann die Anwendung das Routing angegebener Ereignisse auf niedriger Ebene (zwischen Schalter und Station ausgetauscht) an ein Gerät steuern oder unterdrücken. Mit lineSetTerminalgibt die Anwendung das Terminalgerät an, an das diese Ereignisse (z. B. Leitungs-, Adress- oder Anrufmedienstreamereignisse) weitergeleitet werden.

Das Routing der verschiedenen Ereignisklassen kann individuell gesteuert werden, sodass für jede Ereignisklasse separate Terminals angegeben werden können. Ereignisklassen umfassen Lampen, Schaltflächen, Anzeige, Ringer, Hookswitch und Medienstream.

Beispielsweise kann der Mediendatenstrom eines Anrufs (z. B. Sprache) an jedes Wandlergerät gesendet werden, wenn der Dienstanbieter und die Hardware dies tun können. Im Allgemeinen bedeutet ein Wandler das gleiche wie ein Hookswitch Gerät in TAPI, etwas mit einem Mikrofon und einem Lautsprecher. Klingelereignisse vom Umstieg auf das Telefon können in einer visuellen Benachrichtigung auf dem Bildschirm des Computers zugeordnet werden, oder sie können an ein Telefongerät weitergeleitet werden. Leuchtenereignisse und Anzeigeereignisse können ignoriert oder an ein Telefongerät weitergeleitet werden (das sich als normale Telefonmappe verhält). Schließlich wird die Taste an einem Telefongerät gedrückt oder nicht an die Leitung übergeben. In jedem Fall wirkt sich dieses Routing von Signalen auf niedriger Ebene von der Linie nicht auf den Betrieb des Leitungsteils von TAPI aus, der ereignisse auf niedriger Ebene immer ihrem funktionalen Äquivalent zuordnet. Um die Terminals zu ermitteln, die ein Leitungsgerät zur Verfügung hat (und deren Funktionen), lesen Sie die Funktionen des Liniengeräts mit lineGetDevCaps.

Gehen Sie zunächst davon aus, dass die Anwendung das Routing aller Ereignisse unterdrückt hat (mit lineSetTerminal), und der Benutzer wählt ein Headset als aktuelles E/A-Gerät aus. Ein eingehender Anruf sendet eine LINE_CALLSTATE Nachricht und eine LINE_LINEDEVSTATE Nachricht mit dem klingelnden Hinweis. Da das Routing aller Ereignisse unterdrückt wird, werden Ringereignisse nicht an das Telefon weitergeleitet, sodass das Klingeln unterdrückt wird. Stattdessen benachrichtigt die Anwendung den Benutzer mit einem Popupdialogfeld und einem Systemton im Headset.

Der Benutzer entscheidet, den Anruf zu beantworten. Da das aktuelle E/A-Gerät des Benutzers das Headset ist, ruft die Telefonieanwendung lineSetTerminal- auf dem eingehenden Anruf auf, um die Medien des Anrufs an das Headset weiterzuleiten und den Anruf zu beantworten. Die Anwendung kann auch lineSetTerminal aufrufen, um Lampen- und Anzeigeinformationsereignisse an die Telefongruppe weiterzuleiten, sodass sie sich wie gewohnt verhalten wird.

Gehen Sie als zweites Beispiel davon aus, dass ein eingehender Anruf auf dem Computer des Benutzers benachrichtigt wird. Anstatt die Antwortoption mit der Maus auszuwählen, entscheidet sich der Benutzer, einfach den Telefonapparat aufzunehmen, um den Anruf zu beantworten. Der Offhook-Status am Telefon sendet eine Nachricht an die Anwendung. Die Anwendung kann diesen Status als Anforderung des Benutzers interpretieren, das Telefonhandset auszuwählen, um die Unterhaltung durchzuführen. Die Anwendung ruft dann lineSetTerminal auf, um die Sprachdaten im Anruf an die Telefongruppe weiterzuleiten.