fungsi lineForward (tapi.h)

Fungsi lineForward meneruskan panggilan yang ditujukan untuk alamat yang ditentukan pada baris yang ditentukan, sesuai dengan instruksi penerusan yang ditentukan. Ketika alamat asal (dwAddressID) diteruskan, panggilan masuk yang ditentukan untuk alamat tersebut dibelokan ke nomor lain dengan sakelar. Fungsi ini menyediakan kombinasi fitur maju dan jangan diganggu. Fungsi ini juga dapat membatalkan penerusan yang saat ini berlaku.

Sintaks

LONG lineForward(
  HLINE                   hLine,
  DWORD                   bAllAddresses,
  DWORD                   dwAddressID,
  LPLINEFORWARDLIST const lpForwardList,
  DWORD                   dwNumRingsNoAnswer,
  LPHCALL                 lphConsultCall,
  LPLINECALLPARAMS const  lpCallParams
);

Parameter

hLine

Tangani ke perangkat baris.

bAllAddresses

Menentukan apakah semua alamat asal pada baris atau hanya alamat yang ditentukan yang akan diteruskan. Jika TRUE, semua alamat pada baris diteruskan dan dwAddressID diabaikan; jika FALSE, hanya alamat yang ditentukan sebagai dwAddressID yang diteruskan.

dwAddressID

Alamat pada baris yang ditentukan yang panggilan masuknya akan diteruskan. Parameter ini diabaikan jika bAllAddressesTRUE.

Pengidentifikasi alamat secara permanen dikaitkan dengan alamat; pengidentifikasi tetap konstan di seluruh peningkatan sistem operasi.

lpForwardList

Penunjuk ke struktur data berukuran bervariasi yang menjelaskan instruksi penerusan tertentu, jenis LINEFORWARDLIST.

dwNumRingsNoAnswer

Jumlah dering sebelum panggilan dianggap sebagai "tanpa jawaban." Jika dwNumRingsNoAnswer di luar rentang, nilai aktual diatur ke nilai terdekat dalam rentang yang diizinkan.

lphConsultCall

Penunjuk ke lokasi HCALL. Di beberapa lingkungan telepon, lokasi ini dimuat dengan pegangan ke panggilan konsultasi yang digunakan untuk berkonsultasi dengan pihak yang sedang diteruskan, dan aplikasi menjadi pemilik satu-satunya panggilan ini. Pointer ini harus valid bahkan di lingkungan di mana pengalihan panggilan tidak memerlukan panggilan konsultasi. Handel ini diatur ke NULL jika tidak ada panggilan konsultasi yang dibuat.

lpCallParams

Penunjuk ke struktur jenis LINECALLPARAMS. Pointer ini diabaikan kecuali lineForward memerlukan pembentukan panggilan ke tujuan penerusan (dan lphConsultCall dikembalikan, dalam hal ini lpCallParams bersifat opsional). Jika NULL, parameter panggilan default akan digunakan. Jika tidak, parameter panggilan yang ditentukan digunakan untuk membuat hConsultCall.

Mengembalikan nilai

Mengembalikan pengidentifikasi permintaan positif jika fungsi selesai secara asinkron, atau nomor kesalahan negatif jika terjadi kesalahan. Parameter dwParam2 dari pesan LINE_REPLY yang sesuai adalah nol jika fungsi berhasil atau merupakan nomor kesalahan negatif jika terjadi kesalahan. Nilai yang mungkin dikembalikan adalah:

LINEERR_INVALLINEHANDLE, LINEERR_NOMEM, LINEERR_INVALADDRESSID, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALADDRESS, LINEERR_OPERATIONFAILED, LINEERR_INVALCOUNTRYCODE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALPOINTER, LINEERR_STRUCTURETOOSMALL, LINEERR_INVALPARAM, LINEERR_UNINITIALIZED.

Keterangan

Penerusan yang berhasil hanya menunjukkan bahwa permintaan telah diterima oleh penyedia layanan, bukan berarti penerusan disiapkan di switch. Pesan LINE_ADDRESSSTATE (penerusan) menyediakan konfirmasi untuk penerusan yang telah disiapkan di sakelar.

Penerusan alamat tetap berlaku sampai fungsi ini dipanggil lagi. Daftar penerusan terbaru menggantikan yang lama. Penerusan dapat dibatalkan dengan menentukan pointer NULL sebagai lpForwardList. Jika alamat tujuan NULL ditentukan untuk entri dalam daftar penerusan, operasi bertindak sebagai jangan diganggu.

Status penerusan alamat juga dapat terpengaruh secara eksternal; misalnya, dengan tindakan administratif di sakelar atau oleh pengguna dari stasiun lain. Mungkin tidak mungkin bagi penyedia layanan untuk mengetahui perubahan status ini, dan mungkin tidak dapat tetap sinkron dengan status penerusan yang diketahui oleh sakelar.

Karena penyedia layanan mungkin tidak mengetahui status penerusan alamat "pasti" (yaitu, mungkin telah diteruskan atau tidak terduga dengan cara yang tidak diketahui), lineForward berhasil kecuali gagal mengatur instruksi penerusan baru. Dengan kata lain, permintaan bahwa semua penerusan dibatalkan pada saat tidak ada penerusan yang berlaku berhasil. Ini karena tidak ada "unforwarding"—Anda hanya dapat mengubah serangkaian instruksi penerusan sebelumnya.

Keberhasilan atau kegagalan operasi ini tidak bergantung pada serangkaian instruksi penerusan sebelumnya, dan hal yang sama berlaku saat mengatur instruksi penerusan yang berbeda. Penyedia harus "tidak terduga semuanya" sebelum mengatur instruksi penerusan baru. Karena ini dapat memakan waktu di lingkungan telepon analog, penyedia mungkin juga ingin membandingkan penerusan saat ini dengan yang baru, dan hanya mengeluarkan instruksi ke sakelar untuk sampai ke status akhir (membiarkan penerusan yang tidak berubah tidak terpengaruh).

Memanggil lineForward ketika LINEFORWARDLIST memiliki dwNumEntries yang diatur ke nol memiliki efek yang sama dengan menyediakan parameter NULLlpForwardList . Ini membatalkan semua penerusan yang saat ini berlaku.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header tapi.h
Pustaka Tapi32.lib
DLL Tapi32.dll

Lihat juga

Gambaran Umum Penerusan

LINECALLPARAMS

LINEFORWARDLIST

LINE_ADDRESSSTATE

LINE_REPLY

Fungsi Layanan Garis Tambahan

Gambaran Umum Referensi TAPI 2.2