2008年10月24日 星期五

Asterisk的進階功能:轉接、代接和會議室

Asterisk除了基本的通話功能外,也可以使用轉接或代接的功能,如果話機上沒有功能鍵可以使用的話,也可以利用下列方式來設定特殊鍵組:

1.設定代接、轉接

vim /etc/asterisk/features.conf


featuredigittimeout = 500 ;組合鍵的抓取時間(毫秒)
pickupexten = *8
;代接組合鍵
blindxfer = #2
;直接轉接(轉接方直接斷線)
atxfer = *2
;轉接(轉接後可先與受話方通話)


修改轉接權限
vim /etc/asterisk/extensions.conf

exten => _X.,1,Dial(SIP/${EXTEN},,Tt)


T:允許發話端使用轉接
t:允許受話端使用轉接

修改後載入設定檔
/usr/sbin/asterisk -r

*CLI> restart now

2.使用會議室
vim /etc/asterisk/extensions.conf

exten => _555XX,1,MeetMe(${EXTEN:3}di)

撥打555XX進入會議室,555啟動會議室、XX為會議室代碼,可視需求增減長度(${EXTEN:3}需跟著修改)。
d為不要求會議室密碼,想設密碼可改為D
i為使用者進出時提示,靜音為q

修改後載入設定檔
/usr/sbin/asterisk -r
*CLI> reload

33 意見:

匿名 提到...

請教:采用轉接(轉接後可先與受話方通話)這種方式,如果通話后受話方掛斷或者轉接方不想轉接了需要接回怎么處理?

Yow 提到...

只要「轉接受話方」掛斷電話、「轉接方」取消保留即可恢復到原本的「發話方」及「受話方」

匿名 提到...

謝謝,試了下,沒問題了!

CO CO 提到...

我照上面設定,好像不行,是否可以提供完整設定!!

是否有其他設定可以玩玩!請教一下

感謝!正在玩的我!有訊息可以寄到我信箱喔!
kenboyboy38@hotmail.com

Yow 提到...

不知道您是指哪一個部分不行?
如果是會議室的話還需要搭配timer,請參閱
http://www.voip-info.org/wiki/view/Asterisk+timer

Linux2的kernel 2.6.0 - 2.6.12有支援,因為沒用到所以更新kernel後的啟動方法就沒去研究,最原始的方法就是裝一張外線卡,上面就有內建timer

VOIP常用的設定就這些,不知您還需要哪種功能?

CO CO 提到...

features.conf:
設定參數上面是否要加[interal]
是否可以完整描述如何轉接

exten => _X.,1,Dial(SIP/${EXTEN},,Tt)
extensions.con:
exten =>_X.,1,Dial(SIP/${EXTEN}|30)這是您其他篇建立asterisk所加的參數,是否需覆蓋掉

exten => _555XX,1,MeetMe(${EXTEN:3}di)
extensions.conf
設定參數上面是否要加[interal]
如果要,我好像都失敗,他會播出語音說我call 錯,是否可以完整描述如何撥打

感謝你的幫忙!!

Yow 提到...

features.conf的部份修改原本的設定即可,把#拿掉。
這邊都是全域的,不需要[interal]的分類。
以本例:
代接--- 別支分機電話響,拿起話筒,按*8,即可接起對方電話。
轉接--- 通話中按 #2 後加 轉接方的號碼,掛斷。
轉接--- 通話中按 *2 後加 轉接方的號碼,響鈴,與轉接方完後,掛斷,轉接方與原發話方繼續通話。

如果啟用轉接的話,需加入Tt參數,改掉原本設定的即可。
exten => _X.,1,Dial(SIP/${EXTEN},,Tt)

會議室需加在[internal]群組(或你自訂的群組),
完整[internal]範例如下:
[internal]
exten => _555XX,1,MeetMe(${EXTEN:3},di)
exten => _X.,1,Dial(SIP/${EXTEN},,Tt)
exten => _X.,n,Hangup()
使用方式:
撥打 55501 ,會出現語音說明進入會議室。
01部份可隨意修改。

另,如出現app_meetme.c:778 build_conf: Unable to open pseudo device訊息,播放conf-invalid語音時,就是有Timer的問題。

CO CO 提到...

app_meetme.c:800 build_conf: Unable to open pseudo device

請問!我出現這個!是timer問題吧?
請問要怎樣解決?? 感謝!

CO CO 提到...

請問代接功能顯示:chan_sip.c:14820 handl e_request_invite:Nothing to pick up for call-ID
並且回傳503
是什麼原因呢??

感謝!!

Yow 提到...

 是呀~
 不好意思~因為沒用到會議室所以沒去找解答....
 不過之前是有看到說可以用USB去模擬之類的,你可以去搜尋看看那串錯誤訊息。
 等我有找到方案的話再提供給你~

Yow 提到...

那個訊息看起來是說沒有可以代接的CALL-ID,測試時同一群組內有分機在振鈴嗎?

CO CO 提到...

代接功能:
我是A call B,B未接起電話,C按*8送出去,但C未接起B的電話。我這撥的程序對嗎?還是設定要加什麼等(例如:同一個群組等..)? 感謝!!

Yow 提到...

主要是設定
/etc/asterisk/sip.conf的
pickupgroup=0 ;定義代接群組

代接步驟沒錯呀~
你說的回傳503是什麼?

CO CO 提到...

503是sip回應封包
會議室可請幫忙如何解決!這個功能在電話系統好像都有,而且還蠻好玩的!
請問錯誤訊息要去哪裡查??

