07
24

Asterisk-強悍的PBX平台

小弟最近都在研究VoIP的東西,在看過幾家VoIP chip vendor的solution後,其中有一樣軟體引起我的興趣,就是Asterisk,它跟SIP proxy server的優缺點比較我等會再講,先對這個軟體做個小實驗

下載和安裝
Asterisk可在其
官方網站下載,而安裝的方法很簡單,只要依照順序下configure,make,make install就可以了,而執行時請下asterisk –vvvc,就可以看到執行的過程和執行完後的console畫面(CLI)

設定sip.conf,extensions.conf和voicemail.conf
這三個檔案全部都在/etc/asterisk資料夾內,它們的簡介如下
sip.conf:新增sip user
extensions.conf:新增dialplan
voicemail.conf:設定sip client的voicemail相關資料
首先設定sip.conf,文件的最後面新增這幾行

[20000]
type=friend
secret=20000
qualify=yes
nat=no
host=dynamic
canreinvite=no
context=myfirstexample
mailbox=20000@myfirstvoicemail
 
[20100]
type=friend
secret=20100
qualify=yes
nat=no
host=dynamic
canreinvite=no
context=myfirstexample
mailbox=20100@myfirstvoicemail

type設定為friend,代表這個sip user可接電話也可以打電話,secret則為使用者的密碼,qualify設定為yes則此使用者的通話可獲得Asterisk頻寬保證,host設為dynamic的用意在於讓使用者可用任意IP登入,其中最特別的選項為canreinvite,當這個選項設定為YES時(2008.11.10修改),Asterisk會讓peer端直接連線,所有RTP封包都不會經過Asterisk轉送了,至於context就是設定使用者的dial plan名稱,mailbox是語音信箱的資訊

接著再修改extensions.conf,並在最後新增如下資訊

[myfirstexample]
exten => 20000,1,Dial(SIP/20000,30,Ttm)
exten => 20000,2,Hangup
exten => 20000,102,Voicemail(20000)
exten => 20000,103,Hangup
 
exten => 20100,1,Dial(SIP/20100,30,Ttm)
exten => 20100,2,Hangup
exten => 20100,102,Voicemail(20100)
exten => 20100,103,Hangup
 
exten => 30000,1,VoicemailMain

上面的設定內容可以表達如下格式
dial number,priority,Action
舉例來說, 20000,1,Dial(SIP/20000,30,Ttm)這行的意思可解釋為,當SIP user輸入20000這個號碼時,Asterisk第一件會做的事就是通知20000這個SIP user,而呼叫SIP user的動作在Asterisk裡面為Dial

而voicemail.conf的設定十分簡單,請在[default]下面一行新增

20000 => 1234,Peter,peter@midomain.com
20100 => 4321,John,john@midomain.com

以這行20000 => 1234,Peter,peter@midomain.com舉例,20000的sip user對應的voicemail密碼為1234,使用者資訊為Peter和peter@midomain.com

SIP client設定
而在SIP client端的部份,我選擇使用eyeBeam這套軟體,而eyeBeam的設定很簡
單,只要照下圖紅色框框設定好SIP account和SIP server位址即可

在通話時可看到Asterisk console出現相關訊息,

SIP proxy server和Asterisk各有其優缺點,SIP強在協定簡單,擴充強,且端點可直接連線互傳封包,但SIP對NAT適應力極為薄弱,且頻寬和使用埠數都比Asterisk來的多,Asterisk目前的缺點就是control和data message很多,且某些message又必需透過Asterisk server轉送,使的server端負擔沉重

但隨著越來越多系統廠採用Asterisk的VoIP solution,我相信現在SIP獨大的情況會有所改變

 

標籤: software linux
評論: 6 | 引用: 0 | 閱讀: 18200
  • 1 
Jiom [ 2008-08-14 11:53 | 回覆 | 編輯 刪除 ]
eyeBeam在那下載?
Joey [ 回復於2008-08-19 16:59 郵箱 | 編輯 刪除 ]
ㄜ...請愛用google...畢竟大家用的都是謎之版本..所以.....
wkliang [ 2008-11-05 12:28 網址 | 回覆 | 編輯 刪除 ]
canreinvite 的部份似乎講反了

asterisk 的初始設計就是 IP-PBX
話路剛建立的時候, RTP steram 會繞經 asterisk,
只有 canreinvite 設定為 canreinvite=yes ,
asterisk 才會嘗試讓兩隻腳的 client 直接相互送收 RTP stream.

有些狀況, 即便是設定 canreivite=yes,
asterisk 還是會放棄建立 direct P2P
例如: 兩隻腳的 client 使用不同的 codec
asterisk 必須站在中間做 transcoding
Joey [ 回復於2008-11-10 08:49 郵箱 | 編輯 刪除 ]
謝謝您的提醒,寫錯了這麼久才發現,真不好意思..
swat [ 2008-11-21 16:04 | 回覆 | 編輯 刪除 ]
請問有需要那些linux的套件?
我去網路上看好像是需要gcc kernel-devel zlib zlib-devel openssl openssl-devel
這些的樣子?
Joey [ 回復於2008-11-25 09:08 郵箱 | 編輯 刪除 ]
試著自己編編看asterisk source,您就知道缺那些library....
  • 1 
發表評論
暱 稱: 密 碼:
網 址: E - mail:
驗證碼: 驗證碼圖片 選 項:
頭 像:
內 容: