在外出调用和执行lua脚本时,在Perl ESL脚本中接收RFC2833 DTMF

时间:2014-07-15 18:56:55

标签: perl lua freeswitch dtmf

我编写了一个Perl ESL脚本,该脚本放置了一个出站调用,并与一个lua脚本连接起来,后者用flite执行了一些操作。

这与SIP INFO DTMF配合得很好。但由于我们的SIP提供程序禁用SIP INFO并切换到RFC2833,因此ESL脚本不再获取DTMF事件。在freeswitch控制台中。 我看到了所有的DTMF事件。

我通过以下方式连接所有活动:

$con->events("plain","ALL");

但是我得到的所有其他活动都没有得到任何DTMF事件。

任何想法?

1 个答案:

答案 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" />

您可以遍历“数字”来完成您需要做的事情。