fungsi TSPI_lineSetupTransfer (tspi.h)

Fungsi TSPI_lineSetupTransfer memulai transfer panggilan yang ditentukan oleh hdCall. Ini menetapkan panggilan konsultasi, lphdConsultCall, di mana pihak dapat dihubungi yang dapat menjadi tujuan transfer.

Sintaks

LONG TSPIAPI TSPI_lineSetupTransfer(
  DRV_REQUESTID          dwRequestID,
  HDRVCALL               hdCall,
  HTAPICALL              htConsultCall,
  LPHDRVCALL             lphdConsultCall,
  LPLINECALLPARAMS const lpCallParams
);

Parameter

dwRequestID

Pengidentifikasi permintaan asinkron.

hdCall

Handel ke panggilan yang akan ditransfer. Status panggilan hdCall dapat dihubungkan.

htConsultCall

TAPI menangani panggilan konsultasi sementara yang baru. Penyedia layanan harus menyimpan ini dan menggunakannya dalam semua panggilan berikutnya ke prosedur LINEEVENT yang melaporkan peristiwa pada panggilan konsultasi baru.

lphdConsultCall

Pointer ke HDRVCALL yang mewakili pengidentifikasi penyedia layanan untuk panggilan konsultasi baru. Penyedia layanan harus mengisi lokasi ini dengan handelnya untuk panggilan konsultasi baru sebelum prosedur ini kembali. Handel ini diabaikan oleh TAPI jika fungsi menghasilkan kesalahan. Status panggilan hdConsultCall tidak berlaku.

Saat mengatur panggilan untuk transfer, panggilan lain (panggilan konsultasi) secara otomatis dialokasikan untuk mengaktifkan aplikasi (melalui TAPI) untuk memanggil alamat (menggunakan TSPI_lineDial) pihak tempat panggilan akan ditransfer. Pihak yang berasal dapat melakukan percakapan melalui panggilan konsultasi ini sebelum menyelesaikan transfer.

Prosedur transfer ini mungkin tidak valid untuk beberapa perangkat baris. Alih-alih memanggil prosedur ini, TAPI mungkin perlu membatalkan panggilan yang ada (menggunakan TSPI_lineUnhold) untuk mengidentifikasi tujuan transfer. Pada sakelar yang mendukung transfer panggilan lintas alamat, panggilan konsultasi dapat ada di alamat yang berbeda dari panggilan yang akan ditransfer. Mungkin juga perlu untuk menyiapkan panggilan konsultasi sebagai panggilan yang sama sekali baru menggunakan TSPI_lineMakeCall, ke tujuan transfer.

Bendera transferHeld dan transferMake dalam struktur data LINEADDRESSCAPS melaporkan model apa yang digunakan penyedia layanan.

lpCallParams

Penunjuk ke struktur LINECALLPARAMS yang berisi parameter panggilan untuk digunakan saat membuat panggilan konsultasi. Parameter ini dapat diatur ke NULL jika tidak ada parameter penyiapan panggilan khusus yang diinginkan (penyedia layanan menggunakan default).

Nilai kembali

Mengembalikan dwRequestID, atau nomor kesalahan jika terjadi kesalahan. Parameter aktual lResult dari ASYNC_COMPLETION yang sesuai adalah nol jika fungsi berhasil, atau nomor kesalahan jika terjadi kesalahan. Kemungkinan nilai yang dikembalikan adalah sebagai berikut:

LINEERR_INVALCALLHANDLE, LINEERR_INVALBEARERMODE, LINEERR_INVALCALLSTATE, LINEERR_INVALRATE, LINEERR_CALLUNAVAIL, LINEERR_INVALCALLPARAMS, LINEERR_NOMEM, LINEERR_INVALLINESTATE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALMEDIAMODE, LINEERR_OPERATIONFAILED, LINEERR_INUSE, LINEERR_RESOURCEUNAVAIL, LINEERR_NOMEM, LINEERR_BEARERMODEUNAVAIL, LINEERR_RATEUNAVAIL, LINEERR_INVALADDRESSMODE, LINEERR_USERUSERINFOTOOBIG.

Keterangan

Penyedia layanan mengembalikan LINEERR_INVALCALLSTATE jika panggilan yang akan ditransfer tidak dalam keadaan valid.

Operasi ini menyiapkan transfer panggilan yang ditentukan oleh hdCall. Fase penyiapan transfer menetapkan panggilan konsultasi untuk mengirim alamat tujuan (pihak yang akan ditransfer ke) ke pengalihan, sementara panggilan yang akan ditransfer terus ditangguhkan. Panggilan baru ini disebut sebagai panggilan konsultasi (hdConsultCall) dan dapat dimanipulasi (misalnya, dijatuhkan) secara independen dari panggilan asli.

Ketika panggilan konsultasi telah mencapai status panggilan dialtone , TAPI dapat terus mentransfer panggilan baik dengan memanggil alamat tujuan dan melacak kemajuannya, atau dengan membatalkan panggilan yang ada. Transfer panggilan asli ke tujuan yang dipilih selesai menggunakan TSPI_lineCompleteTransfer.

Meskipun panggilan konsultasi ada, panggilan asli biasanya beralih ke status onholdPendingTransfer .

Fungsi TSPI_lineUnhold dapat memulihkan panggilan yang memiliki status panggilan onHoldPendingTransfer. Jika ini dilakukan, panggilan konsultasi apa pun biasanya masuk ke status menganggur .

Di lingkungan telepon yang mengikuti model transfer transferHeld atau transferMake , prosedur ini mengembalikan LINEERR_OPERATIONFAILED dan tidak mengalokasikan handel panggilan konsultasi.

Panggilan konsultasi dapat dibatalkan dengan memanggil TSPI_lineDrop di atasnya. Setelah menghilangkan panggilan konsultasi, panggilan asli biasanya beralih kembali ke status tersambung .

Fungsi ini berbeda dari fungsi TAPI yang sesuai karena mengikuti model TSPI untuk memulai masa pakai panggilan. TAPI dan handel buram pertukaran penyedia layanan mewakili panggilan satu sama lain. Selain itu, penyedia layanan diizinkan untuk melakukan panggilan balik untuk panggilan baru sebelum kembali dari prosedur ini. Bagaimanapun, penyedia layanan juga harus memperlakukan handel yang dikembalikan sebagai "belum valid" sampai setelah pesan ASYNC_COMPLETION yang cocok melaporkan keberhasilan. Dengan kata lain, tidak boleh mengeluarkan pesan LINEEVENT apa pun untuk panggilan baru atau menyertakannya dalam jumlah panggilan dalam pesan atau struktur data status untuk baris tersebut.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header tspi.h

Lihat juga

LINEADDRESSCAPS

LINECALLPARAMS

LINE_CALLSTATE

TSPI_lineBlindTransfer

TSPI_lineCompleteTransfer

TSPI_lineDial

TSPI_lineDrop

TSPI_lineSwapHold

TSPI_lineUnhold