TSPI_lineForward-Funktion (tspi.h)

Die TSPI_lineForward-Funktion leitet Aufrufe weiter, die für die angegebene Adresse in der angegebenen Zeile gemäß den angegebenen Weiterleitungsanweisungen bestimmt sind. Wenn eine Ursprungsadresse (dwAddressID) weitergeleitet wird, werden die angegebenen eingehenden Aufrufe für diese Adresse vom Switch an die andere Nummer weitergeleitet. Diese Funktion bietet eine Kombination aus Vorwärts- und Do-Not-Disturb-Features. Diese Funktion kann auch bestimmte derzeit in Kraft befindliche Weiterleitung abbrechen.

Syntax

LONG TSPIAPI TSPI_lineForward(
  DRV_REQUESTID           dwRequestID,
  HDRVLINE                hdLine,
  DWORD                   bAllAddresses,
  DWORD                   dwAddressID,
  LPLINEFORWARDLIST const lpForwardList,
  DWORD                   dwNumRingsNoAnswer,
  HTAPICALL               htConsultCall,
  LPHDRVCALL              lphdConsultCall,
  LPLINECALLPARAMS const  lpCallParams
);

Parameter

dwRequestID

Der Bezeichner der asynchronen Anforderung.

hdLine

Das Handle des Dienstanbieters an die zu leitende Zeile.

bAllAddresses

Gibt an, ob alle ursprünglichen Adressen in der Zeile oder nur die angegebene weitergeleitet werden sollen. Bei TRUE werden alle Adressen in der Zeile weitergeleitet, und dwAddressID wird ignoriert. wenn FALSE, wird nur die als dwAddressID angegebene Adresse weitergeleitet. Dieser Parameter wird nicht von TAPI überprüft, wenn diese Funktion aufgerufen wird.

dwAddressID

Die Adresse in der angegebenen Zeile, deren eingehende Anrufe weitergeleitet werden sollen. Dieser Parameter wird ignoriert, wenn bAllAddresses TRUE ist. Dieser Parameter wird nicht von TAPI überprüft, wenn diese Funktion aufgerufen wird.

Ein Adressbezeichner ist einer Adresse dauerhaft zugeordnet. Der Bezeichner bleibt über Betriebssystemupgrades hinweg konstant.

lpForwardList

Ein Zeiger auf eine datenvariable Größe vom Typ LINEFORWARDLIST , der die spezifischen Weiterleitungsanweisungen beschreibt.

dwNumRingsNoAnswer

Gibt die Anzahl der Ringe an, bevor ein eingehender Anruf als "keine Antwort" betrachtet wird. Wenn dwNumRingsNoAnswer außerhalb des Bereichs liegt, wird der tatsächliche Wert auf den nächsten Wert im zulässigen Bereich festgelegt. Dieser Parameter wird nicht von TAPI überprüft, wenn diese Funktion aufgerufen wird.

htConsultCall

Das TAPI-Handle für einen neuen Anruf, wenn ein solcher Aufruf vom Dienstanbieter erstellt werden muss. In einigen Telefonieumgebungen hat das Weiterleiten eines Anrufs den Nebeneffekt, dass ein Konsultationsanruf erstellt wird, der verwendet wird, um die Partei zu konsultieren, an die weitergeleitet wird. In einer solchen Umgebung erstellt der Dienstanbieter den neuen Konsultationsaufruf und muss diesen Wert speichern und in allen nachfolgenden Aufrufen der LINEEVENT-Prozedur verwenden, die Ereignisse für den Aufruf meldet. Wenn kein Konsultationsaufruf erstellt wird, kann dieser Wert vom Dienstanbieter ignoriert werden.

lphdConsultCall

Ein Zeiger auf einen HDRVCALL , der den Bezeichner des Dienstanbieters für den Anruf darstellt. In Telefonieumgebungen, in denen die Weiterleitung eines Anrufs den Nebeneffekt hat, einen Konsultationsanruf zu erstellen, der verwendet wird, um die Partei zu konsultieren, an die weitergeleitet wird, muss der Dienstanbieter diesen Standort mit seinem Handle für den Anruf ausfüllen, bevor dieses Verfahren zurückgegeben wird. Der Dienstanbieter ist berechtigt, Rückrufe für den neuen Aufruf auszuführen, bevor er von dieser Prozedur zurückgegeben wird. Wenn kein Konsultationsaufruf erstellt wird, muss der HDRVCALL NULL belassen werden.

lpCallParams

Ein Zeiger auf eine Struktur vom Typ LINECALLPARAMS. Dieser Zeiger wird vom Dienstanbieter ignoriert, es sei denn , lineForward erfordert die Einrichtung eines Aufrufs des Weiterleitungsziels (und lphdConsultCall wird zurückgegeben, wobei lpCallParams optional ist). Bei NULL werden standardmäßige Aufrufparameter verwendet. Andernfalls werden die angegebenen Aufrufparameter zum Einrichten von htConsultCall verwendet.

