2012-07-23 76 views
0

我在會議中使用confBridge作爲星號。 我想檢測誰在說話,誰不在會議中說話。 爲此,在confBridge「talk_detection_events = yes」中有一個選項,它將通話事件發送給AMI,但它僅在用戶加入會議時發送通話事件,之後我無法在AMI中看到任何事件。 我希望每當用戶開始通話或停止通話時,應該有AMI中觸發的事件。無法檢測到confBridge 10中的通話事件

或者,是否有任何命令我可以檢測用戶是否正在談話或不在交換機?

此外,我想檢測交換機中的keypress(dtmf)事件。有一個選項「dtmf_passthrough = yes」,它將dtmf事件傳遞給AMI,但是當用戶按下會議中的任何按鍵時,我沒有看到任何事件。

請幫我設置這些。

問候 阿尼爾

回答

1

通話檢測:

雖然設置talk_detection_events = YES將使發送AMI事件出來表示,當用戶開始/結束談話,可能是不夠的ConfBridge根據配置在其他幾個因素。

用戶是否被確定爲「說話」取決於dsp_talking_threshold和dsp_silence_threshold設置的組合。如果您沒有收到您期望的談話檢測事件,那麼您可能需要調整這些設置以匹配ConfBridge從其參與者處接收的音頻屬性。

或者,您應確保您的AMI帳戶具有足夠的班級權限來接收Talk對話事件。該事件具有EVENT_FLAG_CALL類的權限,您應該正在監聽事件ConfbridgeTalking。

DTMF

dtmf_passthrough無關與DTMF AMI事件,這是由通道完成的實際提高讀/寫程序。 dtmf_passthrough允許將DTMF按鍵發送到網橋中的其他通道 - 通常,ConfBridge應用程序會吸收DTMF按鍵。

啓用此功能後,您應該在橋接通道上看到DTMF事件(至少)。如果您沒有看到任何類型的事件,則很可能沒有在AMI帳戶上設置適當的類權限。

所有這一切都說,我不得不想知道爲什麼你在尋找DTMF按鍵。通常,ConfBridge中的通道上的操作應使用ConfBridge中實現的菜單系統或使用AMI/CLI命令進行。在它仍然在會議橋的時候,你很難準確地截取和處理一個頻道的DTMF--當時的頻道由橋接層所擁有,並且你選擇對該頻道做的任何事情幾乎都是肯定的不安全的。

+0

嗨馬特,謝謝你的迴應。它工作完美。現在我面臨着另一個挑戰。我在一次會議中有20個頻道,因此一次有2個頻道未被靜音,另有18個被靜音,在幾分鐘的會議後,我想取消一個試圖說話的頻道的靜音,現在的挑戰是正試圖說話的人是靜音的,我也無法檢測他的談話事件,以便我可以取消他的靜音。無論如何,這樣我就可以在交換機中檢測到靜音頻道/人物的談話事件。 – 2012-07-27 04:24:59

+1

不,目前不可能。 TalkDetect事件將觸發音頻幀由橋接層混合的那些聲道 - 如果聲道被靜音,其音頻幀永遠不會到達該點。 在某種程度上,無論如何,您可能會遇到該功能的問題 - 如果有人被靜音並且其他人開始說話並取消靜音,爲什麼他們會靜音?在這個過程中,你肯定會失去一些音頻,這意味着他們必須重複他們所說的話。一個更好的過程可能是通過DTMF菜單給他們一個機制來通知說話者他們想說話。 – 2012-07-27 13:22:13

+0

然後,您可以讓演講者通過讓他們取消抑制來確認他們。如果您希望通過AMI而不是揚聲器來控制,您可以讓DTMF菜單跳出到撥號方案並引發UserEvent。然後您可以編程取消靜音參與者。 – 2012-07-27 13:23:09