Freigeben über


TSPI_linePickup-Funktion (tspi.h)

Die TSPI_linePickup-Funktion übernimmt eine Anrufwarnung an der angegebenen Zieladresse und gibt ein Anrufhandle für den erfassten Aufruf zurück. Wenn für den Parameter lpszDestAddress mit NULL aufgerufen wird, wird eine Gruppenabholung durchgeführt. Falls für die Gerätefunktionen erforderlich, gibt lpszGroupID den Gruppenbezeichner an, zu dem die Warnungsstation gehört.

Syntax

LONG TSPIAPI TSPI_linePickup(
  DRV_REQUESTID dwRequestID,
  HDRVLINE      hdLine,
  DWORD         dwAddressID,
  HTAPICALL     htCall,
  LPHDRVCALL    lphdCall,
  LPCWSTR       lpszDestAddress,
  LPCWSTR       lpszGroupID
);

Parameter

dwRequestID

Der Bezeichner der asynchronen Anforderung.

hdLine

Der Handle für die Zeile, in der ein Anruf aufgenommen werden soll.

dwAddressID

Die Adresse auf hdLine , an der die Abholung erfolgen soll. Ein Adressbezeichner ist einer Adresse dauerhaft zugeordnet. Der Bezeichner bleibt über Betriebssystemupgrades hinweg konstant.

htCall

Das TAPI-Handle für den neuen Aufruf. Der Dienstanbieter muss dies speichern und in allen nachfolgenden Aufrufen der LINEEVENT-Prozedur verwenden, die Ereignisse für den Aufruf meldet.

lphdCall

Ein Zeiger auf einen HDRVCALL , der den Bezeichner des Dienstanbieters für den Anruf darstellt. Der Dienstanbieter muss diesen Speicherort mit seinem Handle für den Aufruf füllen, bevor diese Prozedur zurückgegeben wird. Dieses Handle wird von TAPI ignoriert, wenn die Funktion zu einem Fehler führt.

lpszDestAddress

Ein Zeiger auf eine Unicode-Zeichenfolge mit NULL-Beendigung, die die Adresse enthält, deren Aufruf abgerufen werden soll. Die Adresse ist das Standardlinkformat.

lpszGroupID

Ein Zeiger auf eine Unicode-Zeichenfolge mit Null-Endung, die den Gruppenbezeichner enthält, zu dem die Warnungsstation gehört. Dieser Parameter ist für einige Switches erforderlich, um Aufrufe außerhalb der aktuellen Abholgruppe aufzunehmen.

Beachten Sie, dass lpszGroupID selbst mit einem NULL-Zeiger für lpszDestAddress angegeben werden kann. Alternativ kann lpszGroupID zusätzlich zu lpszDestAddress angegeben werden, falls dies vom Gerät erforderlich ist. Es kann auch NULL selbst sein.
 

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_INVALLINEHANDLE, LINEERR_NOMEM, LINEERR_INVALADDRESSID, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALADDRESS, LINEERR_OPERATIONFAILED, LINEERR_INVALGROUPID, LINEERR_RESOURCEUNAVAIL.

Hinweise

Wenn ein Anruf erfolgreich aufgenommen wurde, benachrichtigt der Dienstanbieter TAPI mit der LINE_CALLSTATE Nachricht über Anrufstatusänderungen. Die LINECALLINFO-Struktur liefert Informationen zum abgerufenen Aufruf. Der Grund für den Anruf wird als Abholung aufgeführt. Diese Struktur ist durch Aufrufen von TSPI_lineGetCallInfo verfügbar.

Der Dienstanbieter legt in der LINEADDRESSCAPS-Struktur LINEADDRCAPFLAGS_PICKUPCALLWAIT auf TRUE fest, wenn TSPI_linePickup verwendet werden kann, um einen Anruf aufzunehmen, für den der Benutzer das Wartesignal hörbar erkannt hat, für den der Anbieter die Erkennung jedoch nicht durchführen kann. Dadurch erhält der Benutzer einen Mechanismus zum Annehmen eines wartenden Anrufs, obwohl der Dienstanbieter das Anrufwartesignal nicht erkennen konnte. Wenn TSPI_linePickup zum Abrufen eines wartenden Aufrufs verwendet wird, sind sowohl lpszDestAddress als auch lpszGroupID-ZeigerparameterNULL. Der Dienstanbieter erstellt ein neues Anrufhandle für den wartenden Anruf und übergibt dieses Handle an den Benutzer in lphdCall. Der dwAddressID-Parameter ist am häufigsten 0 (insbesondere in einzeiligen Wohnfällen).

Sobald TSPI_linePickup zum Annehmen des zweiten Anrufs verwendet wird, kann TSPI_lineSwapHold verwendet werden, um zwischen ihnen umzuschalten. TSPI_lineDrop kann verwendet werden, um einen (und zum anderen umzuschalten) usw. Wenn der Benutzer den aktuellen Anruf abbrechen und den zweiten Anruf annehmen möchte, ruft er TSPI_lineDrop auf, wenn er den Wartendenton des Anrufs erhält, wartet, bis der zweite Anruf klingelt, und ruft dann TSPI_lineAnswer im neuen Anrufhandle auf. Der Dienstanbieter legt das flag LINEADDRFEATURE_PICKUP im dwAddressFeatures-Member in LINEADDRESSSTATUS fest, um anzugeben, wann die Abholung tatsächlich möglich ist.

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

ASYNC_COMPLETION

LINEADDRESSCAPS

LINEADDRESSSTATUS

LINECALLINFO

LINECALLSTATUS

LINEEVENT

LINE_CALLSTATE

TSPI_lineAnswer

TSPI_lineDrop

TSPI_lineGetCallInfo

TSPI_lineGetCallStatus

TSPI_lineSwapHold