根據SIP協議原理,SIP終端,也就是本文中的數字家庭產品,實現了UAC(User Agent Client)和UAS(UserAgent Server)的功能。SIPserver(本文選用Asterisk)實現了代理服務器、重定向服務器、註冊服務器的功能。
1 .搭建SIP服務器(實現註冊、重定向服務器等功能)
本文選用Asterisk作爲SIP server。
配置/etc/asterisk/sip.conf,主要參數如下:
[general]
port=5060 ; Port to bind to
context=from-sip ; Default context for incoming calls
sendrpid=yes
trustrpid=yes
canreinvite=no
nat=no
dtmfmode=auto
disallow=all
allow=g722
allow=ulaw
allow=alaw
allow=g723.1
;allow=g729
subscribecontext=from-sip
notifyringing=yes
#配置一個sip帳號,username爲:2223,也可以是字母,如:yuna
[2223]
type=friend
host=dynamic
mailbox=2223
username=2223
secret=2223
callgroup=1
pickupgroup=1
call-limit=2
還有配置/etc/adterisk/extension.conf,配置dial plan。
2. 配置UAC
UAC是公司生產的數字終端產品,產品初期,在撥打SIP電話時需要進行簡單的配置,如:username,即撥號的SIP號碼(可以是數字、字母組合);password(即在server中配置的sercret參數值);Proxy(SIP服務器的IP地址,如本文:192.168.10.52)
SIP電話需要網絡支持,本身是基於IP的產品,所有有一個IP地址,本文UAC的IP爲:192.168.10.227
3. 打開wireshark等待抓包
設置過濾條件,只catch從UAC(ip addr==192.168.10.53)發出或接收的數據包。
1)首先UAC向SIPserver(192.168.10.52)發出REGISTER信息
SIP電話的格式是:
- sip:username@UAC_IP
- sip:username@UAC_IP_DNS (如果網絡中有DNS服務器,並配置了UAC_IP對應的域名UAC_IP_DNS)
sip:[email protected] 或 sip:2223@yuna(配置了DNS服務器)
2) 若sipserver 無響應 ,發送100 TRYING消息
3)sip server響應,發送200 OK信息
4) UAC向sipserver註冊成功,server發送NOTIFY通知信息