测试 FreeSWITCH 的 mod_loopback

bgapi originate loopback/answer,park/default/inline park inline

show channels as xml

show calls as xml

有 2 个 channels

有 2 个 calls

比较有意思

在 loopback-a 是播放 wav

在 loopback-b 上可以录音

这就是回环

有什么用呢?

除了做测试,还有 niao 用

对了,官方文档是这样描述 loopback 的呼叫字符串的

loopback/<exten\>[/context[/dialplan]]

某个大神写个一篇文章,很好

《使用FreeSWITCH检测声音文件中的DTMF信息》


按照大神的提示,如下:

-- dtmf.lua

function onInputCBF(s, type, obj, arg)

if (type == "dtmf") then

freeswitch.consoleLog("INFO", "Got DTMF: " .. obj.digit .. " Duration: " .. obj.duration .. "\n")

end

return ''

end

session:answer()

session:execute("start_dtmf", "")

session:setInputCallback('onInputCBF', '')

session:streamFile("local_stream://moh")

<!--dialplan-->

<extension name="dtmf">

<condition field="destination_number" expression="dtmf">

<action application="answer" data=""/>

<action application="playback" data="tone_stream://v=-2;1234567890"/>

<action application="sleep" data="3000"/>

</condition>

</extension>

originate loopback/dtmf &lua(dtmf.lua)

一条腿播放带内DTMF,另外一条腿识别带内DTMF

发现效果不太好,有丢码

改了下 dtmf.lua, 如下:

function onInputCBF(s, type, obj, arg)

if (type == "dtmf") then

freeswitch.consoleLog("INFO", "Got DTMF: " .. obj.digit .. " Duration: " .. obj.duration .. "\n")

end

return ''

end

session:answer()

session:execute("spandsp_start_dtmf", "")

session:setInputCallback('onInputCBF', '')

session:streamFile("local_stream://moh")

这样就没问题了,不丢一个,不多一个

有兴趣的可以试试,如果结果不一样,一定要告诉我

相关推荐
liulilittle13 天前
OPENPPP2 VMUX 技术探秘(高级指南)
网络·信息与通信·ip·通信·mux
liulilittle14 天前
主流防火墙策略绕过漏洞的修复方案与加固实践
网络·安全·网络安全·信息与通信·ip·通信
无名38719 天前
FreeSWITCH mod_curl 和 mod_xml_rpc 测试
通信
liulilittle1 个月前
关于DDOS
linux·运维·服务器·网络·ddos·通信
无名3871 个月前
FreeSWITCH rtcp-mux 测试
通信
无名3871 个月前
FreeSWITCH 纯内网配置
通信
无名3872 个月前
用 wireshark 解密 SIP over TLS 以及 SRTP 解密
通信
liulilittle2 个月前
FTTR 全屋光纤架构分享
linux·服务器·网络·ip·通信·光纤·fttr
kyle~3 个月前
电控---CMSIS概览
嵌入式·通信·电控