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

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

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

相关推荐
xixixi777776 天前
通信电子围栏——对特定终端(手机/物联网卡)进行实时监控和预警
安全·监控·通信·电子围栏·电子边界
无名38715 天前
记录 RTPEngine Dockerfile 的调试过程
通信
无名38724 天前
OpenSIPS sql_cacher vs sqlops
通信
liulilittle1 个月前
LwIP协议栈MPA多进程架构
服务器·开发语言·网络·c++·架构·lwip·通信
liulilittle1 个月前
在 Android Shell 终端上直接运行 OPENPPP2 网关路由配置指南
android·linux·开发语言·网络·c++·编程语言·通信
liulilittle1 个月前
国际带宽增长与用户体验下降的悖论
网络·网络协议·信息与通信·ip·ux·带宽·通信
liulilittle1 个月前
Linux 内核网络调优:单连接大带宽吞吐配置
linux·运维·服务器·网络·信息与通信·通信
liulilittle1 个月前
Linux内核网络优化:两个网络调优解决方案
linux·运维·服务器·网络·内核·信息与通信·通信
liulilittle2 个月前
OPENPPP2 静态隧道链路迁移平滑(UDP/IP)
开发语言·网络·c++·网络协议·tcp/ip·udp·通信
liulilittle2 个月前
网络编程基础算法剖析:从字节序转换到CIDR掩码计算
开发语言·网络·c++·算法·通信