Handoffs
Wenn eine Anwendung besitzer Berechtigung für eine Kommunikationssitzung hat, kann die Anwendung den Besitz an eine andere Anwendung übergeben. Der Übergabevorgang wird normalerweise verwendet, um zuzulassen, dass der Medientyp des Anrufs geändert werden kann. Die Anwendung mit der höchsten Priorität für den neuen Medientyp sollte den Anruf 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 der neuen Zielanwendung (der noch kein Besitzer ist) mitgeteilt, 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 erhöht wird, und gibt dann seine Kontrolle über den Anruf zurück. Alternativ kann 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 Medientypänderung erkennen. Die lokale Anwendung gibt beispielsweise eine aufgezeichnete Sprachnachricht an den Anrufer ab. Während dieser Nachricht entscheidet sich der Anrufer spontan, einen Faxanrufton zu übermitteln, und die lokale Anwendung kann entsprechend reagieren, indem sie den Medientyp auf Fax umwandelt und bei Bedarf den Anruf an eine Faxanwendung aushändigt. Dies kann auch für eine Überwachungsanwendung funktionieren, um die Medientypüberwachung zu aktivieren, und wenn der Medientyp, an dem es interessiert ist, bei einem Anruf erkannt wird, kann er den Besitz des Anrufs anfordern. Dieser Mechanismus macht es für jede Anwendung unnötig, jeden Aufruf für jeden Medientyp zu überwachen.
Remote-Partybefehl: Die Remoteparty kann interaktiv eine Änderung der Medientypen während eines vorhandenen Anrufs angeben, z. B. wenn die lokale Anwendung die DTMF-Eingabe durch den Remoteanrufer überwacht. Durch diese Überwachung gibt der Anrufer beispielsweise an, dass ein Fax gesendet werden soll. Andere Möglichkeiten, wie der Aufrufer lokale Anwendungen steuern kann, sind Befehle, die in anderen Datenverbindungen empfangen werden, und über ISDN-Benutzerinformationsmeldungen.
Eine Anrufübergabe hat eines der folgenden Ergebnisse:
- Der Aufruf wird einer anderen Anwendung (SUCCESS) zugewiesen.
- Die Übergabeanwendung ist selbst das Ziel (TARGETSELF).
- Die Übergabe schlägt fehl (TARGETNOTFOUND).
Wenn die Anwendung, die den übergebenen Anruf empfängt, bereits über einen Anrufhandle für den Anruf verfügt, wird dieser alte Anrufhandle verwendet. Andernfalls wird ein neuer Anrufhandle erstellt. In beiden Fällen endet die Anwendung mit Besitzerrechten für den Aufruf. Wenn die Übergabeanwendung nicht mit der Zielanwendung übereinstimmt, wird das Ziel über die Übergabe in einer Sitzungszustandsnachricht informiert, als ob sie einen neuen Anruf erhalten würde.
Wenn die aktuelle Besitzeranwendung angewiesen wird, Medientypen zu ändern, erfolgt dies durch Übergabe des Aufrufs an eine Anwendung, die für den Zielmedientyp verwendet wird. Die beiden Arten von Anrufübergaben werden in weitergeleiteten Handoffs und Medientyp Handoffsbeschrieben.
Nicht alle Dienstanbieter unterstützen die Verwendung dieses Vorgangs.
TAPI 2.x: Siehe lineHandoff-, wobei lpszFileName auf den Anwendungsnamen für eine direkte Übergabe oder dwMediaMode festgelegt auf einen Medientyp für eine indirekte Übergabe festgelegt ist.
TAPI 3.x: Siehe ITBasicCallControl::HandoffDirect, ITBasicCallControl::HandoffIndirect.
Weitergeleitete Handzettel
Eine weitergeleitete Übergabe erfolgt, wenn die Zielanwendung mit dem Namen der ursprünglichen Anwendung bekannt ist. Diese Situation würde z. B. unter einer Reihe von Anwendungen auftreten, die vom gleichen Anbieter geschrieben wurden. Der Benutzer kann in der Regel die Steuerung von weitergeleiteten Übergaben konfigurieren. Bei einer solchen Übergabe wird der Anruf an die angegebene Anwendung übergeben, wenn er die Zeile geöffnet hat, in der der Anruf vorhanden ist. Der medientyp, der beim Öffnen der Zeile von der Anwendung angegeben wurde, wird ignoriert. Ein häufiges Beispiel ist ein Sprachanruf, gefolgt von einer Faxübertragung im selben Anruf. Die weitergeleitete Übergabe würde am häufigsten von Anwendungen desselben Entwicklers verwendet, die auch auf andere Weise verknüpft sind.
Die weitergeleitete Übergabe kann auch in zukünftigen Versionen als Teil des Prozesses der Vermittlung mehrerer Anwendungen verwendet werden, die auf eingehende Anrufe desselben Medientyps warten, wobei die Auswahl der Anwendung für die Behandlung des Anrufs auf der Grundlage der Datenverknüpfung oder der Protokollerkennung höherer Ebene anstelle des Medientyps verwendet wird. Ein Beispiel für die Verwendung wäre eine Eingehende Datenmodemleitung mit Anwendungen wie Remoteübernahme, Bulletin Board, Remotenetzwerkzugriff und Remote-E-Mail-Zugriff, die alle gleichzeitig auf Anrufe warten.
Handoffs für Medientypen
Eine Medientypübergabe erfolgt, wenn ein neuer, gezielter Medientyp vorhanden ist, in der Regel, wenn die eigene Anwendung bestimmt, dass der für den Anruf erforderliche Medientyp nicht vorhanden ist oder sich ändert.
Der Prozess für eine medienabhängige Übergabe kann ein Probingprozess 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 diesen Zyklus nur für den anfänglichen eingehenden Anruf aus, um den ersten Besitzer zu finden. Dies geschieht nicht für einen Übergabevorgang. 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 der Anwendung mit der höchsten Priorität für diesen Medientyp zugewiesen. Es ist jedoch möglich, dass für die Übergabe mehrere Medientypen berücksichtigt werden. In diesem Fall sollte die Übergabeanwendung die höchste Priorität der möglichen Medientypen als Parameter angeben.
Wenn eine Anwendung beim Ausführen einer Medientypübergabe den UNBEKANNTen Bit angibt und die Übergabe fehlschlägt, bedeutet dies, dass eine unbekannte Anwendung, die die Medientypermittlung ausführen kann, zurzeit nicht ausgeführt wird. Die Anwendung, die übergeben wird, sollte dann versuchen, den Anruf an die Anwendung mit der höchsten Priorität zu übergeben, die für den nächsten höheren Medientyp registriert ist.
Die empfangende Anwendung ist jetzt für den Anruf verantwortlich. Jetzt wird der tatsächliche Medientyp des Anrufs untersucht. Wenn die Anwendung den Medientyp des Anrufs verarbeiten kann, muss sichergestellt werden, dass es sich um die Anwendung mit der höchsten Priorität handelt, die für diesen Medientyp registriert ist. Wenn ja, wird der Aufruf beibehalten und normal verarbeitet. Wenn nicht, wird der Anruf an eine andere Anwendung übertragen, die für diesen Medientyp registriert ist.
Wenn der Sonde für diesen Medientyp jedoch fehlschlägt, wird die Anwendung erneut mit den verbleibenden Medienmodusmöglichkeiten versucht. Sie muss zuerst das aktuelle Medientypbit deaktivieren und dann eine andere Übergabe mit einem anderen Typ versuchen.
Dieser Prozess der Aus- und Übergabe wird fortgesetzt, und die übrigen Medientypen werden einzeln eliminiert. Auf dem Weg kann eine der Anwendungen sehen, dass sich der von ihr verarbeitete Medientyp auf dem Anruf befindet und die Übergabe erfolgreich ist.
Die Anwendung sollte dann den richtigen Medientyp festlegen und alle anderen Medientypbits löschen. Dies informiert andere interessierte Anwendungen über den richtigen Medientyp. Diese anderen Anwendungen erhalten eine Ereignisbenachrichtigung, die besagt, dass sich der Medientyp des Anrufs geändert hat.