0

我在我的星号中使用 confBridge 进行会议。我想检测会议内谁在说话,谁不在说话。为此,confBridge 中有一个选项“talk_detection_events=yes”,它将谈话事件发送到 AMI,但它只在用户加入会议时发送谈话事件,之后我无法在 AMI 中看到任何事件。我希望每当用户开始说话或停止说话时,AMI 中都会触发一个事件。

或者,是否有任何命令可以检测用户是否在 confbridge 中说话?

另外,我想检测 confbridge 中的按键(dtmf)事件。有一个选项“dtmf_passthrough=yes”将 dtmf 事件传递给 AMI,但是当用户在会议中按下任何键时,我没有看到任何事件。

请帮我设置这些。

问候阿尼尔

4

1 回答 1

1

谈话检测:

虽然设置 talk_detection_events=yes 将启用发送 AMI 事件,表示用户何时开始/结束谈话,但这可能不足以配置您的 ConfBridge,具体取决于其他几个因素。

用户是否被确定为“说话”取决于 dsp_talking_threshold 和 dsp_silence_threshold 设置的组合。如果您没有收到预期的谈话检测事件,那么您可能需要调整这些设置以匹配 ConfBridge 从其参与者接收的音频属性。

或者,您应该确保您的 AMI 帐户具有足够的类权限来接收谈话检测事件。该事件具有 EVENT_FLAG_CALL 类权限,您应该正在监听事件 ConfbridgeTalking。

双音多频

dtmf_passthrough 与 DTMF AMI 事件的实际引发无关,这是由通道读/写例程完成的。dtmf_passthrough 允许将 DTMF 按键发送到网桥中的其他通道 - 通常,ConfBridge 应用程序会吸收 DTMF 按键。

启用此功能后,您应该至少可以在桥接通道上看到 DTMF 事件。如果您没有看到任何类型的事件,您很可能没有在 AMI 帐户上设置适当的类权限。

说了这么多,我想知道你为什么要寻找 DTMF 按键。通常,ConfBridge 中的通道操作应该使用 ConfBridge 中实现的菜单系统或使用 AMI/CLI 命令进行。当频道仍在会议桥中时,您将很难准确拦截和处理频道的 DTMF - 此时频道归桥接层所有,您选择对该频道执行的任何操作几乎可以肯定不安全。

于 2012-07-23T18:17:52.607 回答