Funzione lineMakeCallA (tapi.h)

La funzione lineMakeCall inserisce una chiamata sulla riga specificata all'indirizzo di destinazione specificato. Facoltativamente, è possibile specificare parametri di chiamata se sono richiesti parametri di impostazione delle chiamate predefinite.

Sintassi

LONG lineMakeCallA(
  HLINE                  hLine,
  LPHCALL                lphCall,
  LPCSTR                 lpszDestAddress,
  DWORD                  dwCountryCode,
  LPLINECALLPARAMS const lpCallParams
);

Parametri

hLine

Gestire il dispositivo a riga aperta in cui deve essere originata una chiamata.

lphCall

Puntatore a un handle HCALL. L'handle è valido solo dopo la ricezione del messaggio LINE_REPLY dall'applicazione che indica che la funzione lineMakeCall è stata completata correttamente. Utilizzare questo handle per identificare la chiamata quando si richiamano altre operazioni di telefonia sulla chiamata. L'applicazione è inizialmente l'unico proprietario di questa chiamata. Questo handle è void se la funzione restituisce un errore (in modo sincrono o asincrono dal messaggio di risposta).

lpszDestAddress

Puntatore all'indirizzo di destinazione. Segue il formato standard del numero chiamabile. Questo puntatore può essere NULL per gli indirizzi non dialed (come con un telefono attivo) o quando tutte le chiamate vengono eseguite usando lineDial. Nel secondo caso , lineMakeCall alloca un aspetto di chiamata disponibile che in genere rimane nello stato dialtone fino all'inizio della composizione. I provider di servizi che dispongono di funzionalità multiplexing inversa possono consentire a un'applicazione di specificare più indirizzi contemporaneamente.

dwCountryCode

Codice paese o area geografica dell'entità chiamata. Se viene specificato un valore pari a 0, viene utilizzato un valore predefinito dall'implementazione.

lpCallParams

Puntatore a una struttura LINECALLPARAMS . Questa struttura consente all'applicazione di specificare la modalità di configurazione della chiamata. Se viene specificato NULL , viene stabilita una chiamata vocale predefinita a 3,1 kHz e viene selezionato un indirizzo di origine arbitrario nella riga. Questa struttura consente all'applicazione di selezionare elementi come la modalità di connessione della chiamata, la frequenza dei dati, la modalità multimediale prevista, l'indirizzo di origine, il blocco delle informazioni sull'ID chiamante e i parametri di composizione.

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 valori restituiti possibili sono:

LINEERR_ADDRESSBLOCKED, LINEERR_INVALLINEHANDLE, LINEERR_BEARERMODEUNAVAIL, LINEERR_INVALLINESTATE, LINEERR_CALLUNAVAIL, LINEERR_INVALMEDIAMODE, LINEERR_DIALBILLING, LINEERR_INVALPARAM, LINEERR_DIALDIALTONE, LINEERR_INVALPOINTER, LINEERR_DIALPROMPT, LINEERR_INVALRATE, LINEERR_DIALQUIET, LINEERR_NOMEM, LINEERR_INUSE, LINEERR_OPERATIONFAILED, LINEERR_INVALADDRESS, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALADDRESSID, LINEERR_RATEUNAVAIL, LINEERR_INVALADDRESSMODE, LINEERR_ RESOURCEUNAVAIL, LINEERR_INVALBEARERMODE, LINEERR_STRUCTURETOOSMALL, LINEERR_INVALCALLPARAMS, LINEERR_UNINITIALIZED, LINEERR_INVALCOUNTRYCODE, LINEERR_USERUSERINFOTOOBIG.

Commenti

Se viene restituito LINEERR_INVALLINESTATE, la riga non è attualmente in uno stato in cui è possibile eseguire questa operazione. Un elenco delle operazioni attualmente valide è disponibile nel membro dwLineFeatures (del tipo LINEFEATURE_) nella struttura LINEDEVSTATUS . La chiamata a lineGetLineDevStatus aggiorna le informazioni in LINEDEVSTATUS. Se viene restituito LINEERR_DIALBILLING, LINEERR_DIALQUIET, LINEERR_DIALDIALTONE o LINEERR_DIALPROMPT, nessuna delle azioni eseguite da lineMakeCall è stata eseguita; Ad esempio, nessuno degli indirizzi chiamabili prima della composizione del carattere che causa l'errore è stato composto, non è stato modificato alcun hookswitch e così via.

Al termine della composizione, diversi messaggi LINE_CALLSTATE vengono in genere inviati all'applicazione per notificare l'avanzamento della chiamata. Non viene in genere specificata alcuna sequenza valida di transizioni di stato di chiamata, poiché non è possibile garantire in pratica una singola sequenza fissa di transizioni. Una sequenza tipica può causare la transizione di una chiamata da dialtone, composizione, procedura, ringback, connessione. Con le linee non chiamate, la chiamata può in genere passare direttamente allo stato connesso .

Un'applicazione ha la possibilità di specificare un indirizzo di origine nel dispositivo di riga specificato. Un provider di servizi che modella tutte le stazioni su un commutatore come indirizzi in un dispositivo a riga singola consente all'applicazione di originare chiamate da una qualsiasi di queste stazioni usando lineMakeCall.

I parametri di chiamata consentono all'applicazione di effettuare chiamate non vocali o richiedere opzioni speciali di configurazione delle chiamate che non sono disponibili per impostazione predefinita.

Un'applicazione può comporre parzialmente usando lineMakeCall e continuare la composizione usando lineDial. Per altre informazioni sulla composizione parziale, vedere lineDial e TSPI_lineMakeCall. Per abbandonare un tentativo di chiamata, usare lineDrop.

Dopo che lineMakeCall restituisce un messaggio di risposta riuscita all'applicazione, all'applicazione viene inviato un messaggio di LINE_CALLSTATE per indicare lo stato corrente della chiamata. Questo stato non è necessariamente LINECALLSTATE_DIALTONE.

Questa funzione può inviare dati in transito in formato non crittografato; pertanto, un utente che esegue l'intercettazione sulla rete potrebbe essere in grado di leggere i dati. Il rischio di sicurezza di inviare i dati in testo non crittografato deve essere considerato prima di usare questo metodo.

Attenzione TAPI scriverà i dati restituiti nel buffer a cui fa riferimento lphCall quando viene restituito il messaggio LINE_REPLY. Ciò significa che il buffer deve rimanere valido fino a quando non viene restituito il messaggio LINE_REPLY; in caso contrario, possono verificarsi danneggiamenti dei dati ed eccezioni.
 

Nota

L'intestazione tapi.h definisce lineMakeCall 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 che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione tapi.h
Libreria Tapi32.lib
DLL Tapi32.dll

Vedi anche

Informazioni di riferimento sui servizi di telefonia di base

Indirizzi chiamabili

LINECALLPARAMS

LINEDEVSTATUS

LINE_CALLSTATE

LINE_REPLY

Panoramica dei riferimenti a TAPI 2.2

lineDial

lineDrop

lineGetLineDevStatus