测试 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")

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

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

相关推荐
liulilittle8 天前
关于DDOS
linux·运维·服务器·网络·ddos·通信
无名38718 天前
FreeSWITCH rtcp-mux 测试
通信
无名38719 天前
FreeSWITCH 纯内网配置
通信
无名38724 天前
用 wireshark 解密 SIP over TLS 以及 SRTP 解密
通信
liulilittle1 个月前
FTTR 全屋光纤架构分享
linux·服务器·网络·ip·通信·光纤·fttr
kyle~2 个月前
电控---CMSIS概览
嵌入式·通信·电控
Ronin-Lotus2 个月前
嵌入式通信篇---通信频段
linux·运维·网络·通信·频段
问道飞鱼2 个月前
【Vue3知识】组件间通信的方式
开发语言·javascript·ecmascript·组件·通信
Logintern093 个月前
嵌入式基础知识学习:UART是什么?
学习·嵌入式·通信