lineMonitorMedia 函式 (tapi.h)
lineMonitorMedia 函式會啟用和停用在指定呼叫) (模式的媒體類型偵測。 偵測到媒體類型時,會將訊息傳送至應用程式。 如需詳細資訊,請參閱 ITLegacyCallMediaControl::MonitorMedia。
語法
LONG lineMonitorMedia(
HCALL hCall,
DWORD dwMediaModes
);
參數
hCall
呼叫的句柄。 hCall 的呼叫狀態可以是閑置以外的任何狀態。
dwMediaModes
要監視的媒體類型。 如果此參數為零,則會取消所有媒體類型偵測。 此參數會使用一或多個 LINEMEDIAMODE_常數。
傳回值
如果要求成功或發生錯誤,則傳回零。 可能的傳回值為:
LINEERR_INVALCALLHANDLE、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALCALLSTATE、LINEERR_OPERATIONFAILED、LINEERR_INVALMEDIAMODE、LINEERR_RESOURCEUNAVAIL、LINEERR_NOMEM LINEERR_UNINITIALIZED。
備註
使用 lineOpen 指定的媒體類型只與服務提供者啟用這些媒體類型的偵測,以便將新的連入呼叫交給適當的應用程式。 它們不會影響任何預期的媒體模式通知訊息,因為先前叫用 lineMonitorMedia。
如果媒體類型監視已正確起始,而不是媒體類型監視已終止,則此函式會被視為成功。 指定媒體類型的媒體監視會維持有效狀態,直到呼叫 lineMonitorMedia 並將 dwMediaModes 參數設定為零、呼叫轉換為 閒置,或應用程式解除分配呼叫句柄的呼叫句柄為止。 lineMonitorMedia 函式主要是事件報告機制。 媒體類型 (模式) 呼叫,如 LINECALLINFO 所示,不會受到服務提供者偵測媒體類型的影響。 只有控制應用程式可以變更呼叫的媒體類型。
服務提供者所執行的預設媒體監視會對應至 lineOpen上指定之所有媒體類型的聯集。
雖然此函式可以在任何呼叫狀態中叫用,但呼叫的媒體類型通常只能在呼叫處於特定呼叫狀態時偵測。 這些狀態可以是裝置特定狀態。 例如,在ISDN中,訊息可以指出媒體數據流存在的媒體類型。 同樣地,關於通話的特別響鈴或呼叫標識符資訊可用來識別通話的媒體類型。 否則,呼叫可能必須接聽 (處於 連線 狀態的呼叫) ,以允許服務提供者藉由篩選媒體串流來判斷呼叫的媒體類型。 由於篩選呼叫的媒體數據流表示計算額外負荷,因此應用程式應該在不需要時停用媒體監視。 根據預設,媒體監視會針對新來電啟用,因為呼叫的媒體類型會選取應該處理呼叫的應用程式。
處理語音媒體類型的傳出應用程式可能會想要監視通話的無聲 (音調) ,以區別通話結尾或呼叫端的內容。 例如,家中的人員只要接聽簡短的 「hello」 來接聽電話。辦公室的人員可以提供較長的問候語,指出名稱和公司名稱。 答案機器通常可以有較長的問候語。
由於 lineMonitorMedia 所啟用的媒體模式偵測會實作為呼叫媒體數據流的唯讀作業,因此不會造成干擾。
會議通話上的媒體監視僅適用於 hConfCall 參數,不適用於個別參與通話。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | tapi.h |
程式庫 | Tapi32.lib |
Dll | Tapi32.dll |