lineForwardW-Funktion (tapi.h)

Die 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 Anrufe für diese Adresse von der Option an die andere Nummer zurückgeleitet. Diese Funktion bietet eine Kombination aus Vorwärts- und Nicht-Stören-Features. Diese Funktion kann die Weiterleitung auch abbrechen, die derzeit wirksam ist.

Syntax

LONG lineForwardW(
  HLINE                   hLine,
  DWORD                   bAllAddresses,
  DWORD                   dwAddressID,
  LPLINEFORWARDLIST const lpForwardList,
  DWORD                   dwNumRingsNoAnswer,
  LPHCALL                 lphConsultCall,
  LPLINECALLPARAMS const  lpCallParams
);

Parameter

hLine

Behandeln sie das Leitungsgerät.

bAllAddresses

Gibt an, ob alle ursprünglichen Adressen in der Zeile oder nur die angegebene Adresse weitergeleitet werden sollen. Wenn TRUE-, werden alle Adressen in der Zeile weitergeleitet und dwAddressID- ignoriert; wenn FALSE, wird nur die als dwAddressID angegebene Adresse weitergeleitet.

dwAddressID

Adresse in der angegebenen Zeile, deren eingehende Anrufe weitergeleitet werden sollen. Dieser Parameter wird ignoriert, wenn bAllAddressesTRUEist.

Ein Adressbezeichner ist dauerhaft einer Adresse zugeordnet; der Bezeichner bleibt für Betriebssystemupgrades konstant.

lpForwardList

Zeiger auf eine variabel angepasste Datenstruktur, die die spezifischen Weiterleitungsanweisungen vom Typ LINEFORWARDLISTbeschreibt.

dwNumRingsNoAnswer

Die Anzahl der Ringe, bevor ein Anruf als "keine Antwort" betrachtet wird. Wenn dwNumRingsNoAnswer außerhalb des Zulässigen Bereichs liegt, wird der tatsächliche Wert auf den nächsten Wert im zulässigen Bereich festgelegt.

lphConsultCall

Zeiger auf eine HCALL-Position. In einigen Telefonieumgebungen wird dieser Standort mit einem Handle für einen Beratungsanruf geladen, der verwendet wird, um die Partei zu konsultieren, an die weitergeleitet wird, und die Anwendung wird zum ersten alleinigen Besitzer dieses Anrufs. Dieser Zeiger muss auch in Umgebungen gültig sein, in denen die Anrufweiterleitung keinen Konsultationsgespräch erfordert. Dieser Handle ist auf NULL- festgelegt, wenn kein Konsultationsaufruf erstellt wird.

lpCallParams

Zeiger auf eine Struktur vom Typ LINECALLPARAMS. Dieser Zeiger wird ignoriert, es sei denn, lineForward erfordert die Einrichtung eines Anrufs an das Weiterleitungsziel (und lphCallCall zurückgegeben wird, in diesem Fall ist lpCallParams optional). Wenn NULL-, werden Standardaufrufparameter verwendet. Andernfalls werden die angegebenen Aufrufparameter zum Einrichten hCallverwendet.

Rückgabewert

Gibt einen positiven Anforderungsbezeichner zurück, wenn die Funktion asynchron abgeschlossen wird, oder eine negative Fehlernummer, wenn ein Fehler auftritt. Der dwParam2- Parameter der entsprechenden LINE_REPLY Nachricht ist null, wenn die Funktion erfolgreich ist oder eine negative Fehlernummer ist, wenn ein Fehler auftritt. Mögliche Rückgabewerte sind:

LINEERR_INVALLINEHANDLE, LINEERR_NOMEM, LINEERR_INVALADDRESSID, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALADDRESS, LINEERR_OPERATIONFAILED, LINEERR_INVALCOUNTRYCODE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALPOINTER, LINEERR_STRUCTURETOOSMALL, LINEERR_INVALPARAM, LINEERR_UNINITIALIZED.

Bemerkungen

Eine erfolgreiche Weiterleitung gibt nur an, dass die Anforderung vom Dienstanbieter akzeptiert wurde, nicht dass die Weiterleitung an der Option eingerichtet ist. Eine LINE_ADDRESSSTATE -Nachricht (Weiterleitung) stellt eine Bestätigung für die Weiterleitung bereit, die an der Option eingerichtet wurde.

Die Weiterleitung der Adresse(n) bleibt wirksam, bis diese Funktion erneut aufgerufen wird. Die neueste Weiterleitungsliste ersetzt die alte. Die Weiterleitung kann abgebrochen werden, indem ein NULL- Zeiger als lpForwardList-angegeben wird. Wenn eine NULL- Zieladresse für einen Eintrag in der Weiterleitungsliste angegeben wird, fungiert der Vorgang als nicht störend.

Der Weiterleitungsstatus einer Adresse kann auch extern beeinflusst werden; Beispielsweise durch administrative Aktionen am Schalter oder durch einen Benutzer von einer anderen Station. Es ist möglicherweise nicht möglich, dass der Dienstanbieter diese Zustandsänderung kennen kann, und es ist möglicherweise nicht in der Lage, die Synchronisierung mit dem Weiterleitungsstatus beizubehalten, der für den Switch bekannt ist.

Da ein Dienstanbieter möglicherweise nicht den Weiterleitungsstatus der Adresse "sicher" kennt (d. h., er wurde möglicherweise auf unbekannte Weise weitergeleitet oder nicht weitergeleitet), lineForward erfolgreich, es sei denn, die neuen Weiterleitungsanweisungen werden nicht festgelegt. Mit anderen Worten: Eine Anforderung, dass alle Weiterleitungen gleichzeitig abgebrochen werden, dass keine Weiterleitung wirksam ist. Dies liegt daran, dass es keine "Unforwarding" gibt – Sie können nur den vorherigen Satz von Weiterleitungsanweisungen ändern.

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

Das Aufrufen lineForward-, wenn LINEFORWARDLIST-dwNumEntries- auf Null festgelegt ist, hat den gleichen Effekt wie das Bereitstellen eines NULL-lpForwardList--Parameters. Es bricht alle derzeit in Kraft befindliche Weiterleitung ab.

Anmerkung

Der header tapi.h definiert lineForward als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Zielplattform- Fenster
Header- tapi.h
Library Tapi32.lib
DLL- Tapi32.dll

Siehe auch

Forward Overview

LINECALLPARAMS-

LINEFORWARDLIST-

LINE_ADDRESSSTATE

LINE_REPLY

Ergänzende Line-Service-Funktionen

TAPI 2.2 Referenzübersicht