顯示具有 SIP Server 標籤的文章。 顯示所有文章
顯示具有 SIP Server 標籤的文章。 顯示所有文章

2011年3月18日 星期五

Asterisk的canreinvite

想要讓兩支分機通話封包直接互相傳送,而不經過Server,藉以藉低伺服器的負擔,可以修改 sip.conf裡分機設定的canreinvite。

reinvite的限制如下:
  • 互通分機需都設成 canreinvite=yes
  • 分機本身必須支援通話所用的 codecs,不能透過 Asterisk 去轉譯
  • extensions.conf裡 Dial() 指令不能包含有 ''t''、''T"、"h"、"H"、"w"、"W"、"L"
還有一個特殊情況是當環境裡需要監聽DTMF時也不能 reinvite,如果要讓部分分機放棄監聽而可以 reinvite 的話,可以試試看在 sip.conf 裡指定 dtmfmode=info

2009年10月8日 星期四

SIP的圖形管理介面:asterisk-gui

使用CentOS系統,已安裝asterisk 1.4

1.安裝svn
yum install subversion

2.使用svn下載asterisk-gui
svn co http://svn.digium.com/svn/asterisk-gui/branches/2.0 asterisk-gui

3.安裝
asterisk-gui
cd asterisk-gui sh configure && make && make install

4.設定網頁環境
vim /etc/asterisk/http.conf
http.conf:

[general]
enabled=yes
bindaddr=0.0.0.0 #指定使用IP
bindport=8088 #指定使用PORT
prefix=asterisk
enablestatic=yes

5.設定登入帳號
vim /etc/asterisk/manager.conf
manager.conf:

[general]
enabled=yes
webenabled=yes
port=5038
bindaddr=0.0.0.0

[admin] #登入ID
secret=admin123 #登入密碼
deny=0.0.0.0/0.0.0.0 #拒絕來源的IP
permit=127.0.0.1/255.255.255.0 #允許來源的IP
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user


  • 執行make checkconfig 可以檢查是否有設定錯誤

2008年10月28日 星期二

Asterisk改Port

1.改SIP註冊PORT
vim /etc//asterisk/sip.conf
bindport=5060

2.改RTP通話PORT
vim /etc/asterisk/rtp.conf
rtpstart=10000
rtpend=20000

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

2008年10月16日 星期四

免費的SIP Server:Asterisk

1.安裝所需套件
yum install gcc gcc-c++ kernel-devel zlib zlib-devel openssl openssl-devel

2.下載asterisk、libpri、zaptel
cd /usr/local/src/
wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.22.tar.gz
wget http://downloads.digium.com/pub/libpri/libpri-1.4.7.tar.gz

wget http://downloads.digium.com/pub/zaptel/zaptel-1.4.12.1.tar.gz

3.安裝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


4.安裝libpri
tar -zxvf libpri-1.4.7.tar.gz
cd /usr/local/src/libpri-1.4.7
make
make install


5.安裝asterisk
tar -zxvf asterisk-1.4.22.tar.gz
cd /usr/local/src/asterisk-1.4.22
./configure

make
make install
make samples

asterisk -vvvc



6.設定分機
vim /etc/asterisk/sip.conf

常用的分機設定有:
[101] ;分機註冊帳號
callerid=ABC
;分機顯示名稱(可不設定)
username=101
;SIP再註冊時使用的帳號(可不設定)
type=friend
;連線的模式,一般話機設成friend
secret=101
;分機註冊密碼
qualify=yes
;驗證模式,只有在type=peer時生效(可不設定)
nat=yes
;是否在NAT下
host=dynamic
;搜尋Client的模式,dynamic由話機主動去註冊或輸入Hostname、IP由SIP Server去連線
dtmfmode=rfc2833
;按鍵訊號模式,預設為rfc2833
context=internal
;設定要用extensions.conf裡哪一組的動作
canreinvite=no
;分機直通或由SIP轉接
callgroup=0
;定義群組,可利用於群組廣播....等(可不設定)
pickupgroup=0
;定義代接群組(可不設定)


[102]
username=102
type=friend
secret=102
qualify=yes
nat=yes
host=dynamic
dtmfmode=rfc2833
context=internal
canreinvite=no


7.設定接通動作
vim /etc/asterisk/extensions.conf
最後面加入設定
[internal]
exten => _X.,1,Dial(SIP/${EXTEN}|30)
exten => _X.,n,Hangup()


說明:
_:代表開頭
X:代表0-9
.:代表任意長度的字元
_X.:指電話號碼是以數字開始不管任何長度
Dial:接通
SIP:線路模式
${EXTEN}:收到的號碼
30:只振鈴等待30秒
Hangup:掛斷

8.設定遠端管理帳號(依需求設定)
vim /etc/asterisk/manager.conf
enabled = yes
最後面增加

[admin] secret=admin deny=0.0.0.0/0.0.0.0 permit=127.0.0.1/255.255.255.0 read = system,call,log,verbose,command,agent,user write = system,call,log,verbose,command,agent,user


telnet localhost 5038到asterisk的管理介面
出現Asterisk Call Manager/1.0
輸入
action: login <enter>
username: admin <enter>

secret: admin <enter>

<enter>

成功登入會出現
Response: Success
Message: Authentication accepted


註:可用免費的X-lite以及BOL SIPPhone來做通話測試

##EasyReadMore##