2008年4月16日 星期三

How to use SIPp--an example
如何使用SIPp

在做SIP測試的人都一定知道SIPp這套自動撥打工具,此工具由HP內部工程師所撰寫,就一般使用者而言,這套工具算是黃金級的測試工具,因為免費又好用!

原始網站連結: http://sipp.sourceforge.net/

以下我們以Debian 4.0 (RC3)這個作業系統做為安裝的平台

安裝前準備工作:
在開始安裝SIPp前,如果是全新安裝Debian,則必需在Linux中把以下套件安裝上去

1. C++ Compiler
2. curses or ncurses library
3. For authentication and TLS support: OpenSSL >= 0.9.8
4. For pcap play support: libpcap and libnet For distributed pauses: Gnu Scientific Libraries

其中第3點的OpenSSL尤其重要,請務必到OpenSSL網站Download OpenSSL 0.98版本,此處以0.98g做為說明,在安裝OpenSSL時請使用俱備root權力的帳號安裝OpenSSL OpenSLL

Download OpenSLL網站
http://www.openssl.org/source/
http://www.openssl.org/source/openssl-0.9.8g.tar.gz

Download SIPp
http://sourceforge.net/project/showfiles.php?group_id=104305
此處所使用的版本是用3.0版本 sipp-3.0.src.tar.gz

Install SIPp SIPp網站提供四種方式的安裝,個別的差異請自行到SIPp網站查閱,此處以第四種方式安裝

Without TLS (Transport Layer Security) and authentication support:
This is the recommended setup if you don't need to handle SIP authentication and/or TLS. In this case, there are no depencies to install before building SIPp. It is straight forward:

# gunzip sipp-xxx.tar.gz
# tar -xvf sipp-xxx.tar
# cd sipp
# make

With TLS and authentication support, you must have installed OpenSSL library (>=0.9.8) (which may come with your system). Building SIPp consist only in adding the "ossl" option to the make command:

# gunzip sipp-xxx.tar.gz
# tar -xvf sipp-xxx.tar
# cd sipp
# make ossl

With PCAP play and without authentication support:

# gunzip sipp-xxx.tar.gz
# tar -xvf sipp-xxx.tar
# cd sipp
# make pcapplay

With PCAP play and authentication support: (此處使用的方式)

# gunzip sipp-xxx.tar.gz
# tar -xvf sipp-xxx.tar
# cd sipp
# make pcapplay_ossl


撰寫XML SIPp能夠運作一定要有一個簡單的xml腳本再搭配它的指令才能運作,而一般的情形是需要另一個*.csv檔案更能發揮其作用

我們提供一個簡單的腳本
請由此處Download.....uac-callpersec.xml (file name: uac-callpersec.xml)

腳本描述
Caller(A)       SIP Proxy
192.168.1.86     192.168.1.2
(local_IP)      (remote_IP)
     INVITE-->  
     407<------      ACK------>
     INVITE-->
     100<------      180<------      200<------      ACK------>
     Pause[5000ms]
     Send DTMF "3"
     Pause[1000ms]
     Send DTMF "2"
     Pause[1000ms]
     Send DTMF "5"
     Pause[5000ms]
     ACK------>
     200<------ 執行方式:
1. 請以root身份進入終端機
2. 進入SIPp所在的folder
3. Copy uac-callpersec.xml到SIPp所在的folder
4. Download peer_list.csv file (file name:peer_list.csv)
5. Copy peer_list.csv到SIPp所在的foler
6. 輸入下列指令

./sipp 192.168.1.2 -sf uac-callpersec.xml -i 192.168.1.86 -inf peer_list.csv -l 5

./sipp:是執行sipp的指令
192.168.1.2:是相對應在uac-callpersec.xml中的 remote_ip參數

-sf :當執行時需要讀入一個 xml檔案時,則需要下這個參數
-i 192.168.1.86 :是相對應在uac-callpersec.xml中的 local_ip參數
-inf :是相對應在uac-callpersec.xml中的[field0]參數
-l :指的是呼叫的限制次數,在這裡是5

建議
1. 各位把SIPp官方網站的文件download仔細閱讀,尤其在它能搭配的參數,其實還蠻多的
2. 要能清楚瞭解SIP呼叫模型,才能在xml中清楚定義

沒有留言: