wireshark分析SIP协议——注册

SIP 是VOIP目前非常流行的一种协议。有关协议的详细原理参照相关文档。
 
    本文通过wireshark抓包分析SIP user agent(用户代理客户机,uac)与SIPserve之间的交互过程,在拨打SIP电话之前,先需要搭建相应的环境:
     根据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)发出或接收的数据包。
[转载]wireshark分析SIP协议(一)——注册
   1)首先UAC向SIPserver(192.168.10.52)发出REGISTER信息
[转载]wireshark分析SIP协议(一)——注册
SIP电话的格式是:
  •    sip:username@UAC_IP 
  •    sip:username@UAC_IP_DNS (如果网络中有DNS服务器,并配置了UAC_IP对应的域名UAC_IP_DNS)
如上图所示,sip电话格式为:
sip:[email protected]  或  sip:2223@yuna(配置了DNS服务器)
      2) 若sipserver 无响应 ,发送100 TRYING消息
[转载]wireshark分析SIP协议(一)——注册
    3)sip server响应,发送200 OK信息
[转载]wireshark分析SIP协议(一)——注册
    4) UAC向sipserver注册成功,server发送NOTIFY通知信息
[转载]wireshark分析SIP协议(一)——注册

发布了18 篇原创文章 · 获赞 4 · 访问量 33万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章