lineForward-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 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 die derzeit aktive Weiterleitung abbrechen.
Syntax
LONG lineForward(
HLINE hLine,
DWORD bAllAddresses,
DWORD dwAddressID,
LPLINEFORWARDLIST const lpForwardList,
DWORD dwNumRingsNoAnswer,
LPHCALL lphConsultCall,
LPLINECALLPARAMS const lpCallParams
);
Parameter
hLine
Handle mit dem Leitungsgerät.
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.
dwAddressID
Adresse in der angegebenen Zeile, deren eingehende Anrufe weitergeleitet werden sollen. Dieser Parameter wird ignoriert, wenn bAllAddressesTRUE ist.
Ein Adressbezeichner ist einer Adresse dauerhaft zugeordnet. Der Bezeichner bleibt über Betriebssystemupgrades hinweg konstant.
lpForwardList
Zeiger auf eine Datenstruktur mit unterschiedlicher Größe, die die spezifischen Weiterleitungsanweisungen vom Typ LINEFORWARDLIST beschreibt.
dwNumRingsNoAnswer
Die Anzahl der Ringe vor einem Anruf gilt als "keine Antwort". Wenn dwNumRingsNoAnswer außerhalb des Bereichs liegt, wird der tatsächliche Wert auf den nächsten Wert im zulässigen Bereich festgelegt.
lphConsultCall
Zeiger auf einen HCALL-Speicherort. In einigen Telefonieumgebungen wird dieser Standort mit einem Handle für einen Konsultationsanruf geladen, der verwendet wird, um die Partei zu konsultieren, an die weitergeleitet wird, und die Anwendung wird der anfängliche alleinige Besitzer dieses Anrufs. Dieser Zeiger muss auch in Umgebungen gültig sein, in denen die Anrufweiterleitung keinen Beratungsanruf 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 Aufrufs des Weiterleitungsziels (und lphConsultCall wird zurückgegeben, wobei lpCallParams optional ist). Bei NULL werden standardmäßige Aufrufparameter verwendet. Andernfalls werden die angegebenen Aufrufparameter zum Einrichten von hConsultCall verwendet.
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 Meldung ist 0, wenn die Funktion erfolgreich ist, oder es ist eine negative Fehlernummer, 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.
Hinweise
Eine erfolgreiche Weiterleitung bedeutet nur, dass die Anforderung vom Dienstanbieter akzeptiert wurde, nicht, dass die Weiterleitung am Switch eingerichtet ist. Eine LINE_ADDRESSSTATE (Weiterleitungsnachricht) bestätigt, dass die Weiterleitung am Switch eingerichtet wurde.
Die Weiterleitung der Adresse(n) bleibt in Kraft, bis diese Funktion erneut aufgerufen wird. Die neueste Weiterleitungsliste ersetzt die alte. Die Weiterleitung kann abgebrochen werden, indem Sie einen NULL-Zeiger als lpForwardList angeben. Wenn eine NULL-Zieladresse für einen Eintrag in der Weiterleitungsliste angegeben wird, fungiert der Vorgang als nicht störend.
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 dem Dienstanbieter nicht möglich, diese Zustandsänderung zu kennen, und er kann möglicherweise nicht mit dem dem Switch bekannten Weiterleitungszustand synchronisiert bleiben.
Da ein Dienstanbieter den Weiterleitungsstatus der Adresse "mit Sicherheit" möglicherweise nicht kennt (d. h. sie wurde möglicherweise auf unbekannte Weise weitergeleitet oder nicht weitergeleitet), ist lineForward erfolgreich, es sei denn, die neuen Weiterleitungsanweisungen können nicht festgelegt werden. 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 kein "Unforwarding" gibt– Sie können nur den vorherigen Satz von Weiterleitungsanweisungen ändern.
Der Erfolg oder Fehler dieses Vorgangs hängt nicht von den vorherigen Weiterleitungsanweisungen ab, und dasselbe gilt für das Festlegen unterschiedlicher Weiterleitungsanweisungen. Der Anbieter sollte "alles aufheben", bevor er die neuen Weiterleitungsanweisungen festlegt. Da dies in analogen Telefonieumgebungen einige Zeit dauern kann, kann ein Anbieter auch die aktuelle Weiterleitung mit der neuen vergleichen und nur Anweisungen an den Switch ausgeben, um zum endgültigen Zustand zu gelangen (unveränderte Weiterleitung nicht betroffen).
Das Aufrufen von 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.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | tapi.h |
Bibliothek | Tapi32.lib |
DLL | Tapi32.dll |