asterisk BLF


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
;注意這個call-limit=2的設定也是安全設定, Hints 會吃掉一個頻道,留下一個頻道給使用者正常通話使用。
;此設定某種程度上能避免盜打,但也要注意另一問題,若發生該分機咬線時(發生原因不明),則該分機則會無法接也無法撥打出去。
;在asterisk console可見錯誤訊息,大意就是超出call-limit了,
;這時再用指令 "core show channels" 可見掛不斷的分機號仍佔用著頻道。
;解法是手動掛斷它,指令"channel request hangup 頻道" 或是重啟 astersik 服務
 
 
[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種燈號
恆亮綠燈:所監視的分機處於閒置狀態
閃紅燈:所監視的分機有電話進來
恆亮紅燈:所監視的分機處於通話中狀態
熄燈:分機不在線

參照下圖設定
t28

特別說明:上圖右方 Extension 這個欄位,依不同的韌內版本功能也有所不同,Firmware Version 2.72.0.30 時,此欄位為截答功能,請參考此頁來設定截答功能,此欄位我們雖填了 *8 但是按下BLF鍵時卻會送出 *82168 這樣的撥號,而舊版的韌體則會直接送出*8這樣的撥號。

另外這裡提到了,當我們所監視的分機呈離線狀態時,BLF燈號卻不會熄掉,仍呈現恆亮綠燈。簡單說,目前無解。較完整的說法是,Subscription 的定義不同。


參考資料:voip-infoExpressInterconnect

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

發表迴響

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