Sipp

Asterisk Sipp Test3 - 설명 보안

Kimos 2009. 9. 11. 11:44

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>