TSPI_lineSetTerminal-Funktion (tspi.h)
Mit der funktion TSPI_lineSetTerminal kann TAPI angeben, an welche Terminalinformationen, die sich auf die angegebene Zeile, Adresse oder den angegebenen Aufruf beziehen, weitergeleitet werden sollen. Dieser Vorgang kann verwendet werden, während Aufrufe auf der Leitung ausgeführt werden, damit Ereignisse bei Bedarf an verschiedene Geräte weitergeleitet werden können.
Syntax
LONG TSPIAPI TSPI_lineSetTerminal(
DRV_REQUESTID dwRequestID,
HDRVLINE hdLine,
DWORD dwAddressID,
HDRVCALL hdCall,
DWORD dwSelect,
DWORD dwTerminalModes,
DWORD dwTerminalID,
DWORD bEnable
);
Parameter
dwRequestID
Der Bezeichner der asynchronen Anforderung.
hdLine
Das Handle zu einer Zeile.
dwAddressID
Eine Adresse auf dem angegebenen Open Line-Gerät. Ein Adressbezeichner ist einer Adresse dauerhaft zugeordnet; Der Bezeichner bleibt über Betriebssystemupgrades hinweg konstant. TAPI überprüft diesen Parameter nicht, wenn diese Funktion aufgerufen wird.
hdCall
Das Handle für einen Aufruf. Der Aufrufzustand kann ein beliebiger Zustand sein (wenn dwSelect LINECALLSELECT_CALL ist).
dwSelect
Gibt an, ob die Terminaleinstellung für die Zeile, die Adresse oder nur für den angegebenen Aufruf angefordert wird. Wenn Zeile oder Adresse angegeben ist, gelten Ereignisse entweder für die Zeile oder Adresse selbst oder dienen als Standardeinstellung für alle neuen Aufrufe der Zeile oder Adresse. Dieser Parameter verwendet eine der LINECALLSELECT_ Konstanten.
dwTerminalModes
Die Klasse(n) von Ereignissen auf niedriger Ebene, die an das angegebene Terminal weitergeleitet werden sollen. Verwenden Sie eine der LINETERMMODE_ Konstanten für diesen Parameter.
dwTerminalID
Der Gerätebezeichner des Endgeräts, auf dem die angegebenen Ereignisse weitergeleitet werden sollen. Terminalbezeichner sind kleine ganze Zahlen im Bereich von 0 bis dwNumTerminals minus 1, wobei dwNumTerminals und die Terminalmodi, die jedes Terminal verarbeiten kann, vom Dienstanbieter in LINEDEVCAPS angegeben werden.
bEnable
True istdwTerminalID gültig, und die angegebenen Ereignisklassen werden an oder von diesem Terminal weitergeleitet. Wenn FALSE, werden diese Ereignisse nicht an oder von der dwTerminalID weitergeleitet. TAPI überprüft diesen Parameter nicht, wenn diese Funktion aufgerufen wird.
Rückgabewert
Gibt dwRequestID oder eine Fehlernummer zurück, wenn ein Fehler auftritt. Der tatsächliche lResult-Parameter der entsprechenden ASYNC_COMPLETION ist null, wenn die Funktion erfolgreich ist, oder eine Fehlernummer, wenn ein Fehler auftritt. Mögliche Rückgabewerte sind:
LINEERR_INVALLINEHANDLE, LINEERR_INVALTERMINALID, LINEERR_INVALADDRESSID, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALCALLHANDLE, LINEERR_NOMEM, LINEERR_INVALCALLSELECT, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALTERMINALMODE, LINEERR_OPERATIONFAILED.
Hinweise
Der Dienstanbieter gibt LINEERR_RESOURCEUNAVAIL zurück, wenn der Vorgang aufgrund einer Ressourcenüberlastung nicht abgeschlossen werden kann oder wenn zu viele Terminals festgelegt sind, entweder aufgrund von Hardwareeinschränkungen oder aufgrund von Einschränkungen des Dienstanbieters/Gerätetreibers.
TAPI kann diesen Vorgang verwenden, um bestimmte Klassen von Leitungsereignissen auf niedriger Ebene an das angegebene Terminalgerät weiterzuleiten oder das Routing dieser Ereignisse vollständig zu unterdrücken. Beispielsweise kann die Stimme an ein separates Audio-E/A-Gerät (Headset) weitergeleitet werden, Lampen und Anzeigeereignisse können an das lokale Telefongerät weitergeleitet werden, und Schaltflächenereignisse und Klingelereignisse können vollständig unterdrückt werden.
Anrufstatustöne und/oder Nachrichten werden an denselben Ort wie Medien weitergeleitet. Wenn z. B. Audiosignale an das Telefon gesendet werden, dann sind dies auch Beschäftigt-Signale (analog) oder Q.931-Nachrichten, die beschäftigt (digital) angeben.
Der Dienstanbieter muss bestimmen, ob die Kombinationen von dwSelect und dwTerminalModes zulässig sind.
Dieser Vorgang kann jederzeit aufgerufen werden, auch wenn ein Anruf auf dem angegebenen Leitungsgerät aktiv ist. Auf diese Weise kann ein Benutzer beispielsweise von der Verwendung des lokalen Telefons zu einem anderen Audio-E/A-Gerät wechseln.
Diese Funktion kann mehrmals aufgerufen werden, um die gleichen Ereignisse gleichzeitig an mehrere Terminals weiterzuleiten. Um Ereignisse an ein anderes Terminal umzuleiten, empfiehlt TAPI, dass die Anwendung zuerst das Routing an das vorhandene Terminal deaktiviert und als Nächstes die Ereignisse an das neue Terminal weiterleite. Der Dienstanbieter sollte sich jedoch nach besten Kräften bemühen, die Anforderungen der Anwendung in beliebiger Reihenfolge zu erfüllen.
Terminalbezeichnerzuweisungen werden vom Dienstanbieter vorgenommen, und LINEDEVCAPS gibt an, welche Terminalbezeichner der Dienstanbieter zur Verfügung hat. Dienstanbieter, die diese Art von Ereignisrouting nicht unterstützen, geben an, dass sie über keine Terminalgeräte verfügen (dwNumTerminals in LINEDEVCAPS ist auf Null festgelegt).
LineSetTerminal in einer Zeile oder Adresse wirkt sich auf alle vorhandenen Anrufe in dieser Zeile oder Adresse aus, wirkt sich jedoch nicht auf Anrufe an anderen Adressen aus. Außerdem wird die Standardeinstellung für zukünftige Anrufe für diese Zeile oder Adresse festgelegt. Eine Leitung oder Adresse, für die mehrere verbundene Anrufe gleichzeitig aktiv sind, kann für jeden Anruf eine andere Weiterleitung haben.
Das Deaktivieren des Routings von Ereignissen auf niedriger Ebene an ein Terminal, wenn diese Ereignisse derzeit nicht an oder von diesem Terminal weitergeleitet werden, ist nicht erforderlich, um einen Fehler zu generieren, solange die angegebenen Ereignisse nach dem Erfolgreichen der Funktion nicht an oder von diesem Terminal weitergeleitet werden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | tspi.h |