BLF = Busy Lamp Field
有些較高級的話機,如總機小姐專用的那種話機,上面有許多的燈號,那些燈號可以監視其它話機的通話狀態,英文簡稱BLF,所以asterisk若要使用這種功能的話,首先得要你的話機能夠支援BLF功能才行,底下示範使用 yealink T28 這隻話機來設定 BLF。
vim /etc/asterisk/sip.conf
[general]
;底下是開啟BLF功能
subscribecontext=BLF
allowsubscribe=yes
notifyringing=yes
notifyhold=yes
notifycid=yes
;以上是開啟BLF功能
;另外還要在每一個分機設定 call-limit=2 或任何大於1的數字,這是關鍵!
;範例:
[internal](!)
type=friend
context=outbound
deny=0.0.0.0/0
permit=192.168.0.0/16
host=dynamic
dtmfmode=rfc2833
canreinvite=yes
directmedia=yes
directrtpsetup=yes
qualify=yes
nat=no
disallow=all
allow = ulaw,alaw,g729,g723,gsm
call-limit=2
;要注意,若有分機咬線掛不斷時,也不要隨意增加這個 cll-limit 的數字,而應當找出問題來
;若只是單純的增加limit數字,問題還存在,不處理的話日後問題會更嚴重
;應急解法:可在 asterisk console端下指令 core show channels 來觀察咬線頻道
;再用此指令 hangup request ? 來自動補足後面的參數,即可掛斷該頻道
[2168](internal)
secert=1234
[2169](internal)
secert=1234
[2170](internal)
secert=1234
vim /etc/asterisk/extensions.conf
[BLF]
exten => 2168,hint,SIP/2168
exten => 2169,hint,SIP/2169
exten => 2170,hint,SIP/2170
;若是想要監視call park停車位是否被佔用,可按底下格式設定
exten => 701,hint,park:701@parkedcalls
exten => 702,hint,park:702@parkedcalls
exten => 703,hint,park:703@parkedcalls
設定好之後,reload astrerisk 設定檔,然後你就可以在 asterisk console 畫面裡執行底下的執行來觀察分機狀態
core show hints
此時你一邊打電話給你要監看的分機,一邊執行上面那行指令來觀察分機狀態是否有改變,若沒有改變的話,請重新檢查一次前面的設定是否有誤,若分機狀態有改變的話,說明你設定成功了,接下來我們接設定 t28 這隻分機的 BLF 燈號
分機狀態大概有這幾種 unavailable, in-use, busy, ringing,依據響鈴、通話中、忙線中…等等不同狀態會有不同的燈號,其實也沒多少燈號,依據 yealink t28 原廠說明書大概就4種燈號
恆亮綠燈:所監視的分機處於閒置狀態
閃紅燈:所監視的分機有電話進來
恆亮紅燈:所監視的分機處於通話中狀態
熄燈:分機不在線
特別說明:上圖右方 Extension 這個欄位,依不同的韌內版本功能也有所不同,Firmware Version 2.72.0.30 時,此欄位為截答功能,請參考此頁來設定截答功能,此欄位我們雖填了 *8 但是按下BLF鍵時卻會送出 *82168 這樣的撥號,而舊版的韌體則會直接送出*8這樣的撥號。
另外這裡提到了,當我們所監視的分機呈離線狀態時,BLF燈號卻不會熄掉,仍呈現恆亮綠燈。簡單說,目前無解。較完整的說法是,Subscription 的定義不同。
[note]
參考資料:voip-info、ExpressInterconnect、
[/note]