Übergaben
Wenn eine Anwendung über Besitzerrechte für eine Kommunikationssitzung verfügt, kann die Anwendung den Besitz an eine andere Anwendung übergeben. Der Übergabevorgang wird normalerweise verwendet, um das Ändern des Medientyps des Aufrufs zu ermöglichen. Die Anwendung mit der höchsten Priorität für den neuen Medientyp sollte den Aufruf annehmen und verarbeiten. Medientypänderungen treten in der Regel aus einem der folgenden Gründe auf.
Benutzerbefehl: Über eine Benutzeroberfläche oder über Fenstermeldungen lernt die Anwendung, dass der lokale Benutzer den Medientyp ändern möchte. Beispielsweise hat der Benutzer die neue Zielanwendung (die noch kein Besitzer ist) angewiesen, einen vorhandenen Sprachanruf für die Übertragung von Daten zu erhalten. Die Zielanwendung muss nun die Kontrolle über den Aufruf übernehmen. In diesem Fall bemerkt der aktuelle Besitzer, dass die Anzahl der Besitzer zunimmt, und gibt dann seine Kontrolle über den Anruf auf. Alternativ könnte der Benutzer den aktuellen Besitzer des Aufrufs anweisen, ihn an eine Anwendung zu übergeben, die den neuen Medientyp verarbeiten kann.
Medientypänderung: Der Dienstanbieter kann eine Änderung des Medientyps erkennen. Beispielsweise gibt die lokale Anwendung eine aufgezeichnete Sprachnachricht an den Anrufer ab. Während dieser Nachricht entscheidet sich der Anrufer spontan, einen Faxanrufton zu übertragen, und die lokale Anwendung kann entsprechend reagieren, indem sie den Medientyp in Fax ändert und, falls erforderlich, den Anruf an eine Faxanwendung weiterleitet. Eine andere Möglichkeit besteht darin, dass eine Überwachungsanwendung die Medientypüberwachung aktiviert, und wenn der Medientyp, an dem sie interessiert, bei einem Anruf erkannt wird, kann sie den Besitz des Anrufs anfordern. Dieser Mechanismus macht es unnötig, dass jede Anwendung jeden Aufruf für jeden Medientyp überwacht.
Remoteparteibefehl: Die Remotepartei kann interaktiv eine Änderung der Medientypen während eines vorhandenen Anrufs angeben, z. B. wenn die lokale Anwendung die DTMF-Eingabe durch den Remoteaufrufer überwacht. Durch diese Überwachung gibt der Anrufer z. B. an, dass ein Fax gesendet werden soll. Andere Möglichkeiten, wie der Aufrufer lokale Anwendungen steuern kann, sind befehle, die für andere Datenverbindungen und über ISDN-Benutzerinformationsmeldungen empfangen werden.
Eine Anrufübergabe hat eines der folgenden Ergebnisse:
- Der Aufruf wird an eine andere Anwendung (SUCCESS) übergeben.
- Die Aushändigungsanwendung ist selbst das Ziel (TARGETSELF).
- Die Übergabe schlägt fehl (TARGETNOTFOUND).
Wenn die Anwendung, die den übergebenen Anruf empfängt, bereits über ein Anrufhandle für den Anruf verfügt, wird dieses alte Anrufhandle verwendet. Andernfalls wird ein neues Aufrufhandle erstellt. In beiden Fällen verfügt die Anwendung über Besitzerberechtigungen für den Aufruf. Wenn die Übergabeanwendung nicht mit der Zielanwendung identisch ist, wird das Ziel in einer Sitzungszustandsmeldung über die Übergabe informiert, als ob es einen neuen Anruf empfängt.
Wenn die aktuelle Besitzeranwendung angewiesen wird, die Medientypen zu ändern, erfolgt dies, indem sie den Aufruf an eine Anwendung übergibt, die für den Zielmedientyp verwendet wird. Die beiden Arten von Anrufübergaben werden unter "Gerichtete Übergaben" und " Übergaben vom Medientyp" beschrieben.
Nicht alle Dienstanbieter unterstützen die Verwendung dieses Vorgangs.
TAPI 2.x: Weitere Informationen finden Sie unter lineHandoff, wobei lpszFileName auf den Anwendungsnamen für eine direkte Übergabe oder dwMediaMode auf einen Medientyp für eine indirekte Übergabe festgelegt ist.
TAPI 3.x: Siehe ITBasicCallControl::HandoffDirect, ITBasicCallControl::HandoffIndirect.
Eine gerichtete Übergabe findet statt, wenn die Zielanwendung der ursprünglichen Anwendung anhand des Namens bekannt ist. Diese Situation tritt beispielsweise bei einer Reihe von Anwendungen auf, die vom gleichen Anbieter geschrieben wurden. Der Benutzer kann in der Regel die Steuerung von gerichteten Übergaben konfigurieren. Bei einer solchen Übergabe wird der Aufruf an die angegebene Anwendung übergeben, wenn sie die Zeile geöffnet hat, in der der Aufruf vorhanden ist. Der Medientyp, der zum Öffnen der Zeile durch die Anwendung angegeben wurde, wird ignoriert. Ein häufiges Beispiel ist ein Sprachanruf, gefolgt von einer Faxübertragung im selben Anruf. Die gerichtete Übergabe wird am häufigsten von Anwendungen desselben Entwicklers verwendet, die auch auf andere Weise verknüpft sind.
Die gerichtete Übergabe kann auch in zukünftigen Versionen als Teil des Prozesses verwendet werden, bei dem mehrere Anwendungen auf eingehende Aufrufe desselben Medientyps warten, wobei die Auswahl der Anwendung für die Verarbeitung des Anrufs auf datenverknüpfung oder höherer Protokollerkennung basiert und nicht auf medientyp. Ein Beispiel für die Verwendung wäre eine eingehende Datenmodemleitung mit Anwendungen wie Remoteübernahme, Bulletin Board, Remote-Netzwerkzugriff und Remote-E-Mail-Zugriff, die alle gleichzeitig auf Anrufe warten.
Eine Medientypübergabe findet statt, wenn ein neuer, zielorientierter Medientyp vorhanden ist, in der Regel, wenn die besitzende Anwendung feststellt, dass der für den Anruf erforderliche Medientyp nicht vorhanden ist oder sich ändern wird.
Der Prozess für eine medienabhängige Übergabe kann ein Untersuchungsprozess sein, wenn der Medientyp UNKNOWN bit aktiviert ist. Es liegt in der Verantwortung der eigenen Anwendung, medientypen zu durchlaufen, um die Anwendung mit der höchsten Priorität zu finden. TAPI führt dies nur beim ersten eingehenden Anruf durch, um den ersten Besitzer zu finden. Dies ist bei einem Übergabevorgang nicht der Fall. Andernfalls ist eine Übergabe praktisch identisch mit der anfänglichen Zuweisung eines Aufrufs an eine Anwendung. Der Unterschied besteht darin, dass nur ein Medientyp für eine indirekte Übergabe (Medientyp) festgelegt werden kann.
Da nur ein einzelnes Medientypbit angegeben werden kann, wird der Aufruf an die Anwendung mit der höchsten Priorität für diesen Medientyp übergeben. Es ist jedoch möglich, dass für die Übergabe mehrere Medientypen berücksichtigt werden. In diesem Fall sollte die Aushändigungsanwendung die höchste Priorität der möglichen Medientypen als Parameter angeben.
Wenn eine Anwendung beim Ausführen einer Medientypübergabe das UNKNOWN-Bit angibt und die Übergabe fehlschlägt, bedeutet dies, dass eine unbekannte Anwendung, die die Ermittlung des Medientyps durchführen kann, derzeit nicht ausgeführt wird. Die Aushändigung der Anwendung sollte dann versuchen, den Aufruf an die Anwendung mit der höchsten Priorität zu übergeben, die für den nächsthöheren Medientyp registriert ist.
Die empfangende Anwendung ist nun für den Anruf verantwortlich. Jetzt wird der tatsächliche Medientyp des Aufrufs untersucht. Wenn die Anwendung den Medientyp des Aufrufs verarbeiten kann, muss sie sicherstellen, dass es sich um die Anwendung mit der höchsten Priorität handelt, die für diesen Medientyp registriert ist. Wenn ja, behält er den Aufruf bei und verarbeitet ihn normal. Andernfalls wird der Aufruf an eine andere Anwendung übertragen, die für diesen Medientyp registriert ist.
Wenn der Test für diesen Medientyp jedoch fehlschlägt, testet die Anwendung erneut und versucht die verbleibenden Medienmodusmöglichkeiten. Zuerst muss das aktuelle Medientypbit deaktiviert und dann eine andere Übergabe mit einem anderen Typ versucht werden.
Dieser Prozess der Untersuchung und Übergabe wird fortgesetzt, und die verbleibenden Medientypen werden nacheinander eliminiert. Auf dem Weg sieht eine der Anwendungen möglicherweise, dass der von ihr verarbeitete Medientyp auf dem Anruf liegt und die Übergabe erfolgreich ist.
Die Anwendung sollte dann den richtigen Medientyp festlegen und alle anderen Medientypbits löschen. Dadurch werden andere interessierte Anwendungen über den richtigen Medientyp informiert. Diese anderen Anwendungen erhalten eine Ereignisbenachrichtigung, die besagt, dass sich der Medientyp des Anrufs geändert hat.