接觸過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 &