Freigeben über


TSPI_lineSetupTransfer-Funktion (tspi.h)

Die TSPI_lineSetupTransfer-Funktion initiiert eine Übertragung des von hdCall angegebenen Aufrufs. Sie legt einen Konsultationsaufruf fest, lphdConsultCall, über den die Partei gewählt werden kann, die zum Ziel der Übertragung werden kann.

Syntax

LONG TSPIAPI TSPI_lineSetupTransfer(
  DRV_REQUESTID          dwRequestID,
  HDRVCALL               hdCall,
  HTAPICALL              htConsultCall,
  LPHDRVCALL             lphdConsultCall,
  LPLINECALLPARAMS const lpCallParams
);

Parameter

dwRequestID

Der Bezeichner der asynchronen Anforderung.

hdCall

Das Handle an den zu übertragenden Aufruf. Der Anrufstatus von hdCall kann verbunden werden.

htConsultCall

Die TAPI übernimmt den neuen, temporären Konsultationsaufruf. Der Dienstanbieter muss dies speichern und in allen nachfolgenden Aufrufen der LINEEVENT-Prozedur verwenden, die Ereignisse über den neuen Konsultationsaufruf meldet.

lphdConsultCall

Ein Zeiger auf einen HDRVCALL , der den Bezeichner des Dienstanbieters für den neuen Konsultationsaufruf darstellt. Der Dienstanbieter muss diesen Standort mit seinem Handle für den neuen Konsultationsaufruf füllen, bevor dieses Verfahren zurückgegeben wird. Dieses Handle wird von TAPI ignoriert, wenn die Funktion zu einem Fehler führt. Der Aufrufstatus von hdConsultCall ist nicht zutreffend.

Beim Einrichten eines Anrufs für die Übertragung wird automatisch ein anderer Anruf (ein Konsultationsanruf) zugewiesen, damit die Anwendung (über TAPI) die Adresse der Partei wählen kann (über TSPI_lineDial), an die der Anruf übertragen werden soll. Die ursprüngliche Partei kann ein Gespräch über diesen Konsultationsaufruf führen, bevor die Übertragung abgeschlossen ist.

Diese Übertragungsprozedur ist für einige Leitungsgeräte möglicherweise nicht gültig. Anstatt diese Prozedur aufzurufen, muss TAPI möglicherweise einen vorhandenen gehaltenen Aufruf aufheben (mit TSPI_lineUnhold), um das Ziel der Übertragung zu identifizieren. Auf Switches, die die adressübergreifende Anrufübertragung unterstützen, kann der Konsultationsaufruf unter einer anderen Adresse als dem zu übertragenden Anruf vorhanden sein. Es kann auch erforderlich sein, den Konsultationsaufruf als einen völlig neuen Anruf unter Verwendung von TSPI_lineMakeCall zum Ziel der Übertragung einzurichten.

Die flags transferHeld und transferMake in der LINEADDRESSCAPS-Datenstruktur melden, welches Modell der Dienstanbieter verwendet.

lpCallParams

Ein Zeiger auf eine LINECALLPARAMS-Struktur , die Aufrufparameter enthält, die beim Einrichten des Konsultationsaufrufs verwendet werden sollen. Dieser Parameter kann auf NULL festgelegt werden, wenn keine speziellen Aufrufsetupparameter gewünscht sind (der Dienstanbieter verwendet Standardwerte).

Rückgabewert

Gibt dwRequestID oder eine Fehlernummer zurück, wenn ein Fehler auftritt. Der tatsächliche lResult-Parameter des entsprechenden ASYNC_COMPLETION ist 0, wenn die Funktion erfolgreich ist, oder eine Fehlernummer, wenn ein Fehler auftritt. Mögliche Rückgabewerte sind wie folgt:

