共用方式為


lineMakeCallA 函式 (tapi.h)

lineMakeCall 函式會將指定行的呼叫放在指定的目的地位址。 如果要求了預設呼叫設定參數以外的任何參數,則可以選擇性地指定呼叫參數。

語法

LONG lineMakeCallA(
  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 結構中的 dwLineFeatures 成員 LINEFEATURE_中,可以找到目前有效作業的清單。 呼叫 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訊息為止;否則,可能會發生數據損毀和例外狀況。
 

注意

tapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 lineMakeCall 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
目標平臺 窗戶
標頭 tapi.h
連結庫 Tapi32.lib
DLL Tapi32.dll

另請參閱

基本電話語音服務參考

可撥號位址

LINECALLPARAMS

LINEDEVSTATUS

LINE_CALLSTATE

LINE_REPLY

TAPI 2.2 參考概觀

lineDial

lineDrop

lineGetLineDevStatus