我编写了一个Perl ESL脚本,该脚本放置了一个出站调用,并与一个lua脚本连接起来,后者用flite执行了一些操作。
这与SIP INFO DTMF配合得很好。但由于我们的SIP提供程序禁用SIP INFO并切换到RFC2833,因此ESL脚本不再获取DTMF事件。在freeswitch控制台中。 我看到了所有的DTMF事件。
我通过以下方式连接所有活动:
$con->events("plain","ALL");
但是我得到的所有其他活动都没有得到任何DTMF事件。
任何想法?
答案 0 :(得分:0)
不确定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" />
您可以遍历“数字”来完成您需要做的事情。