02
11

SIPp-惡搞SIP的工具

前一陣子被交待要做SIP stack的測試,跟同事討論後又學到一個好東西,SIPp,它是一個很直覺化的工具,只要寫出你要測試的SIP流程,就可以用各種不同的SIP method測試SIP stack.

SIPp強大的地方在於可以自己編寫SIP method script,舉例如下,一個簡單的向SIP server (192.168.15.3)register的script,而register的username和password分別為444

  1. <?xml version="1.0" encoding="ISO-8859-1" ?> 
  2. <!DOCTYPE scenario SYSTEM "sipp.dtd"> 
  3.  
  4. <scenario name="branch_client"> 
  5. <send retrans="0"> 
  6. <![CDATA[
  7.  
  8. REGISTER sip:444@192.168.15.3 SIP/2.0
  9. Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
  10. From: 444 <sip:444@192.168.15.3:[local_port]>;tag=[call_number]
  11. To: 444 <sip:444@192.168.15.3:[local_port]>
  12. Call-ID: [call_id]
  13. CSeq: 1 REGISTER
  14. Contact: sip:444@[local_ip]:[local_port]
  15. Content-Length: 0
  16. Expires: 300
  17.  
  18. ]]> 
  19. </send> 
  20.  
  21. <!-- simple case - just jump over a line --> 
  22.  
  23. <recv response="407" auth="true"> 
  24. </recv> 
  25.  
  26. <send retrans="0"> 
  27. <![CDATA[
  28.  
  29. REGISTER sip:444@192.168.15.3 SIP/2.0
  30. Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
  31. From: 444 <sip:444@192.168.15.3:[local_port]>;tag=[call_number]
  32. To: 444 <sip:444@192.168.15.3:[local_port]>
  33. Contact: sip:444@[local_ip]:[local_port]
  34. [authentication username=444 password=444]
  35. Call-ID: [call_id]
  36. CSeq: 2 REGISTER
  37. Content-Length: 0
  38. Expires: 300
  39.  
  40. ]]> 
  41. </send> 
  42.  
  43.  
  44. <recv response="200"> 
  45. </recv> 
  46. </scenario>

測試這個register script的命令如下,-r 1 和 –rp 1s代表每秒發送一次SIP message,reg.xml這個檔案則是前述的reg.xml,後面接上SIP server的IP和port

sipp -r 1 -rp 1s -sf reg.xml 192.168.15.3:5060


畫面如下,SIPp會把reg.xml內的命令依照順序列出,Messages欄位顯示SIP message發送和接收的次數,Retrans是重傳次數


 
看到這邊有沒有想到什麼?他奶奶的,如果我有字典檔那不就可以暴力測試SIP server那組帳密可以用.真感謝HP發展這個好工具阿,讓”測試SIP”多了無限組的可能
至於針對SIP stack的其它測項請參考這個網頁

標籤: linux
評論: 5 | 引用: 0 | 閱讀: 9871
  • 1 
Dennis [ 2009-06-16 18:16 | 回覆 | 編輯 刪除 ]
HP 後來在windows上搞了個SIPP_GUI,其實就是個xml編譯器,蠻直覺好用的,讓學習sipp xml的速度加快。如果你的平台是Linux或是HP-UX也有Web-front end可以裝。
Joey [ 回復於2009-06-24 19:46 郵箱 | 編輯 刪除 ]
感恩,會去試試
sheng [ 2010-12-14 15:29 | 回覆 | 編輯 刪除 ]
請問你UAS 和UAC都是在同一台host下去做測試的嗎?
因為我這裡一直都在retrans
Joey [ 回復於2010-12-15 09:12 郵箱 | 編輯 刪除 ]
測試用的UAC和UAS在不同台
老吉 [ 2011-06-01 09:55 | 回覆 | 編輯 刪除 ]
謝謝你的範例,我也可以成功的註冊過了,我用的是(Asterisk 1.8.3 + SIPp 3.0 )@CentOS 5.4.
  • 1 
發表評論
暱 稱: 密 碼:
網 址: E - mail:
驗證碼: 驗證碼圖片 選 項:
頭 像:
內 容: