我正在开发一个java-asterisk应用程序,它正在呼叫订阅者传递消息。在通话过程中的某些时刻,我需要监控用户是在说话还是保持沉默。我需要监视相当长的时间(1-3秒)但不想中断传出消息的流动。 我现在的方式如下
streamFile(*file A*);
exec("WaitForSilence","300,1,1");
waitStatus=getVariable("WAITSTATUS");
streamFile(*file B*);
这样可以正常工作,但只有300毫秒检测和1秒超时,因此从用户的角度来看,文件A和文件B之间的静音几乎无法察觉。但如果我想听更长时间(例如3秒),那么用户的体验将会被破坏。
我需要的功能类似于" WaitForSilence"但是那个:
我现在一直在寻找超过一周的时间,而且无法找到办法。有什么想法吗?
答案 0 :(得分:0)
你提供的代码会等待,之后会播放。
在一个应用程序中无法做到这一点。
可行的方式:
1)为此创建c / c ++应用程序(需要星号大师技能)。
2)创建另一个通道,将其与ChanSpy混合,并在该通道中进行静音检测。复杂性 - 星号专家。
两者都不是那么短(超过2-3个代码屏幕),因此无法在此站点中进行描述。
您也可以尝试使用后台应用程序,但我担心它也不会起作用。