Funzione lineForwardA (tapi.h)

La rigaForward funzione inoltra le chiamate destinate all'indirizzo specificato nella riga specificata, in base alle istruzioni di inoltro specificate. Quando viene inoltrato un indirizzo di origine (dwAddressID), le chiamate in ingresso specificate per tale indirizzo vengono defletate all'altro numero dall'opzione. Questa funzione fornisce una combinazione di funzionalità forward e do-not-disturb. Questa funzione può anche annullare l'inoltro attualmente attivo.

Sintassi

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

Parametri

hLine

Handle per il dispositivo linea.

bAllAddresses

Specifica se tutti gli indirizzi di origine nella riga o solo quello specificato devono essere inoltrati. Se TRUE, tutti gli indirizzi nella riga vengono inoltrati e dwAddressID viene ignorato; se FALSE, viene inoltrato solo l'indirizzo specificato come dwAddressID.

dwAddressID

Indirizzo nella riga specificata le cui chiamate in ingresso devono essere inoltrate. Questo parametro viene ignorato se bAllAddresses è TRUE.

Un identificatore di indirizzo è associato in modo permanente a un indirizzo; l'identificatore rimane costante tra gli aggiornamenti del sistema operativo.

lpForwardList

Puntatore a una struttura di dati di dimensioni variabili che descrive le istruzioni di inoltro specifiche, di tipo LINEFORWARDLIST.

dwNumRingsNoAnswer

Numero di anelli prima che una chiamata venga considerata "nessuna risposta". Se dwNumRingsNoAnswer non è compreso nell'intervallo, il valore effettivo viene impostato sul valore più vicino nell'intervallo consentito.

lphConsultCall

Puntatore a una posizione HCALL. In alcuni ambienti di telefonia, questa posizione viene caricata con un handle per una chiamata di consultazione utilizzata per consultare la parte a cui viene inoltrata e l'applicazione diventa l'unico proprietario iniziale di questa chiamata. Questo puntatore deve essere valido anche in ambienti in cui l'inoltro delle chiamate non richiede una chiamata di consultazione. Questo handle è impostato su null se non viene creata alcuna chiamata di consultazione.

lpCallParams

Puntatore a una struttura di tipo LINECALLPARAMS. Questo puntatore viene ignorato a meno che non venga restituito lineForward richiede l'istituzione di una chiamata alla destinazione di inoltro e lphConsultCall, nel qual caso lpCallParams è facoltativo). Se NULL, vengono usati i parametri di chiamata predefiniti. In caso contrario, i parametri di chiamata specificati vengono usati per stabilire hConsultCall.

Valore restituito

Restituisce un identificatore di richiesta positivo se la funzione viene completata in modo asincrono o un numero di errore negativo se si verifica un errore. Il parametro dwParam2 del messaggio di LINE_REPLY corrispondente è zero se la funzione ha esito positivo o è un numero di errore negativo se si verifica un errore. I possibili valori restituiti sono:

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

Osservazioni

Un inoltro riuscito indica solo che la richiesta è stata accettata dal provider di servizi, non che l'inoltro sia configurato all'opzione. Un messaggio di LINE_ADDRESSSTATE (inoltro) fornisce una conferma per l'inoltro configurato all'opzione.

L'inoltro degli indirizzi rimane attivo fino a quando questa funzione non viene chiamata nuovamente. L'elenco di inoltro più recente sostituisce quello precedente. L'inoltro può essere annullato specificando un puntatore NULL come lpForwardList. Se per una voce nell'elenco di inoltro viene specificato un NULL indirizzo di destinazione, l'operazione funge da non disturbo.

Anche lo stato di inoltro di un indirizzo può essere interessato esternamente; ad esempio, da azioni amministrative all'interruttore o da un utente da un'altra stazione. Potrebbe non essere possibile che il provider di servizi sia a conoscenza di questa modifica dello stato e potrebbe non essere in grado di mantenere la sincronizzazione con lo stato di inoltro noto all'opzione.

Poiché un provider di servizi potrebbe non conoscere lo stato di inoltro dell'indirizzo "per certo", ovvero potrebbe essere stato inoltrato o non assegnato in modo sconosciuto, rigaForward ha esito positivo a meno che non riesca a impostare le nuove istruzioni di inoltro. In altre parole, una richiesta che tutto l'inoltro venga annullato alla volta in cui non è presente alcun inoltro ha esito positivo. Ciò è dovuto al fatto che non c'è "unforwarding": è possibile modificare solo il set precedente di istruzioni di inoltro.

L'esito positivo o negativo di questa operazione non dipende dal set precedente di istruzioni di inoltro e lo stesso vale quando si impostano istruzioni di inoltro diverse. Il provider deve "annullare tutto" prima di impostare le nuove istruzioni di inoltro. Poiché ciò può richiedere tempo in ambienti di telefonia analogica, un provider può anche voler confrontare l'inoltro corrente con quello nuovo e rilasciare solo istruzioni per il passaggio per passare allo stato finale (lasciando invariato l'inoltro non interessato).

Richiamare lineForward quando LINEFORWARDLIST ha dwNumEntries impostato su zero ha lo stesso effetto di fornire un parametro NULLlpForwardList. Annulla tutto l'inoltro attualmente attivo.

Nota

L'intestazione tapi.h definisce lineForward come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
piattaforma di destinazione Finestre
intestazione tapi.h
libreria Tapi32.lib
dll Tapi32.dll

Vedere anche

Panoramica dell'inoltro

LINECALLPARAMS

LINEFORWARDLIST

LINE_ADDRESSSTATE

LINE_REPLY

funzioni supplementari del servizio linea

panoramica dei riferimenti TAPI 2.2