我已经编写了一个Perl ESL脚本,它发出一个出站调用,并将其与一个使用flite执行一些tts的lua脚本连接起来。
这与SIP INFO DTMF一起工作得很好。但是,因为我们的SIP提供者禁用了SIP INFO并切换到了RFC2833,所以ESL脚本不再获得DTMF事件。在freeswitch控制台中。我看到了所有的DTMF事件。
我通过以下方式连接到所有活动:
$con->events("plain","ALL");
但是不要得到任何DTMF事件,我得到的所有其他事件。
有什么想法吗?
发布于 2014-09-19 01:02:14
不太确定Perl,但您可以从LUA中使用类似以下内容:
digits = session:playAndGetDigits(min_digits, max_digits, max_tries, digit_timeout, terminators , sounds_file", "", "\\d+")
它将收集传递给它的DTMF数字,您可以从您的拨号方案调用它,例如:
<action application="lua" data="get_dtmf.lua" />
你可以遍历“数字”来做你需要做的事情。
https://stackoverflow.com/questions/24766034
复制相似问题