接触过freeswitch的童鞋们都知道,freeswitch自动会议室功能,比如大家都拨3000这个号码,就可以进行电话会议功能了。但是,现在有这么一个场景:现在某个主持人想开电话会议,想直接由freeswitch主动向需要参加会议的成员打电话,成员接通电话后就直接进入会议室,能否实现呢?
答案是肯定的。
实现原理和演化步骤:
1、freeswitch的bin目录下有一个叫做fs_cli的可执行文件,可以执行freeswitch的外部命令,格式fs_cli -x "命令串";
2、freeswitch的命令里头,有一个某个号码向另外一个号码打电话的命令,格式:originate 被叫用户 主叫用户;
3、结合以上两点,就可以写出可以在linux下,会议室主动向某个号码主动发出邀请电话的执行的命令了,比如以会议室3000这个号码向号码为1001和1002的打电话,则分别执行以下两行的linux命令行:
fs_cli -x "originate user/1001 3000"
fs_cli -x "originate user/1002 3000"
4、你现在就可以做个WEB系统,管理你的会议室号码和会议的成员,点击下"发起会议"按钮,循环调用linux命令的方式,给所有的成员打电话了,成员接听电话后,就自动进入会议室了。
5、为了简化WEB调用方式,可以在服务器上编写一个sh脚本,WEB代码通过调用这个脚本来实现以上功能,以下是我项目的sh脚本,它有两个输入参数,一个是成员号码,一个是会议号码:
#获取第一个参数和第二个参数,分别代表被呼叫的号码和会议室号码
shortNum="$1";
groupNum="$2";
nohup /usr/local/freeswitch/bin/fs_cli -x "originate user/$shortNum $groupNum" >> /home/switch/webtask/tmp/call.log &
来源:oschina
链接:https://my.oschina.net/u/1024047/blog/138174