2014-07-15 77 views
0

我有一個Perl ESL腳本,它放置一個出站呼叫並橋接一個lua腳本,它用flite做一些tts腳本。在Perl ESL腳本中接收RFC2833 DTMF,同時出站呼叫並執行lua腳本

這對SIP INFO DTMF很有效。但是,由於我們的SIP提供商禁用SIP INFO並切換到RFC2833,ESL腳本不再獲取DTMF事件。在自由切換控制檯 中,我可以看到所有的DTMF事件。

我連接到所有與事件:

$ CON組>事件( 「普通」, 「ALL」);

但沒有得到任何DTMF事件我得到的所有其他事件。

任何想法?

回答

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

你可以遍歷「數字」來做你需要做的事情。