asterisk confBride 10 電話會議室功能
asterisk 新的電話會議室功能 confBride 10 與舊版的 meetme 相比來講改進了許多,也增加了不少會議室內管理的功能。
先說明一下電話會議室的使用方法,後面會再針對所列的使用方法詳細說明設定方法:
會議室房間號碼分為三種底下分別說明
① 公開會議室:就是已經建立好一間會議室,房間號為500供大家使用,只要撥500就能進入此公共會議室
② 非公開會議室:可以臨時指定一個會議室號碼(3位數),告訴別人這個號碼就可進來
③ 個人專屬會議室:依你的個人分機號所建立的個人會議室號碼
底下是詳細介紹各會議室的使用方法:
公開會議室:
簡介:大家自行約定時間進入。拿起話通,撥500進入會議室。
使用方法詳述
步驟一:拿起話通撥500,會聽到語音提示「請在嗶聲後錄下您的名字,再按下#號鍵」。
步驟二:這時請對話筒講出你的名字,再按下#號鍵。 (此動作是要告訴會議裡的人們,是誰進入了會議室)
步驟三:若你是第1個進入會議室的人會聽到語音提示:「您現在是這個會議唯一的參與者」
步驟四:聽到”嘟”一聲表示你進入了會議室內了。
你已經在會議室內,若還想要叫其他人進入會議室,可按 *0 會聽到”號碼是”接著輸入分機號碼,對方一接起來就會聽到語音提示「請在嗶聲後錄下您的名字,再按下#號鍵」,錄音完畢就會被帶進會議室500
非公開會議室: (自訂會議室號碼)
使用時機:公開會議室房間500已被人使用,正在開會中(一進會議室就聽到有人講話)。
拿起話機撥 501 會聽到語音提示: “號碼是” 接著輸入3個數字即可進入會議室。
使用方法:大家自行約定要進哪一間會議室。
例如:電話或skype訊息通知對方「待會請你到350會議室開會」。 那麼大家就要先撥501聽到語音提示”號碼是”時接著輸入350,就可進會350號會議室。
你已經在會議室內,若還想要叫其他人進入會議室,可按 *0 會聽到”號碼是”接著輸入分機號碼,對方一接起來就會聽到語音提示「請在嗶聲後錄下您的名字,再按下#號鍵」,錄音完畢就會被帶進指定會議室
個人專屬會議室:
使用時機:在與對方講電話中臨時要拉另一個人進來參與討論
使用方法:
步驟一:在與對方講電話中按下 ** 把對方和自己帶入會議室內
步驟二:在會議室內再按 *0 會聽到”號碼是”接著輸入分機號碼,對方一接起來就會被帶進會議室,若還要再叫另一個人進會議室的話,重覆步驟二的竻作即可。
會議室內的音量控制
1 使用自靜音、再按一次解除靜音
4 降低聆聽音量
5 重置聆聽音量 (使用時機:聆聽音量調壞了,按一下恢愎正常音量)
6 增加聆聽音量 (使用時機:當你覺的對方講話聲音太小或聽不清楚對方聲音時)
7 降低講話音量
8 重置講話音量 (使用時機:講話音量調壞了,按一下恢愎正常音量)
9 增加講話音量 (使用時機:當對方覺的你講話的音量太小、聽不清楚時)
1 定義功能鍵
vim /etc/asterisk/features.conf
貼上底下內容
[applicationmap]
講話中帶入會議室 => **,caller,Macro,講話中帶入會議室
[vicGroup]
講話中帶入會議室 => **
automon => *1 ; 單鍵單聲道錄音。請確認在 Dial 指令有加入 W或w 參數
automixmon => *3 ;單鍵雙聲道錄音。請確認有在 Dial 指令有加入 X或x 參數
2 編輯extensions.conf
;底下為加入熱鍵呼叫功能
;在撥號指令之前必須增加設定DYNAMIC_FEATURES=vicGroup
exten => _200X,1,Set(DYNAMIC_FEATURES=vicGroup)
exten => _200X,n,(SIP/${EXTEN})
;公開會議室
exten => 500,1,Answer()
same => n,ConfBridge(500,default_bridge,default_user,room500_menu)
;非公開會議室
exten => 501,1,Read(_roomNum,NumberIs,3,,,8)
same => n,ConfBridge(${roomNum},default_bridge,default_user,room501_menu)
註:這裡的 Read 讀取 DTMF 鍵前會先撥放一個提示音檔 NumberIs 下載後放入 /var/lib/asterisk/sounds/tw 這個資料夾(不同語系、不同版本路徑是不同的要自己測)
3 電話會議室設定
請先備份此檔confbridge.conf
然後貼上底下 confbridge.conf 內容
[general] [default_bridge] type=bridge sound_has_joined=/var/lib/asterisk/sounds/tw/conf-hasjoin sound_has_left=/var/lib/asterisk/sounds/tw/conf-hasleft ;以上兩個事件,系統會用英文語系撥放無法更改,此為bug,只能強制指定事件所撥放的音檔 ;bug:https://issues.asterisk.org/jira/browse/ASTERISK-19983 [default_user] type=user announce_only_user=yes ;設定播報,當使用者進入一間空的會議室時 talk_detection_events=yes dsp_drop_silence=yes ;靜音偵測。 啟用此選項,將強烈的提高效能,並增強會議室內的背景噪音移除。此選項極度推薦用於大型會議室,用以增進效能。 denoise=yes ;降低噪音,預設關閉。需要此套件 codec_speex 。別跟另一個選項 drop_silence 混淆了, denoise(降低噪音) 是用來消除使用者的背景音過大,消除噪音保留使用者講話的聲音。此選項並不會移除使用者進會議室的靜音模式,需消耗一些系統資源。 announce_join_leave=yes ;提示使用者進出會議室 ;quiet=yes ;進出會議室完全靜音 [silent_user] type=user ;此區為進出會議室完全靜音,方便用功能鍵直接拉人進會議室 talk_detection_events=yes dsp_drop_silence=yes denoise=yes quiet=yes [vic_user] type=user admin=yes announce_only_user=yes talk_detection_events=yes dsp_drop_silence=yes denoise=yes announce_join_leave=yes ;提示使用者進出會議室 quiet=yes [sample_user_menu] type=menu ;公開會議室選單功能表 *=playback_and_continue(conf-usermenu) *1=toggle_mute 1=toggle_mute *4=decrease_listening_volume 4=decrease_listening_volume *5=reset_listening_volume 5=reset_listening_volume *6=increase_listening_volume 6=increase_listening_volume *7=decrease_talking_volume 7=decrease_talking_volume *8=leave_conference 8=leave_conference *9=increase_talking_volume 9=increase_talking_volume *0=dialplan_exec(拉人進會議室,1) 0=dialplan_exec(拉人進會議室,1) ;注意這裡只能寫分機號,不能寫 priority,否則它只執行你指定的 priority 之後就回來了,就不會繼續往下執行。 [sample_admin_menu] type=menu *=playback_and_continue(conf-adminmenu) *1=toggle_mute 1=toggle_mute *2=admin_toggle_conference_lock ; only applied to admin users 2=admin_toggle_conference_lock ; only applied to admin users *3=admin_kick_last ; only applied to admin users 3=admin_kick_last ; only applied to admin users *4=decrease_listening_volume 4=decrease_listening_volume *5=reset_listening_volume 5=reset_listening_volume *6=increase_listening_volume 6=increase_listening_volume *7=decrease_talking_volume 7=decrease_talking_volume *8=reset_talking_volume 8=reset_talking_volume *9=increase_talking_volume 9=increase_talking_volume [vic_admin_menu] type=menu ;*=playback_and_continue(confbridge-leave&press&digits/0&silence/1&confbridge-decrease-talking&press&digits/4&silence/1&reset-talking&press&digits/5&silence/1&increase-talking&press&digits/6&silence/1&confbridge-decrease-listening&press&digits/7&silence/1&confbridge-reset-listening&press&digits/8&silence/1&confbridge-increase-listening&press&digits/9&silence/1) *1=toggle_mute 1=toggle_mute *2=admin_toggle_conference_lock ;會議室上鎖,只限管理者 2=admin_toggle_conference_lock ;會議室上鎖,只限管理者 ;*3=admin_kick_last ;此鍵與錄音功能重覆,易混淆,建議不用。 3=admin_kick_last ;踢剛進會議室的人,只限管理者 *4=decrease_listening_volume 4=decrease_listening_volume *5=reset_listening_volume 5=reset_listening_volume *6=increase_listening_volume 6=increase_listening_volume *7=decrease_talking_volume 7=decrease_talking_volume *8=reset_talking_volume 8=reset_talking_volume *9=increase_talking_volume 9=increase_talking_volume *0=dialplan_exec(拉人進會議室,1) 0=dialplan_exec(拉人進會議室,1) ;注意這裡只能寫分機號,不能寫 priority,否則它只執行你指定的 priority 之後就回來了,就不會繼續往下執行。 [room500_menu] type=menu ;*=playback_and_continue(conf-usermenu) *1=toggle_mute 1=toggle_mute *4=decrease_listening_volume 4=decrease_listening_volume *5=reset_listening_volume 5=reset_listening_volume *6=increase_listening_volume 6=increase_listening_volume *7=decrease_talking_volume 7=decrease_talking_volume *8=leave_conference 8=leave_conference *9=increase_talking_volume 9=increase_talking_volume *0=dialplan_exec(拉人進會議室,500) 0=dialplan_exec(拉人進會議室,500) [room501_menu] type=menu ;*=playback_and_continue(conf-usermenu) *1=toggle_mute 1=toggle_mute *4=decrease_listening_volume 4=decrease_listening_volume *5=reset_listening_volume 5=reset_listening_volume *6=increase_listening_volume 6=increase_listening_volume *7=decrease_talking_volume 7=decrease_talking_volume *8=leave_conference 8=leave_conference *9=increase_talking_volume 9=increase_talking_volume *0=dialplan_exec(拉人進會議室,501) 0=dialplan_exec(拉人進會議室,501) |
4 再次編輯 extensions.conf
vim /etc/asterisk/extensions.conf
貼上底下內容
;==========================以下為電話會議室特別功能============================== [拉人進會議室] ;此區段會議室內的選單功能直接呼叫執行此區段內容 ;底下為個人專屬會議室房間 exten => 1,1,Read(分機號碼,NumberIs,4,,,8) ;讀取DTMF的輸入,讀取4碼,時間限制8秒 exten => 1,n,set(__VIProomNum=${CALLERID(number)}) exten => 1,n,System(/bin/echo -n ${VIProomNum} > /tmp/roomNum.txt) ;這裡的 $VIProomNum 還能正確取得內容,但變數無法傳送給下一個頻道,故將它輸出成檔案 same => n,Originate(SIP/${分機號碼},exten,開會議室房間,vipRoom,1) ;底下為公開會議室 exten => 500,1,Read(分機號碼,NumberIs,4,,,8) same => n,Originate(SIP/${分機號碼},exten,開會議室房間,500,1) ;底下為未公開會議室 exten => 501,1,Read(分機號碼,NumberIs,4,,,8) same => n,System(/bin/echo -n ${roomNum} > /tmp/roomNum.txt) ;變數${roomNum}無法傳遞給下一個頻道,故先輸出成檔案 same => n,Originate(SIP/${分機號碼},exten,開會議室房間,501,1) [開會議室房間] exten => 100,1,ConfBridge(${VIProomNum},default_bridge,silent_user) ;此為 *0 功能鍵,講話中帶入會議室,故進入會議室無需任何提示 exten => vipRoom,1,Noop(${VIProomNum}) ;從上面這行就可看到 $VIProomNum 變數並未正確傳遞過來。 same => n,Set(VIProomNum=${FILE(/tmp/roomNum.txt)}) ;$VIProomNum 變數再從 /tmp/roomNum.txt 檔案內取回 same => n,ConfBridge(${VIProomNum},default_bridge,silent_user) ;進會議室選項,帶入預設的 bridge,user 設定值,沒有會議室選單功能表 ;same => n,System(/bin/rm -fr /tmp/roomNum.txt) ;刪除 roomNum.txt 此檔。或許也可以不刪,因為內容總是會被下一通呼叫覆蓋,待確認。 same => n,Hangup exten => 500,1,ConfBridge(500,default_bridge,default_user,room500_menu) ; room500_menu 音量控制、會議室內拉人進來 exten => 501,1,Set(roomNum=${FILE(/tmp/roomNum.txt)}) ;變數從roomNum.txt檔案內取回來 same => n,ConfBridge(${roomNum},default_bridge,default_user,room501_menu) [macro-講話中帶入會議室] exten => s,1,ChannelRedirect(${BRIDGEPEER},開會議室房間,100,1) ;將對方導入會議室中 ;語法:ChannelRedirect(頻道,context,分機,優先值) exten => s,n,set(_VIProomNum=${CALLERID(number)}) exten => s,n,ConfBridge(${CALLERID(number)},default_bridge,vic_user,vic_admin_menu) ;自己以admin的身份進入會議室 ;==========================以上為電話會議室特別功能============================== |
然後重新載入 asterisk 設定檔,或重開 asterisk
註:以上程式碼有部份中文內容在我的系統是可以運行的,若你不行請自己將中文的部份改為英文吧。