Asterisk Stress 테스트 인 Sipp Test시 녹취가 가능하도록 Pcap 까지 플레이 해주는 방법
1. 환경설정
sip.conf
[general]
progressinband=yes ;와이파이 컬러링 문제 때문에 필요 <- 주석 처리
;;클라이언트 단 Peer 설정
[sippuac]
type=peer
;secret=1111
context=sipptest
username=sippuac
host=XXX.XXX.XXX.XXX
port=5065
dtmfmode=rfc2833
insecure=no
canreinvite=no
nat=no
qualify=no
;;서버 단 Peer 설정
[sippuas]
type=peer
context=sipptest
username=sippuas
host=XXX.XXX.XXX.XXX
port=5066
;dtmfmode=rfc2833
insecure=no
;canreinvite=no
nat=no
qualify=no
extensions.conf
[sipptest]
exten=>s,1,Noop(SIPp Test)
exten=>s,n,Noop(=========================SIPp Test)
;;exten=>s,n,AGI(agi://localhost/managertest.agi)
;exten=>s,n,Dial(SIP/9805&SIP/9806&SIP/9807&SIP/9809,8,twWR)
exten=>s,n,Dial(SIP/9805&SIP/9806&SIP/9807&SIP/9809,8,R)
exten=>s,n,Dial(SIP/sippuas,8)
exten=>s,n,Hangup
2. 실행 명령어
클라이언트 단 실행 명령어
C:\Program Files\Sipp_3.1>sipp -s s -sf pcap.xml -p 5065 -i XXX.XXX.XXX.XXX xxx.xxx.xxx.xxx -r 5 -rp 1000 -nr -mi XXX.XXX.XXX.XXX -mp 6006
서버단 실행 명령어
C:\Program Files\Sipp_3.1>sipp -sn uas -p 5066 -mi XXX.XXX.XXX.XXX -mp 6003 -i XXX.XXX.XXX.XXX -rtp_echo -nr
3. 실행 시나리오 ( 서버는 기본, 클라이언트는 이름부분 수정)
----------------------------- pcap.xml -----------------------------------
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<!-- This program is free software; you can redistribute it and/or -->
<!-- modify it under the terms of the GNU General Public License as -->
<!-- published by the Free Software Foundation; either version 2 of the -->
<!-- License, or (at your option) any later version. -->
<!-- -->
<!-- This program is distributed in the hope that it will be useful, -->
<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of -->
<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
<!-- GNU General Public License for more details. -->
<!-- -->
<!-- You should have received a copy of the GNU General Public License -->
<!-- along with this program; if not, write to the -->
<!-- Free Software Foundation, Inc., -->
<!-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -->
<!-- -->
<!-- Sipp 'uac' scenario with pcap (rtp) play -->
<!-- -->
<scenario name="UAC with media">
<!-- In client mode (sipp placing calls), the Call-ID MUST be -->
<!-- generated by sipp. To do so, use [call_id] keyword. -->
<send retrans="500">
<![CDATA[
INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: sippuas <sip:sippuas@[local_ip]:[local_port]>;tag=[pid]SIPpTag09[call_number]
To: sippuac <sip:[service]@[remote_ip]:[remote_port]>
Call-ID: [call_id]
CSeq: 1 INVITE
Contact: sip:sippuas@[local_ip]:[local_port]
Max-Forwards: 70
Subject: Performance Test
Content-Type: application/sdp
Content-Length: [len]
v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=-
c=IN IP[local_ip_type] [local_ip]
t=0 0
m=audio [auto_media_port] RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-11,16
]]>
</send>
<recv response="100" optional="true">
</recv>
<recv response="180" optional="true">
</recv>
<!-- By adding rrs="true" (Record Route Sets), the route sets -->
<!-- are saved and used for following messages sent. Useful to test -->
<!-- against stateful SIP proxies/B2BUAs. -->
<recv response="200" rtd="true" crlf="true">
</recv>
<!-- Packet lost can be simulated in any send/recv message by -->
<!-- by adding the 'lost = "10"'. Value can be [1-100] percent. -->
<send>
<![CDATA[
ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: sippuas <sip:sippuas@[local_ip]:[local_port]>;tag=[pid]SIPpTag09[call_number]
To: sippuac <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
Call-ID: [call_id]
CSeq: 1 ACK
Contact: sip:sippuas@[local_ip]:[local_port]
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0
]]>
</send>
<!-- Play a pre-recorded PCAP file (RTP stream) -->
<nop>
<action>
<exec play_pcap_audio="pcap/g711a.pcap"/>
</action>
</nop>
<!-- Pause 8 seconds, which is approximately the duration of the -->
<!-- PCAP file -->
<pause milliseconds="20000"/>
<!-- Play an out of band DTMF '1' -->
<nop>
<action>
<exec play_pcap_audio="pcap/dtmf_2833_1.pcap"/>
</action>
</nop>
<pause milliseconds="1000"/>
<!-- The 'crlf' option inserts a blank line in the statistics report. -->
<send retrans="500">
<![CDATA[
BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: sippuas <sip:sippuas@[local_ip]:[local_port]>;tag=[pid]SIPpTag09[call_number]
To: sippuac <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
Call-ID: [call_id]
CSeq: 2 BYE
Contact: sip:sippuas@[local_ip]:[local_port]
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0
]]>
</send>
<recv response="200" crlf="true">
</recv>
<!-- definition of the response time repartition table (unit is ms) -->
<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
<!-- definition of the call length repartition table (unit is ms) -->
<CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
</scenario>