Funzione lineCompleteTransfer (tapi.h)
La funzione lineCompleteTransfer completa il trasferimento della chiamata specificata alla parte connessa nella chiamata di consultazione.
Sintassi
LONG lineCompleteTransfer(
HCALL hCall,
HCALL hConsultCall,
LPHCALL lphConfCall,
DWORD dwTransferMode
);
Parametri
hCall
Gestire la chiamata da trasferire. L'applicazione deve essere un proprietario di questa chiamata. Lo stato della chiamata di hCall deve essere onHold o onHoldPendingTransfer.
hConsultCall
Handle per la chiamata che rappresenta una connessione con la destinazione del trasferimento. L'applicazione deve essere un proprietario di questa chiamata. Lo stato della chiamata di hConsultCall deve essere connesso, ringback, occupato o continuare.
lphConfCall
Puntatore a una posizione di memoria in cui è possibile restituire un handle hCall . Se dwTransferMode è LINETRANSFERMODE_CONFERENCE, la conferenza telefonica appena creata viene restituita in lphConfCall e l'applicazione diventa l'unico proprietario della conferenza telefonica. In caso contrario, questo parametro viene ignorato da TAPI.
dwTransferMode
Modalità di risoluzione della richiesta di trasferimento avviata. Questo parametro usa una delle costanti LINETRANSFERMODE_.
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_INVALCALLHANDLE, LINEERR_NOTOWNER, LINEERR_INVALCALLSTATE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCONSULTCALLHANDLE, LINEERR_OPERATIONFAILED, LINEERR_INVALTRANSFERMODE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALPOINTER, LINEERR_UNINITIALIZED, LINEERR_NOMEM.
Commenti
Il LINE_REPLY messaggio inviato in risposta a una chiamata alla funzione lineCompleteTransfer si basa sullo stato della chiamata specificata dal parametro hCall .
Questa operazione completa il trasferimento della chiamata originale, hCall, alla parte attualmente connessa da hConsultCall. La chiamata di consultazione viene in genere chiamata alla chiamata di consultazione allocata come parte di lineSetupTransfer, ma può essere qualsiasi chiamata a cui il commutatore è in grado di trasferire hCall.
La richiesta di trasferimento può essere risolta come trasferimento o come conferenza telefonica a tre vie. Quando viene risolto come trasferimento, le parti connesse da hCall e hConsultCall sono connesse tra loro e hCall e hConsultCall vengono in genere cancellate dalla riga dell'applicazione e passano allo stato di inattività . L'handle di chiamata dell'applicazione rimane valido dopo il completamento del trasferimento. L'applicazione deve deallocare il relativo handle con lineDeallocateCall quando non è più interessato alla chiamata trasferita.
Quando viene risolta come conferenza, tutte e tre le parti entrano in una conferenza telefonica. Entrambi gli handle di chiamata esistenti rimangono validi, ma passano allo stato conferenza . Viene creato e restituito un handle di conferenza telefonica e passa allo stato connesso .
Se lineGetConfRelatedCalls viene chiamato immediatamente dopo lineCompleteTransfer con il risultato della conferenza delle chiamate, lineGetConfRelatedCalls potrebbe non restituire un elenco completo di chiamate correlate. Ciò è dovuto al fatto che TAPI attende di ricevere un messaggio LINE_CALLSTATE che indica che la chiamata è entrata LINECALLSTATE_CONFERENCED prima che consideri effettivamente la chiamata come parte della conferenza. Ciò significa che attende che il provider di servizi conferissi lo stato di conferenza. Dopo che l'applicazione ha ricevuto il messaggio LINE_CALLSTATE, lineGetConfRelatedCalls restituisce informazioni complete.
Può anche essere possibile eseguire un trasferimento cieco di una chiamata usando lineBlindTransfer.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | tapi.h |
Libreria | Tapi32.lib |
DLL | Tapi32.dll |
Vedi anche
Funzioni supplementari del servizio line