我已经配置了Asterisk 13并调试了所有收到的事件,但我无法让它触发ChannelTalkingStart
事件。 如果我按下手机上的提示音,它确实会触发ChannelDtmfReceived
,所以我知道它可以听到我的声音。
我有什么特别的事情要做吗? 我试图检测沉默并做出相应的反应。 (WaitForSilence(1.5)曾经做什么)
更新:我认为这与我尝试将其添加到扩展 https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Function_TALK_DETECT 有关,但它没有区别:
exten => 1002 ,1,NoOp()
same => n,Set(TALK_DETECT(set)=1000,1500)
same => n,Statis(MyApp)
same => n,Hangup()
找到了。 对于那些使用 PHPARI.org 的人来说,它是:
$this->phpariObject->channels()->channel_set_variable($this->stasisChannelID, 'TALK_DETECT(set)', '1000,1500');
基本上,谈话检测是关闭的,直到您专门打开它。 您可能需要调整 1000,1500 以更好地满足您的目的。 请参阅 https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Function_TALK_DETECT 以供参考。