TSPI_lineMakeCall (tspi.h)

Fungsi TSPI_lineMakeCall menempatkan panggilan pada baris yang ditentukan ke alamat tujuan yang ditentukan. Secara opsional, parameter panggilan dapat ditentukan jika ada tetapi parameter penyiapan panggilan default diminta.

Sintaks

LONG TSPIAPI TSPI_lineMakeCall(
  DRV_REQUESTID          dwRequestID,
  HDRVLINE               hdLine,
  HTAPICALL              htCall,
  LPHDRVCALL             lphdCall,
  LPCWSTR                lpszDestAddress,
  DWORD                  dwCountryCode,
  LPLINECALLPARAMS const lpCallParams
);

Parameter

dwRequestID

Pengidentifikasi permintaan asinkron.

hdLine

Handel ke baris tempat panggilan baru akan berasal.

htCall

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

lphdCall

Penunjuk ke handel panggilan. Penyedia layanan harus mengisi lokasi ini dengan handelnya untuk panggilan sebelum prosedur ini kembali. Handel ini diabaikan oleh TAPI jika fungsi menghasilkan kesalahan.

lpszDestAddress

Penunjuk ke string Unicode yang dihentikan null yang menentukan alamat tujuan. Ini mengikuti format angka yang dapat dialihkan standar. Penunjuk ini dapat ditentukan sebagai NULL untuk alamat yang tidak dihubungi (seperti halnya telepon panas, yang selalu secara otomatis tersambung ke nomor yang telah ditentukan sebelumnya) atau ketika semua panggilan dilakukan menggunakan TSPI_lineDial. Dalam kasus terakhir, TSPI_lineMakeCall mengalokasikan tampilan panggilan yang tersedia yang biasanya akan tetap dalam status dialtone sampai panggilan dimulai. Penyedia layanan yang memiliki kemampuan multipleks terbalik dapat memungkinkan aplikasi menentukan beberapa alamat sekaligus.

dwCountryCode

Kode negara atau wilayah dari pihak yang dipanggil. Jika nilai 0 ditentukan, default digunakan oleh implementasi.

lpCallParams

Penunjuk ke struktur LINECALLPARAMS . Struktur ini memungkinkan TAPI untuk menentukan bagaimana panggilan ingin disiapkan. Jika NULL ditentukan, panggilan suara default 3.1kHz dibuat, dan alamat asal arbitrer pada baris dipilih. Struktur ini memilih elemen seperti mode pembawa panggilan, laju data, jenis media yang diharapkan, alamat asal, pemblokiran informasi ID penelepon, dan parameter panggilan.

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_ADDRESSBLOCKED, LINEERR_INVALLINESTATE, LINEERR_BEARERMODEUNAVAIL, LINEERR_INVALRATE, LINEERR_CALLUNAVAIL, LINEERR_INVALLINEHANDLE, LINEERR_DIALBILLING, LINEERR_INVALADDRESS, LINEERR_DIALQUIET, LINEERR_INVALADDRESSID, LINEERR_DIALDIALTONE, LINEERR_INVALCALLPARAMS, LINEERR_DIALPROMPT, LINEERR_NOMEM, LINEERR_INUSE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALADDRESSMODE, LINEERR_OPERATIONFAILED, LINEERR_INVALBEARERMODE, LINEERR_RESOURCEUNAVAIL, LINEERR_ INVALCOUNTRYCODE, LINEERR_RATEUNAVAIL, LINEERR_INVALMEDIAMODE, LINEERR_USERUSERINFOTOOBIG.

Keterangan

Penyedia layanan mengembalikan LINEERR_INVALLINESTATE jika baris saat ini tidak dalam keadaan di mana operasi ini dapat dilakukan. Daftar operasi yang saat ini valid dapat ditemukan di anggota dwLineFeatures (dari jenis LINEFEATURE) dalam struktur LINEDEVSTATUS . (Panggilan TSPI_lineGetLineDevStatus memperbarui informasi di LINEDEVSTATUS.)

Jika penyedia layanan mengembalikan LINEERR_DIALBILLING, LINEERR_DIALQUIET, LINEERR_DIALDIALTONE, atau LINEERR_DIALPROMPT, penyedia layanan tidak boleh melakukan tindakan apa pun yang dilakukan oleh TSPI_lineMakeCall. Misalnya, tidak ada panggilan parsial, dan tidak ada offhook. Ini karena penyedia layanan harus melakukan pra-pemindaian nomor untuk karakter yang tidak didukung terlebih dahulu.

Setelah TSPI_lineMakeCall mengembalikan pesan panggilan balik balasan SUCCESS ke aplikasi, penyedia layanan harus mengirim pesan LINE_CALLSTATE ke lpfnEventProc yang diteruskan di TSPI_lineOpen untuk memberi tahu TAPI tentang kemajuan panggilan. Urutan umum yang dilaporkan mungkin nada putar nomor, putar nomor, melanjutkan, dering balik, dan tersambung; Status pertama yang dilaporkan belum tentu LINECALLSTATE_DIALTONE. Penyedia layanan memilih berapa banyak status ini yang dilaporkan. Disarankan agar sebanyak mungkin dikirim, sehingga aplikasi dapat mengambil tindakan yang tepat.

Penyedia layanan awalnya melakukan pemantauan media pada panggilan baru untuk setidaknya set jenis media yang dipantau pada baris.

Jika string putar nomor adalah NULL, penyedia layanan mengambil baris ke status dialtone (untuk penyedia layanan berbasis Comm, ini akan melibatkan ATD) dan mengirim pesan status panggilan yang menunjukkan LINECALLSTATE_DIALTONE.

Jika string putar nomor berakhiran ';' (titik koma), penyedia layanan melakukan panggilan ke nomor parsial dan mengirim pesan LINECALLSTATE_DIALING. Panggilan ini diselesaikan dengan panggilan ke TSPI_lineDial.

Jika string putar nomor berisi karakter (W, @, $, ?) yang tidak didukung oleh penyedia layanan, penyedia layanan harus memindai string panggilan dan mengembalikan (secara sinkron) kesalahan yang terkait dengan karakter pertama yang tidak valid.

Jika bendera LINECALLPARAMFLAGS_IDLE diatur, penyedia layanan harus memeriksa status baris saat ini (setara dengan off-hook dan nada panggilan penginderaan). Jika bendera IDLE ini diatur dan tidak ada nada dial, fungsi gagal dengan kesalahan LINEERR_CALLUNAVAIL. Jika bendera IDLE tidak diatur, atau ada nada putar nomor, putar nomor dapat dilanjutkan.

Fungsi ini berbeda dari fungsi TAPI yang sesuai karena mengikuti model TSPI untuk memulai masa pakai panggilan. TAPI dan penyedia layanan bertukar handel buram yang 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. Ini 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

ASYNC_COMPLETION

LINECALLPARAMS

LINEEVENT

LINE_CALLSTATE

TSPI_lineDial

TSPI_lineDrop