Rückgabewert

Gibt dwRequestID oder eine Fehlernummer zurück, wenn ein Fehler auftritt. Der tatsächliche lResult-Parameter der 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_INVALADDRESS, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALADDRESSID, LINEERR_OPERATIONFAILED, LINEERR_INVALCOUNTRYCODE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALPARAM, LINEERR_STRUCTURETOOSMALL.

Hinweise

Der Dienstanbieter gibt LINEERR_INVALPARAM zurück, wenn der angegebene Forward list-Parameter ungültige Informationen enthält.

Der Dienstanbieter führt keine Einwahl durch, wenn er LINEERR_INVALADDRESS zurückgibt.

Der Dienstanbieter gibt den Erfolg an diese Funktion zurück, um nur anzugeben, dass die Anforderung vom Dienstanbieter akzeptiert wird, nicht, dass die Weiterleitung am Switch eingerichtet ist. Eine LINE_ADDRESSSTATE (Weiterleitungsnachricht) wird gesendet, um sicherzustellen, dass die Weiterleitung am Switch eingerichtet ist.

Die Weiterleitung der Adresse oder Adressen bleibt wirksam, bis diese Funktion erneut aufgerufen wird. Die letzte Weiterleitungsliste ersetzt alle alten Weiterleitungslisten. Wenn diese Funktion aufgerufen wird und einen NULL-Zeiger als lpForwardList angegeben wird, sollte der Dienstanbieter jede Weiterleitung abbrechen, die zu diesem Zeitpunkt ausgeführt wird. Wenn eine NULL-Zieladresse für einen Eintrag in der Weiterleitungsliste angegeben wird, fungiert der Vorgang als "do-not-disturb".

Die Weiterleitung status einer Adresse kann auch extern beeinflusst werden, z. B. durch administrative Aktionen am Switch oder durch einen Benutzer von einer anderen Station aus. Möglicherweise ist es nicht möglich, dass der Dienstanbieter von dieser Zustandsänderung Kenntnis hat und nicht mit dem dem Switch bekannten Weiterleitungszustand synchron bleiben kann. Der Anbieter muss immer angeben, was er als wahr erkennt, und andernfalls muss der Weiterleitungsstatus unbekannt sein.

Da ein Dienstanbieter den Weiterleitungsstatus der Adresse möglicherweise nicht ohne Zweifel kennt (d. h. sie wurde möglicherweise auf unbekannte Weise weitergeleitet oder nicht weitergeleitet), ist TSPI_lineForward erfolgreich, es sei denn, er kann die neuen Weiterleitungsanweisungen nicht festlegen. Anders ausgedrückt: Eine Anforderung, dass alle Weiterleitungen zu einem Zeitpunkt abgebrochen werden, zu dem keine Weiterleitung wirksam ist, ist erfolgreich. Dies liegt daran, dass es keine Unvernutztheit gibt; Sie können nur einen neuen Satz von Weiterleitungsanweisungen aufrufen.

Der Erfolg oder Fehler dieses Vorgangs hängt nicht von den vorherigen Weiterleitungsanweisungen ab, und dasselbe gilt für das Festlegen unterschiedlicher Weiterleitungsanweisungen. Bei Bedarf sollte der Anbieter vor dem Festlegen der neuen Weiterleitungsanweisungen "alles aufheben". Da dies in analogen Telefonieumgebungen einige Zeit in Anspruch nehmen kann, kann ein Anbieter auch die aktuelle Weiterleitung mit der neuen vergleichen und nur Anweisungen an den Switch ausstellen, um zum endgültigen Zustand zu gelangen (unveränderte Weiterleitung nicht betroffen).

Das Aufrufen TSPI_lineForward , wenn für LINEFORWARDLISTdwNumEntries auf Null festgelegt ist, hat die gleiche Auswirkung wie das Bereitstellen eines NULLlpForwardList-Parameters . Es bricht alle derzeit gültigen Weiterleitungen ab.

Da der in lphdConsultCall zurückgegebene NULL-Wert die einzige Möglichkeit für TAPI ist, zu bestimmen, ob der Dienstanbieter einen Konsultationsaufruf erstellt hat, kann der Dienstanbieter NULL nicht als Anrufhandle verwenden.

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 den zurückgegebenen Handle als "noch nicht gültig" behandeln, bis das übereinstimmende ASYNC_COMPLETION erfolgreich meldet. Mit anderen Worten, er darf keine Nachrichten für den neuen Aufruf ausgeben oder ihn 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

LINECALLPARAMS

LINEEVENT

LINEFORWARDLIST

LINE_ADDRESSSTATE