Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
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 |