fungsi TSPI_linePickup (tspi.h)

Fungsi TSPI_linePickup mengambil pemberitahuan panggilan di alamat tujuan yang ditentukan dan mengembalikan handel panggilan untuk panggilan yang diambil. Jika dipanggil dengan NULL untuk parameter lpszDestAddress , pengambilan grup dilakukan. Jika diperlukan oleh kemampuan perangkat, lpszGroupID menentukan pengidentifikasi grup tempat stasiun peringatan berada.

Sintaks

LONG TSPIAPI TSPI_linePickup(
  DRV_REQUESTID dwRequestID,
  HDRVLINE      hdLine,
  DWORD         dwAddressID,
  HTAPICALL     htCall,
  LPHDRVCALL    lphdCall,
  LPCWSTR       lpszDestAddress,
  LPCWSTR       lpszGroupID
);

Parameter

dwRequestID

Pengidentifikasi permintaan asinkron.

hdLine

Handel ke baris tempat panggilan akan diambil.

dwAddressID

Alamat pada hdLine tempat pengambilan akan berasal. Pengidentifikasi alamat secara permanen dikaitkan dengan alamat; pengidentifikasi tetap konstan di seluruh peningkatan sistem operasi.

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

Pointer ke HDRVCALL yang mewakili pengidentifikasi penyedia layanan untuk 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 berisi alamat yang panggilannya akan diambil. Alamatnya adalah format tautan standar.

lpszGroupID

Penunjuk ke string Unicode yang dihentikan null yang berisi pengidentifikasi grup tempat stasiun pemberitahuan berada. Parameter ini diperlukan pada beberapa sakelar untuk mengambil panggilan di luar grup penjemputan saat ini.

CatatanlpszGroupID dapat ditentukan dengan sendirinya dengan pointer NULL untuk lpszDestAddress. Atau, lpszGroupID dapat ditentukan selain lpszDestAddress, jika diperlukan oleh perangkat. Ini juga bisa NULL itu sendiri.
 

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_INVALLINEHANDLE, LINEERR_NOMEM, LINEERR_INVALADDRESSID, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALADDRESS, LINEERR_OPERATIONFAILED, LINEERR_INVALGROUPID, LINEERR_RESOURCEUNAVAIL.

Keterangan

Ketika panggilan berhasil diambil, penyedia layanan memberi tahu TAPI dengan pesan LINE_CALLSTATE tentang perubahan status panggilan. Struktur LINECALLINFO menyediakan informasi tentang panggilan yang diambil. Ini mencantumkan alasan panggilan sebagai pengambilan. Struktur ini tersedia dengan memanggil TSPI_lineGetCallInfo.

Penyedia layanan mengatur LINEADDRCAPFLAGS_PICKUPCALLWAIT ke TRUE dalam struktur LINEADDRESSCAPS jika TSPI_linePickup dapat digunakan untuk mengambil panggilan yang dengannya pengguna telah mendeteksi sinyal tunggu panggilan, tetapi penyedia tidak dapat melakukan deteksi. Ini memberi pengguna mekanisme untuk menjawab panggilan tunggu meskipun penyedia layanan tidak dapat mendeteksi sinyal tunggu panggilan. Ketika TSPI_linePickup digunakan untuk mengambil panggilan tunggu panggilan, parameter pointer lpszDestAddress dan lpszGroupID adalah NULL. Penyedia layanan membuat handel panggilan baru untuk panggilan tunggu dan meneruskan yang menangani pengguna di lphdCall. Parameter dwAddressID paling sering nol (terutama dalam kasus tempat tinggal satu baris).

Setelah TSPI_linePickup digunakan untuk mengambil panggilan kedua, TSPI_lineSwapHold dapat digunakan untuk beralih di antara mereka. TSPI_lineDrop dapat digunakan untuk menjatuhkan satu (dan beralih ke yang lain), dan seterusnya. Jika pengguna ingin menghentikan panggilan saat ini dan mengambil panggilan kedua, mereka memanggil TSPI_lineDrop ketika mereka mendapatkan bip tunggu panggilan, tunggu hingga panggilan kedua berdering, lalu memanggil TSPI_lineAnswer pada handel panggilan baru. Penyedia layanan menetapkan bendera LINEADDRFEATURE_PICKUP di anggota dwAddressFeatures di LINEADDRESSSTATUS untuk menunjukkan kapan pengambilan sebenarnya dimungkinkan.

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. 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

ASYNC_COMPLETION

LINEADDRESSCAPS

LINEADDRESSSTATUS

LINECALLINFO

LINECALLSTATUS

LINEEVENT

LINE_CALLSTATE

TSPI_lineAnswer

TSPI_lineDrop

TSPI_lineGetCallInfo

TSPI_lineGetCallStatus

TSPI_lineSwapHold