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