confBride10

asterisk confBride 10 電話會議室功能

asterisk 新的電話會議室功能 confBride 10 與舊版的 meetme 相比來講改進了許多,也增加了不少會議室內管理的功能。

先說明一下電話會議室的使用方法,後面會再針對所列的使用方法詳細說明設定方法:

底下為電話會議室confBride10操作手冊

會議室房間號碼分為三種底下分別說明
① 公開會議室:就是已經建立好一間會議室,房間號為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 增加講話音量 (使用時機:當對方覺的你講話的音量太小、聽不清楚時)

底下開始介紹asterisk 10的設定方法

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

註:以上程式碼有部份中文內容在我的系統是可以運行的,若你不行請自己將中文的部份改為英文吧。

參考資料:confbride10中文版

本篇發表於 voip。將永久鏈結加入書籤。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *