lineMakeCall 函式 (tapi.h)

lineMakeCall 函式會將呼叫放在指定之目的地位址的指定行上。 您可以選擇性地指定呼叫參數,但要求預設呼叫設定參數以外的任何專案。

語法

LONG lineMakeCall(
  HLINE                  hLine,
  LPHCALL                lphCall,
  LPCSTR                 lpszDestAddress,
  DWORD                  dwCountryCode,
  LPLINECALLPARAMS const lpCallParams
);

參數

hLine

處理要進行呼叫的開啟行裝置。

lphCall

HCALL 控制碼的指標。 只有在應用程式收到 LINE_REPLY 訊息之後,控制碼才有效,指出 lineMakeCall 函式已成功完成。 使用此控制碼在呼叫上叫用其他電話語音作業時識別呼叫。 應用程式最初是這個呼叫的唯一擁有者。 如果函式) 以同步或非同步方式傳回錯誤 (,則此控制碼是 void。

lpszDestAddress

目的地位址的指標。 這會遵循標準可撥號號碼格式。 此指標可以是非撥號位址的 Null , (使用熱電話) 或所有撥號都使用 lineDial執行時。 在後者的情況下, lineMakeCall 會配置一個可用的通話外觀,在撥號開始之前,通常會維持 在撥號字元 狀態。 具有反向多工功能的服務提供者可讓應用程式一次指定多個位址。

dwCountryCode

被呼叫者的國家/地區代碼。 如果指定值為 0,實作會使用預設值。

lpCallParams

LINECALLPARAMS結構的指標。 此結構可讓應用程式指定要如何設定呼叫。 如果指定 Null ,則會建立預設的 3.1 kHz 語音通話,並選取行上的任意原點位址。 此結構可讓應用程式選取專案,例如呼叫的持有人模式、資料速率、預期的媒體模式、來源位址、呼叫端識別碼資訊的封鎖,以及撥號參數。

傳回值

如果函式是以非同步方式完成,則傳回正要求識別碼,如果發生錯誤,則傳回負錯誤號碼。 如果函式成功或發生錯誤,則對應LINE_REPLY訊息的dwParam2參數為零。 可能的傳回值為:

LINEERR_ADDRESSBLOCKED、LINEERR_INVALLINEHANDLE、LINEERR_BEARERMODEUNAVAIL、LINEERR_INVALLINESTATE、LINEERR_CALLUNAVAIL、LINEERR_INVALMEDIAMODE、LINEERR_DIALBILLING、LINEERR_INVALPARAM、LINEERR_DIALDIALTONE、LINEERR_INVALPOINTER LINEERR_DIALPROMPT、LINEERR_INVALRATE LINEERR_DIALQUIET、LINEERR_NOMEM LINEERR_INUSE、LINEERR_OPERATIONFAILED、LINEERR_INVALADDRESS、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALADDRESSID、LINEERR_RATEUNAVAIL LINEERR_INVALADDRESSMODE LINEERR_RESOURCEUNAVAIL、LINEERR_INVALBEARERMODE、LINEERR_STRUCTURETOOSMALL、LINEERR_INVALCALLPARAMS、LINEERR_UNINITIALIZED、LINEERR_INVALCOUNTRYCODE、LINEERR_USERUSERINFOTOOBIG。

備註

如果傳回LINEERR_INVALLINESTATE,則行目前不是可執行此作業的狀態。 您可以在LINEDEVSTATUS結構中類型LINEFEATURE_) 的 dwLineFeatures成員 (中找到目前有效的作業清單。 呼叫 lineGetLineDevStatus 會更新 LINEDEVSTATUS中的資訊。 如果傳回LINEERR_DIALBILLING、LINEERR_DIALQUIET、LINEERR_DIALDIALTONE或LINEERR_DIALPROMPT, 則 lineMakeCall 不會執行任何動作;例如,在發生違規字元之前,沒有可撥號位址、沒有勾點切換狀態已變更等等。

撥號完成之後,通常會傳送數 個LINE_CALLSTATE 訊息給應用程式,以通知其通話進度。 未指定一般有效的撥號狀態轉換序列,因為實際上無法保證單一固定的轉換序列。 一般序列可能會導致呼叫從撥號字元撥號繼續迴響、連線。 使用非撥號線路時,呼叫通常會直接轉換為 連線 狀態。

應用程式可以選擇在指定的行裝置上指定原始位址。 服務提供者,將交換器上的所有月臺模型化為單一線路裝置上的位址,可讓應用程式使用 lineMakeCall從這些月臺產生呼叫。

通話參數可讓應用程式進行非語音通話,或要求預設無法使用的特殊通話設定選項。

應用程式可以使用 lineMakeCall 部分撥號,並使用 lineDial繼續撥號。 如需部分撥號的詳細資訊,請參閱 lineDialTSPI_lineMakeCall。 若要放棄呼叫嘗試,請使用 lineDrop

lineMakeCall將成功回復訊息傳回應用程式之後,會將LINE_CALLSTATE訊息傳送至應用程式,以指出呼叫的目前狀態。 此狀態不一定LINECALLSTATE_DIALTONE。

此函式可能會以未加密的形式透過網路傳送資料;因此,網路上有人竊聽可能會讀取資料。 使用此方法之前,應該考慮以純文字傳送資料的安全性風險。

謹慎 TAPI 會在傳回LINE_REPLY訊息時,將傳回的資料寫入 lphCall 所參考的緩衝區。 這表示緩衝區必須維持有效狀態,直到傳回LINE_REPLY訊息為止;否則,可能會發生資料損毀和例外狀況。
 

需求

   
目標平台 Windows
標頭 tapi.h
程式庫 Tapi32.lib
Dll Tapi32.dll

另請參閱

基本電話語音服務參考

可撥號位址

LINECALLPARAMS

LINEDEVSTATUS

LINE_CALLSTATE

LINE_REPLY

TAPI 2.2 參考概觀

lineDial

lineDrop

lineGetLineDevStatus