Yow 提到...

在本機執行
/usr/sbin/asterisk -rvvvvvvv
就可以看到錯誤訊息,v越多訊息越詳細。
會議室的部分我再找找看有沒有方法~

Yow 提到...

找到使用會議室的方法了~
請安裝zaptel(步驟有更動):
 
 tar -zxvf zaptel-1.4.12.1.tar.gz
 cd /usr/local/src/zaptel-1.4.12.1
 ./configure
 make
 make install
 modprobe zaptel
 
重新啟動電腦後,可用lsmod檢查zaptel有沒有載入。

CO CO 提到...

HI!我的ip phone call 555xx還是不能近會議室,zaptel是語音卡驅動程式,下命令
 ./configure
 make
 make install
 modprobe zaptel

都ok,且lsmod檢查zaptel應該有跑起來,還是不能使用,還有啥要注意的嗎?感恩!

Yow 提到...

安裝過程中都沒錯誤?有重新啟動電腦嗎?
CALL 555XX後,Asterisk顯示的錯誤是什麼?

CO CO 提到...

HI!我有重開機安裝也沒錯誤八!出現訊息:
[Aug 1 00:45:05] NOTICE[6546]: rtp.c:786 process_rfc3389: Comfort noise support incomplete in Asterisk (RFC 3389). Please turn off on client if possible. Client IP: 172.18.160.112

感謝!你真是好人!

Yow 提到...

那個錯誤訊息是背景音的錯誤,Asterisk不支援Client所送出的背景音(Comfort noise)。

背景音的功能是為了保持通話,檢查看看話機的設定。

Yow 提到...

http://www.asteriskguru.org/tutorials/comfort_noise_support_incomplete.html

參考看看第二點,"transmit silence"、"VAD"的部份。

2. Howto disable this VAD thing on different sip and h323 phones.


- In Idefisk 2.0 this is called "transmit silence"
- on eyebeam this is called enable VAD. (under media -> audio -> devices).

CO CO 提到...

我是用x-lite測試還有ip phone測試,都一樣ㄝ!請問你是用哪一套軟體

Yow 提到...

我也是都有使用~不過並不會這種情況呀~

你有另外做了什麼設定嗎?

Yow 提到...

一般通話時會嗎?還是只有在會議時出現?

CO CO 提到...

只有在會議時,我也覺得很納悶!他會回我〝會議號碼錯誤〞(用英文說),還是zaptel版本有差,我是用的是跟你一樣!!

Yow 提到...

檢查extensions.conf的設定

[internal]
exten => _555XX,1,MeetMe(${EXTEN:3},di)
exten => _X.,1,Dial(SIP/${EXTEN},,Tt)
exten => _X.,n,Hangup()

zaptel版本應該沒差,只是需要他的timer而已。

撥的號碼對嗎? 像我是撥 55555

CO CO 提到...

對不起錯誤訊息我貼錯,以下是錯誤訊息
[Aug 2 20:59:37] WARNING[9549]: app_meetme.c:800 build_conf: Unable to open pseudo device
[Aug 2 20:59:37] NOTICE[9549]: rtp.c:786 process_rfc3389: Comfort noise support incomplete in Asterisk (RFC 3389). Please turn off on client if possible. Client IP: 192.168.173.101


好像是device的問題,我是灌asterisk-1.4.24.1版,不知道有沒有差
不好意思!一直麻煩你!

Yow 提到...

檢查看看zaptel是否有安裝成功?
/sbin/lsmod裡有沒有

zaptel 191108 13 xpp,ztdummy,wcusb,wctdm,wcfxo,wctdm24xxp,wcte11xp,wct1xxp,wcte12xp,wct4xxp,tor2

TerryWang 提到...

您好...想請問一下

我依照您的部落格來設定..但是始終不成功
想請問一下..您有設定meetme.conf嗎??

只需要設定feature.conf and extensions.conf就好嗎???

方便提供您的這三個檔案給我嗎??

Yow 提到...

meetme.conf 裡面有設定一行
conf => 1234,1234

feature.conf 裡有
[general]
parkext = 700
parkpos = 701-720
context = parkedcalls
pickupexten = *7
featuredigittimeout = 1000

[featuremap]
blindxfer = #9
atxfer = #


extensions.conf 裡,有關的部份是
[internal]
exten => _555XX,1,MeetMe(${EXTEN:3},di)
exten => _X.,1,Dial(SIP/${EXTEN},,Tt)
exten => _X.,n,Hangup()

TerryWang 提到...

Yow大..感謝您的回覆..

有問題問一下..個人感覺奇怪的地方在於
1.MeetME.conf是在設置會議室的編號..
若在你的MeetME.conf設置1234...為何
在extensions.conf中卻設置555開頭的編號..

2. 問一下extensions.conf的語法..
exten => _555XX,1,MeetMe(${EXTEN:3},di)

_555xx是說..我可以輸入任何555xx的號碼進入會議室嗎?? 例如55511 or 55522

Yow 提到...

meetme.conf裡設定的是固定會議室,在我配置的環境裡並沒有使用到。

實際上用到的是
exten => _555XX,1,MeetMe(${EXTEN:3},di)

先按555再按會議室編號XX即可,EX. 55511、55522

匿名 提到...

請問一下 :[Nov 14 18:54:52] WARNING[15060]: pbx.c:4229 pbx_extension_helper: No application 'MeetMe' for extension (incoming, 18, 4)
這邊的話是哪裡出了問題呢? 謝謝

##EasyReadMore##