LINEERR_INVALCALLHANDLE, LINEERR_INVALBEARERMODE, LINEERR_INVALCALLSTATE, LINEERR_INVALRATE, LINEERR_CALLUNAVAIL, LINEERR_INVALCALLPARAMS, LINEERR_NOMEM, LINEERR_INVALLINESTATE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALMEDIAMODE, LINEERR_OPERATIONFAILED, LINEERR_INUSE, LINEERR_RESOURCEUNAVAIL, LINEERR_NOMEM, LINEERR_BEARERMODEUNAVAIL, LINEERR_RATEUNAVAIL, LINEERR_INVALADDRESSMODE, LINEERR_USERUSERINFOTOOBIG.

Hinweise

Der Dienstanbieter gibt LINEERR_INVALCALLSTATE zurück, wenn sich der zu übertragende Aufruf nicht in einem gültigen Zustand befindet.

Mit diesem Vorgang wird die Übertragung des von hdCall angegebenen Aufrufs eingerichtet. In der Einrichtungsphase einer Übertragung wird ein Konsultationsaufruf eingerichtet, um die Adresse des Zielorts (die Partei, an die übertragen werden soll) an den Switch zu senden, während der zu übertragende Anruf in der Warteschleife gehalten wird. Dieser neue Aufruf wird als Beratungsanruf (hdConsultCall) bezeichnet und kann unabhängig vom ursprünglichen Aufruf bearbeitet (z. B. gelöscht) werden.

Wenn der Beratungsanruf den Anrufstatus erreicht hat, kann TAPI die Übertragung des Anrufs fortsetzen, indem er entweder die Zieladresse wählt und seinen Fortschritt nachverfolgt oder einen vorhandenen Anruf aufhebt. Die Übertragung des ursprünglichen Aufrufs an das ausgewählte Ziel wird mit TSPI_lineCompleteTransfer abgeschlossen.

Während der Konsultationsaufruf vorhanden ist, wechselt der ursprüngliche Aufruf in der Regel in den Zustand onholdPendingTransfer .

Die TSPI_lineUnhold-Funktion kann Aufrufe wiederherstellen, die den Aufrufstatus onHoldPendingTransfer aufweisen. Wenn dies geschieht, wird jeder Konsultationsaufruf in der Regel in den Leerlaufzustand versetzt .

In Telefonieumgebungen, die dem TransferHeld - oder transferMake-Übertragungsmodell folgen, gibt diese Prozedur LINEERR_OPERATIONFAILED zurück und weist keinen Anrufhandle für Konsultationen zu.

Ein Beratungsgespräch kann abgebrochen werden, indem TSPI_lineDrop aufgerufen wird. Nach dem Ablegen eines Konsultationsaufrufs wechselt der ursprüngliche Anruf in der Regel wieder in den verbundenen Zustand.

Diese Funktion unterscheidet sich von der entsprechenden TAPI-Funktion dadurch, dass sie dem TSPI-Modell für den Beginn der Lebensdauer eines Aufrufs folgt. TAPI und die Dienstanbieter-Exchange-Wechselhandles, die den Aufruf miteinander darstellen. Darüber hinaus ist es dem Dienstanbieter gestattet, Rückrufe für den neuen Aufruf auszuführen, bevor er von dieser Prozedur zurückgegeben wird. In jedem Fall muss der Dienstanbieter auch das zurückgegebene Handle als "noch nicht gültig" behandeln, bis die übereinstimmende ASYNC_COMPLETION Nachricht erfolgreich meldet. Mit anderen Worten, es darf keine LINEEVENT-Nachrichten für den neuen Aufruf ausgeben oder in die Anrufanzahl in Nachrichten oder status Datenstrukturen für die Zeile einschließen.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile tspi.h

Weitere Informationen

LINEADDRESSCAPS

LINECALLPARAMS

LINE_CALLSTATE

TSPI_lineBlindTransfer

TSPI_lineCompleteTransfer

TSPI_lineDial

TSPI_lineDrop

TSPI_lineSwapHold

TSPI_lineUnhold