版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
[Typetext][Typetext]SIP服務(wù)器性能測試工具SIPp使用指導Contents1 安裝及概述: 11.1 SIPp安裝 11.2 SIPp使用 31.2.1 uac.bat: 31.2.2 data.csv: 41.2.3 uac.xml: 42 常見問題: 82.1 uas.bat 82.2 uas.xml 93 操作截圖: 133.1 uac: 133.2 uas: 15安裝及概述:SIPp是一個測試SIP協(xié)議性能的工具軟件。這是一個GPL的開放源碼軟件。它包含了一些基本的SipStone用戶代理工作流程(UAC和UAS),并可使用INVITE和BYE建立和釋放多個呼叫。它也可以讀XML的場景文件,即描述任何性能測試的配置文件。它能動態(tài)顯示測試運行的統(tǒng)計數(shù)據(jù)(呼叫速率、信號來回的延遲,以及消息統(tǒng)計)。周期性地把CSV統(tǒng)計數(shù)據(jù)轉(zhuǎn)儲,在多個套接字上的TCP和UDP,利用重新傳輸管理的多路復用。在場景定義文件中可以使用正規(guī)表達式,動態(tài)調(diào)整呼叫速率。SIPp可以用來測試許多真實的SIP設(shè)備,如SIP代理,B2BUAs,SIP媒體服務(wù)器,SIP/x網(wǎng)關(guān),SIPPBX,等等,它也可以模仿上千個SIP代理呼叫你的SIP系統(tǒng)。SIPp的網(wǎng)址:/,這里可以下載最新版的SIPp軟件,并且有英文資料可供查閱。SIPp安裝SIPp提供Linux,Windows和HPUX平臺的版本。Windows平臺上的安裝很簡單,下面說一下Linux下的安裝。首先,可以從/projects/sipp/files/sipp/3.2/下載最新版的SIPp,解壓之后就得到一個rpm文件,你可以使用rpm命令來完成安裝。如果你拿到的是綠色版的SIPp,那么你需要對其重新編譯才能使用。SIPp是用C++寫的,因此系統(tǒng)必須支持G++才可成功編譯。SIPp支持四種不同的安裝模式:1)沒有TLS支持與密碼驗證支持:a)#tar-xvfsipp-1.1rc6.tar.gzb)#cdsipp-1.1.rc6c)#makeMake出來的sipp文件就是一個可執(zhí)行的文件,只需要搭配場景xml文件與csv文件即可進行SIP測試,這是最常用的安裝。2)擁有TLS支持與密碼驗證支持,但是不支PCAP語音播放:a)#tar-xvfsipp-1.1rc6.tar.gzb)#cdsipp-1.1.rc6c)#makeossl這樣編譯出來的文件就加入了TLS至于與密碼驗證支持功能sipp軟件了。3)支持PCAPPlay,但是沒有密碼驗證支持:(PCAPPlay即為可以進行RTP語音,但是沒有407AUTH驗證)a)#tar-xvfsipp-1.1rc6.tar.gzb)#cdsipp-1.1.rc6c)#makepcapplay4)支持PCAP聲音文件播放,而且支持密碼驗證支持:(支持407auth驗證支持)a)#tar-xvfsipp-1.1rc6.tarb)#cdsipp-1.1.rc6c)#makepcapplay_osslSIPp使用用SIPp做測試的時候需要準備五個文件:uac.bat,uas.bat,uac.xml,uas.xml,data.csv。uac.bat:調(diào)用sipp命令,并傳入相應參數(shù)的批處理文件,模擬UAC(例如主叫)。uas.bat:調(diào)用sipp命令,并傳入相應參數(shù)的批處理文件,模擬UAS(例如被叫),當然也可不準備此文件直接輸入sipp命令執(zhí)行程序,但是寫成文件執(zhí)行更加方便可靠。uac.xml:根據(jù)需要編寫的uac側(cè)的sip信號流程。uas.xml:根據(jù)需要編寫的uas側(cè)的sip信號流程。data.csv:用于uac.xml和uas.xml中需要引入的相應數(shù)據(jù)。下面就舉例來說明這五個文件的編寫方法和用法。uac.bat:例:sipp-snuac:5060-r1-rp3000-infdata.csv-p7098-i42-s8001-sfuac_onecall.xml–m1000–l900各個參數(shù)說明::5060:遠端地址和端口(在腳本中用[remote_ip],[remote_port]引入)-r1-rp3000:每三秒鐘發(fā)一個呼-infdata.csv:引入數(shù)據(jù)配置文件-p7098:本地端口(在腳本中用[local_port]引入)-i42:本地地址(在腳本中用[local_ip]引入)-s8001:被叫號碼(在腳本中用[service]引入)-sfuac_onecall.xml:引入腳本文件,根據(jù)需要模擬的呼叫流程編寫-snuac:執(zhí)行默認的uac流程,如需執(zhí)行自己編寫的流程文件,命令中應不含此參數(shù)-m1000:發(fā)送1000次呼叫后停止并退出。-l900:最大同時保持呼叫量,默認值為3*caps值*呼叫時長,當因種種原因?qū)е卢F(xiàn)存呼叫總數(shù)達到此值時,SIPp將停止產(chǎn)生新的呼叫,等待現(xiàn)存呼叫總數(shù)低于此值時才繼續(xù)產(chǎn)生呼叫。data.csv:例:SEQUENTIAL8000;第一行為取號碼方式,通常為SEQUENTIAL或RANDOM此例中只有一個數(shù)據(jù),引入時用[field0],如果有多個數(shù)據(jù),用分號隔開,在引用時編號遞增如[field1],[field2]。uac.xml:例:<scenarioname="branch_client"><sendretrans="500"><![CDATA[INVITEsip:[service]@[remote_ip]SIP/2.0Via:SIP/2.0/[transport][local_ip]:[local_port];branch=[branch];rportAllow:INVITE,CANCEL,ACK,BYE,OPTIONS,REFER,NOTIFY,MESSAGE,SUBSCRIBE,INFOFrom:"[field0]"<sip:[field0]@[local_ip]>;tag=[call_number]To:"[service]"<sip:[service]@[remote_ip]>Call-ID:[call_id]CSeq:1INVITEContact:<sip:[field0]@[local_ip]:[local_port]>Max-Forwards:70Content-Type:application/sdpContent-Length:[len]v=0o=[field0]00INIP4[local_ip]s=SIPCallt=00c=INIP4[local_ip]m=audio[media_port]RTP/AVP0a=rtpmap:0PCMU/8000]]></send>注:1.需要sipp命令賦值的參數(shù),請參考關(guān)于uac.bat的說明[local_ip]、[local_port]、[remote_ip]、[remote_port]、[service]2.sipp自動檢測生成的參數(shù):[call_number]、[call_id]、[cseq]、[len]、[branch]3.從數(shù)據(jù)配置文件引入的參數(shù),請參考data.csv,第一個值為field04.CSeq:1INVITE:此處本來應該寫成CSeq:[cseq]INVITE,而在對應的ACK中寫成CSeq:[cseq]ACK,但在INVITE和ACK的中間夾雜有PRACK的時候,ACK如果寫成上述形式,將不能與INVITE對應,所以可以寫死。5.在測試業(yè)務(wù)時,應在頭域中添加<Route:被叫側(cè)地址>以保證呼叫會從AS路由到被叫,否則AS會發(fā)消息到默認的地址。<recvresponse="100"optional="true"></recv>注:按照預期,發(fā)出INVITE之后有可能受到100Trying,也有可能收不到,所以加上可選標記<recvresponse="180"></recv>注:此時如果收到180以外的響應,會異常退出。<recvresponse="200"></recv><send><![CDATA[ACKsip:[service]@[remote_ip]SIP/2.0Via:SIP/2.0/[transport][local_ip]:[local_port];branch=[branch];rport[last_From:][last_To:]Call-ID:[call_id]Contact:<sip:[field0]@[local_ip]:[local_port]>CSeq:1ACKMax-Forwards:70Content-Length:0]]></send>注:發(fā)送請求的時候不需要也不可能重新填寫所有字段(比如說From字段是不需要,因為一個dialog里的From字段都是相同的;而To字段是沒辦法自己填寫,必需從上一個響應中引入,因為To-tag是遠端加上的,本地并不知道),所以可以用[last_字段名]的方式從上一個消息中取得。通常From,To字段從上一個消息中取得,200的ACK時,Via從初始INVITE拷貝就可以,此時branch參數(shù)會自動生成跟初始INVITE不一樣的值;非200的ACK時,采用從上一個消息引入的方式。<pausemilliseconds="30000"/>注:在通話狀態(tài)維持30秒,以模擬實際通話持續(xù)通話的時間。<nop><action><execplay_pcap_audio="C:\711.pcap"/><execplay_pcap_video="C:\h263.pcap"/></action></nop>注:在通話狀態(tài)如果有需要的話可以發(fā)送媒體流。前提是在相應的目錄下有媒體流文件<sendretrans="500"><![CDATA[BYEsip:[service]@[remote_ip]SIP/2.0Via:SIP/2.0/[transport][local_ip]:[local_port];branch=[branch];rport[last_From:][last_To:]Call-ID:[call_id]CSeq:2BYEMax-Forwards:70Content-Length:0]]></send>注:加入retrans參數(shù)之后可在沒收到響應的情況下,在設(shè)定的時間之后重傳,此例中為500毫秒。<recvresponse="200"></recv><pausemilliseconds="3000"/><!--definitionoftheresponsetimerepartitiontable(unitisms)--><ResponseTimeRepartitionvalue="10,20,30,40,50,100,150,200"/><!--definitionofthecalllengthrepartitiontable(unitisms)--><CallLengthRepartitionvalue="10,50,100,500,1000,5000,10000"/></scenario>常見問題:1.Unabletobindmainsocket,errno=125。想綁定的本地端口已經(jīng)被占用,換一個應該就可以了。2、whileexpecting'180'response,received'SIP/2.0200OK腳本中在發(fā)出INVITE之后要收100或者180,結(jié)果直接就收到了200??梢栽?80后面也加上optional="true"就行。3、消息發(fā)出后無響應需要確認遠端即服務(wù)器端系統(tǒng)正常,并且uac.bat中的遠端地址和端口正確,另外可能需要將本地地址加入為服務(wù)器的可信節(jié)點。4、Can'topenPCAPfile'711.pcap'.需要確認媒體流文件確實存在且路徑正確,并且媒體流文件可用。uas.bat例:sipp-snuac:5060-infdata.csv-i42-p8890-s8001-sfuas_onecall.xml關(guān)于各個參數(shù)的說明請參考uac.bat的說明uas.xml例:<scenarioname="branch_server"><recvrequest="INVITE"><action> <eregregexp=".*"search_in="hdr"header="CSeq:"assign_to="6"/> <eregregexp=".*"search_in="hdr"header=“Via:"assign_to="5"/></action></recv>正則表達式使用說明:在本例中原本是不需要使用的,但在很多情況下需要使用,所以列出來說明一下。當sequence中帶有PRACK時,UAS發(fā)送INVITE的200OK時,某些字段(比如Via和Cseq)則不能使用[last_字段名]方式從上一個收到的消息中引入,因為此時上一個消息是PRACK,而不是INVITE,所以需要先將INVITE的這兩個字段保存下來供以后使用。上面的用法便是將INVITE的CSeq字段的值保存為數(shù)字6,在以后發(fā)送INVITE的200OK的時候使用,方式為:CSeq:[$6]<send><![CDATA[SIP/2.0100Trying[last_Via:][last_From:][last_To:][last_Call-ID:][last_CSeq:]Content-Length:0]]></send>注:基本上所有的字段都可以從上一個消息中引入。<send><![CDATA[SIP/2.0180Ringing[last_Via:][last_From:][last_To:];tag=[call_number][last_Call-ID:][last_CSeq:][last_Record-Route:]Contact:<sip:[local_ip]:[local_port]>P-Asserted-Identity:"[service]"<sip:[service]@[local_ip]>Content-Length:[len]]]></send>注:To字段從上一個消息中引入的時候,需要添加To-tag,call_number為sipp自動生成的,在連續(xù)呼叫的時候會加1。從上一個消息引入相關(guān)字段的時候,如果上一個消息沒有這個字段,則在本消息中也不會有。<pausemilliseconds="5000"/><send><![CDATA[SIP/2.0200OK[last_Via:]Allow:INVITE,CANCEL,ACK,BYE[last_From:][last_To:];tag=[call_number][last_Call-ID:][last_CSeq:][last_Record-Route:]Contact:<sip:[local_ip]:[local_port]>P-Asserted-Identity:"[service]"<sip:[service]@[local_ip]>Content-Type:application/sdpContent-Length:[len]v=0o=[service]00INIP4[local_ip]s=SIPCallt=00c=INIP4[local_ip]m=audio10000RTP/AVP0a=rtpmap:0PCMU/8000]]></send>注:100,180,200的上一個消息都是INVITE消息,所以此時To字段中還是要加入To-tag,并且在一個dialog中call_number是相同的,所以能與180的To-tag保持一致。<recvrequest="ACK"></recv><recvrequest="BYE"></recv><send><![CDATA[SIP/2.0200OK[last_Via:][last_From:][last_To:][last_Call-ID:][last_CSeq:]Contact:<sip:[local_ip]:[local_port];transport=[transport]>Cont
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 逆天作文題目及答案
- 輸煤系統(tǒng)生產(chǎn)工作聯(lián)系制度
- 數(shù)據(jù)挖掘算法簡明指南
- 超市配送員排班制度
- 血透室??坪艚嗅t(yī)生標準制度
- 2025年山東事業(yè)單位備考考試及答案
- 2025年臺州市人才發(fā)展集團筆試及答案
- 2025年助理會計師筆試及答案
- 2025年用友財務(wù)信息化專員筆試及答案
- 2025年亳州市醫(yī)療事業(yè)單位考試及答案
- 幼兒冬季飲食保健知識
- 教育授權(quán)協(xié)議書范本
- 放射科CT檢查造影劑使用要點
- 獨立儲能項目竣工驗收方案
- 中職無人機測繪課件
- 輸入性瘧疾宣傳課件
- 工藝聯(lián)鎖-報警管理制度
- 基層醫(yī)療人員個人工作自查報告范文
- 中國舞蹈史唐代舞蹈課件
- 客戶投訴理賠管理制度
- 國家職業(yè)標準 4-07-03-02 勞動關(guān)系協(xié)調(diào)師 (2025年版)
評論
0/150
提交評論