无法在confBridge 10中检测到谈话事件

时间:2012-07-23 10:52:59

标签: asterisk

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

或者,是否有任何命令可以检测用户是否正在使用confbridge进行通话?

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

请帮我设置这些。

此致 阿尼尔

1 个答案:

答案 0 :(得分:1)

通话检测:

设置talk_detection_events = yes时,可以发送AMI事件,表示用户何时开始/结束通话,这可能不足以根据其他几个因素配置您的ConfBridge。

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

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

<强> DTMF

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

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

所有这一切,我不得不想知道你为什么要寻找DTMF按键。通常,ConfBridge中的通道上的操作应使用ConfBridge中实现的菜单系统或使用AMI / CLI命令进行。当你还在会议桥中时,你很难准确地拦截和处理频道的DTMF - 此时频道由桥接层拥有,而你选择对该频道做的任何事情几乎都是肯定的不安全的。