创建两个freeswitch的Docker 端口设置 25060和35060
预期是拨打25060转发到35060
在25060中进入目录 /freeswitch/etc/freeswitch/directory/default
新建 bridge.xml
内容如下
进入25060中进入目录 /freeswitch/etc/freeswitch/dialplan
编辑 default.xml
并插入
进入35060中进入目录 /freeswitch/etc/freeswitch/dialplan
编辑 default.xml
并插入
之后再两边的fs_cli中执行reloadxml命令 并用sip软件连接25060拨打50000就可以拨打到35060上
使用fs命令 uuid_send_dtmf uuid dtmfs
发送按键信息
需要先获取uuid 根据被叫号码50000 模糊查找channel信息
在通话中 在fs_cli执行 show channels like 50000 as xml
返回信息如下
86ca6c90-b149-4e6c-8790-0f5b8bd2a81f
outbound
2020-10-29 17:09:33
1603962573
sofia/external/50000
CS_EXCHANGE_MEDIA
Extension 1004
1010
*.*.*.*
50000
XML
default
PCMU
8000
64000
PCMU
8000
64000
1905c6ebe853
ACTIVE
50000
50000
SEND
78bc395c-0ce0-4b00-b4b6-977989f7801f
Extension 1004
1010
Extension 1004
1010
*.*.*.*
50000
XML
default
填充参数 fs_cli执行命令 uuid_send_dtmf 86ca6c90-b149-4e6c-8790-0f5b8bd2a81f 123
发送按键信息123
进入35060中进入目录 /freeswitch/share/freeswitch/scripts
新建 dtmf.lua
function onInputCBF(s, type, obj, arg)
if (type == "dtmf") then
freeswitch.consoleLog("INFO", "===================================================\n")
freeswitch.consoleLog("INFO", "===================================================\n")
freeswitch.consoleLog("INFO", "===================================================\n")
freeswitch.consoleLog("INFO", "===================================================\n")
freeswitch.consoleLog("INFO", "===================================================\n")
freeswitch.consoleLog("INFO", "===================================================\n")
freeswitch.consoleLog("INFO", "===================================================\n")
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")
进入目录 /freeswitch/etc/freeswitch/dialplan
在 default.xml
中的50000路由中载入lua脚本
两边reloadxml后再25060发送 uuid_send_dtmf 86ca6c90-b149-4e6c-8790-0f5b8bd2a81f 123
的同时 会在35060得到如下日志
注:执行的命令也可以写入lua脚本中 参考 如何向通话的另一方号码发送dtmf?