Search This Blog

Saturday, 29 March 2014

WireShark Filters with IPaddress & Port

Filter for  ip address:

Ip.addr ==  148.147.XX.XX

Ip.src  == 148.147.XX.XX   (Source IP address filter)

Ip.dst == 148.147.XX.XX      (Destination IP address filter)

Ip.src == 148.147.XX.XX &&  Ip.dst == 148.147.XX.XX  (Source and destination IP address filter)

Filter for Port:

Tcp.port == XXX  (TCP port filter)

Udp.port == XXX  (UDP Port filter)

Tcp.srcport==XXX (TCP port filter for source)

Udp.srcport==XXX  (TCP port filter for source)

Tcp.dstport==XXX(TCP port filter for destination)

Udp.dstport==XXX(UDP port filter for destination)

Sunday, 9 March 2014

SIPp Commands

SIPp Commands:

Register  UAC

sudo ./sipp 1XX.1XX.2XX.2XX(Server IP) -t u1 -sf  Register.xml -inf  Register.csv -i 1XX.1XX.2XX.1XX (Local IP) -m 1 -trace_err -trace_msg -trace_logs 

Invite UAC

sudo ./sipp 1XX.1XX.2XX.2XX(Server IP) -t u1 -sf  Invite.xml -inf  Invite.csv -i 1XX.1XX.2XX.1XX (Local IP) -m 1 -trace_err -trace_msg -trace_logs

Register UAS

./sipp -sn Register.xml


Invite UAS

./sipp -sn Invite.xml



Use Command for 1000 Calls:-


sudo ./sipp 1XX.1XX.2XX.2XX(Server IP) -t u1 -sf  Invite.xml -inf  Invite.csv -i 1XX.1XX.2XX.1XX (Local IP) -m 1000 -l 10 -r 10 -rp 10000 -trace_err -trace_msg -trace_logs

-m   = Max number of calls you want generate (100,1000...etc)

-l    = Max Concurrent calls you want to generate , If Max number of call is high it may take more time to generate 

Example:-

-r   = Set the Call rate per second

-rp  =  rate period in milliseconds for call rate.

Example:-   -r 10  -rp 10000   =>   This means 10 calls for every 10 secs.


Register.XML UAS as Server Mode

Register.XML UAS as Server Mode


<?xml version="1.0" encoding="ISO-8859-1" ?>

<scenario name="Register UAS">
<recv request="REGISTER" />
<send><![CDATA[
      SIP/2.0 401 Authorization Required
      [last_Via:]
      [last_From:]
      [last_To:];tag=[pid]SIPpTag01[call_number]
      [last_Call-ID:]
      [last_CSeq:]
      Contact: <sip:[local_ip]:[local_port];transport=[transport]>
      WWW-Authenticate: Digest realm="test.example.com", nonce="47ebe028cda119c35d4877b383027d28da013815"
      Content-Length: [len]

    ]]>
  </send>
  <recv request="REGISTER" />
  </recv>
  <send retrans="500">
    <![CDATA[

       SIP/2.0 200 OK
      [last_Via:]
      [last_From:]
      [last_To:];tag=[call_number]
      [last_Call-ID:]
      [last_CSeq:]
      Contact: <sip:[local_ip]:[local_port];transport=[transport]>
      Content-Type: application/sdp
      Content-Length: 136
    ]]>
  </send>



Sunday, 2 March 2014

SIPP(Invite.xml) as UAS Server mode



UAS  -  INVITE.xml :



<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">

<!-- You will need to compile SIPp with OpenSSL support 'make ossl' to use this call scenario -->

<!-- Execute this script with SIPp using the following command assuming your UAS is 10.0.0.10 -->
<!-- Replace 10.0.0.10 with your SIP proxy’s address. The command will generate 10 calls (-r) per 10000 -->
<!-- milliseconds (-rp), max 100 concurrent calls (-l) and make a max of 100000 calls (-m) -->

<!-- ./sipp 10.0.0.10 -sf invite-auth-sdp-nomedia.xml -inf user-accounts.csv -m 100000 -l 100 -r 10 -rp 10000 -->

<scenario name="UAS INVITE">
 <recv request="INVITE" crlf="true">
      </recv>
 
   <!-- send 180 then trying if variable 3 is set -->
    <send>
    <![CDATA[

       SIP/2.0 180 Ringing
       [last_Via:]
       [last_From:]
      [last_To:];tag=[call_number]
      [last_Call-ID:]
      [last_CSeq:]
      Contact: <sip:[local_ip]:[local_port];transport=[transport]>
      Content-Length: 0

    ]]>
    </send>

  <send retrans="500">
    <![CDATA[

       SIP/2.0 200 OK
      [last_Via:]
      [last_From:]
      [last_To:];tag=[call_number]
      [last_Call-ID:]
      [last_CSeq:]
      Contact: <sip:[local_ip]:[local_port];transport=[transport]>
      Content-Type: application/sdp
      Content-Length: 136

      v=0
     o=user1 53655765 2353687637 IN IP4 127.0.0.1
      s=-
      t=0 0
      c=IN IP4 [media_ip]
      m=audio [media_port] RTP/AVP 0
      a=rtpmap:0 PCMU/8000

    ]]>
  </send>
<recv request="ACK"
       optional="true"
        rtd="true"
       crlf="true">
  </recv>

  <recv request="BYE">
  </recv>

  <send>
    <![CDATA[

     SIP/2.0 200 OK
     [last_Via:]
      [last_From:]
     [last_To:];tag=[call_number]
     [last_Call-ID:]
     [last_CSeq:]
     Contact: <sip:[local_ip]:[local_port];transport=[transport]>
      Content-Length: 0

    ]]>
 </send>

  <!-- 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>

Saturday, 18 January 2014

SIPp Scripts(Register.xml and Invite.xml)UAC

****SIPp Scripts*****:

Register UAC:

Register.csv :

Register.csv file should contain the User data in below format

SEQUENTIAL
1000;10.XXX.XXX.XX;[authentication username=1000 password=123456];




Register.xml:

Register.xml file should contain  below messages

<?xml version="1.0" encoding="ISO-8859-1" ?>

<scenario name="register_client">
  <send retrans="500">
    <![CDATA[

      REGISTER sip:[remote_ip] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
      From: <sip:[field0]@[field1]>;tag=[call_number]
      To: <sip:[field0]@[field1]>
      Call-ID: [call_id]
      CSeq: 1 REGISTER
      Contact: sip:[field0]@[local_ip]:[local_port]
      Max-Forwards: 70
      Expires: 1800
      User-Agent: SIPp/Linux
      Content-Length: 0

    ]]>
  </send>

  <recv response="401" auth="true">
  </recv>

  <send retrans="500">
    <![CDATA[

      REGISTER sip:[remote_ip] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
      From: <sip:[field0]@[field1]>;tag=[call_number]
      To: <sip:[field0]@[field1]>

      Call-ID: [call_id]
      CSeq: 2 REGISTER
      Contact: sip:[field0]@[local_ip]:[local_port]
      [authentication username=21613 password=123456]
      Max-Forwards: 70
      Expires: 1800
      User-Agent: SIPp/Linux
      Content-Length: 0

    ]]>
  </send>

  <recv response="200" rtd="true">
  </recv>
 
</scenario>



INVITE UAC :

Invite.CSV:

SEQUENTIAL
1000;10.XXX.XXX.XXX;[authentication username=1000 password=123456];1001;
  
INVITE.XML

Invite.xml should contain below message format 


<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">

<!-- You will need to compile SIPp with OpenSSL support 'make ossl' to use this call scenario -->

<!-- Execute this script with SIPp using the following command assuming your UAS is 10.0.0.10 -->
<!-- Replace 10.0.0.10 with your SIP proxy’s address. The command will generate 10 calls (-r) per 10000 -->
<!-- milliseconds (-rp), max 100 concurrent calls (-l) and make a max of 100000 calls (-m) -->

<!-- ./sipp 10.0.0.10 -sf invite-auth-sdp-nomedia.xml -inf user-accounts.csv -m 100000 -l 100 -r 10 -rp 10000 -->

<scenario name="UAC INvite    ">
  <send retrans="500" start_txn="invite">
    <![CDATA[

INVITE sip:[field3]@[field1]:[remote_port] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
To: sut <sip:[field3]@[field1]:[remote_port]>
Call-ID: [call_id]
CSeq: [cseq] INVITE
Contact: <sip:sipp@[local_ip]:[local_port]>
Max-Forwards: 70
Subject: Performance Test
User-Agent: SIPp Tester UAC
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Content-Type: application/sdp
Content-Length: [len]

v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=-
c=IN IP[media_ip_type] [media_ip]
t=0 0
m=audio [media_port] RTP/AVP 0
a=rtpmap:0 PCMU/8000


]]>
  </send>

  <recv response="100" optional="true" response_txn="invite">
  </recv>

  <recv response="180" optional="true" response_txn="invite">
  </recv>

 
  <recv response="200" rtd="true" rrs="true" response_txn="invite">
       
  </recv>

   <send ack_txn="invite">
    <![CDATA[

ACK sip:[field3]@[field1]:[remote_port] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch-3]
From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
[last_To]
[routes]
Call-ID: [call_id]
CSeq: [cseq] ACK
Contact: <sip:sipp@[local_ip]:[local_port]>
Max-Forwards: 70
Subject: Performance Test
User-Agent: SIPp Tester UAC
Content-Length: 0

]]>
  </send>
 <pause milliseconds="10000"/>
 <send retrans="500">
    <![CDATA[
BYE sip:[field3]@[field1]:[remote_port] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
[last_To]
Call-ID: [call_id]
CSeq: [cseq] BYE
Contact: <sip:sipp@[local_ip]:[local_port]>
Max-Forwards: 70
Subject: Performance Test
User-Agent: SIPp Tester UAC
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>




Video Tutorial SIPp:



Sunday, 5 January 2014

IMS (IP MULTIMEDIA SUBSYSTEM)

                                 IP MULTIMEDIA SUBSYSTEM (IMS)

Why do we need the IMS?
 
                              The Main idea of the IMS is to offer Internet services everywhere and at any time using cellular technologies. we need to further clarify what we mean by merging the Internet and the cellular worlds and what the real advantages of doing so are. To do that, we need to introduce the different domains in 3G networks, namely the circuit-switched domain and the packet -switched domain.
The circuit-switched domain is an evolution of the technology used in 2G networks.The circuits in this domain are optimized to transport voice and video, although they can also be used to transport instant messages. The current trend is to substitute it with more efficient packet-switch technology.
                             The packet-switched domain provides I access to the Internet. While 2G terminals can act as a modem to transmit IP packets over a circuit, 3G terminals  use native packet-switched technology to perform data communications. This way, data transmissions are much faster and the available bandwidth for Internet access increases dramatically.
                             Why do we need the IMS, if all the power of the Internet is already available for 3G users through the packet-switched domain? The answer is threefold: QoS (Quality of Service), charging, and integration of different services. One of the reasons for creating the IMS was to provide the QoS required for enjoying, rather than suffering, real-time multimedia sessions.
                               Another reason for creating the IMS was being able to charge multimedia sessions appropriately. A user involved in videoconference over the  packet-switched domain usually transfers a large amount of information (which consists mainly of encoded audio and video). Depending on the 3G operator, the transfer of such an amount of data may generate large expenses for the user, since operators typically charge by the number of bytes transferred. The IMS provides information about the service being invoked by the user, and with this information the operator decides whether to use a flat rate for the service, apply traditional time-based charging, apply QoS-based charging, or perform any new type of charging.
                               In addition, users have to be able to execute all their services when roaming as well as from their home networks. To achieve these goals the IMS uses Internet technologies and Internet protocols.
 

 

General Principles of the IMS Architecture

GSM has two different modes of operation: circuit-switched and packet-switched.
 
GSM circuit-switched : The GSM circuit-switched network uses circuit-switched technologies, which are also used in the PSTN (Public Switched Telephone Network).
Circuit-switched networks have two different planes:
 
 
 

Wednesday, 25 December 2013

Installing SIPp on Windows

SIPp on Windows:


Pre-Requisite Downloads:-

Download the following Installation files from the following links:

1)  https://cygwin.com/install.html  - Cygwin
2) https://sourceforge.net/projects/sipp/files/sipp/3.2/sipp-win32-3.2-setup.exe  -   Sipp-win-XXX.exe  

Procedure:

1)   First start installing Cygwin

2)  Select the root install directory (by default, C:/cygwin) and then click the button “Next”.Select local package directory and then click the button “Next”.

3)  Choose the connection method. In this example, “Direct Connection” is selected and then the button “Next”.

4) Choose a mirror site and the click the button “Next”. (chose http://ftp.daum.net).

5)  Enter the below packages in search box, default 3 to 4 list are displayed with Skip, select them and check the box under "bin" for all packages below:-

 Select packages to install .
 vim
 gcc-core
 gcc-g++
gcc
libncurses


6) Cygwin setup is done.

7)  After installation the folder structure is created     C://cygwin

8)  Run the sipp installation  file, during  installation select  the  location as   C://cygwin/Sipp

9)  After installation go to  C://cygwin/ and open the "terminal.bat"  file.
 
10)  gcc --version

11)  make --version

12) Browse http://www.openssl.org/         , Click the button “Source ”

13)  Download the latest version of OpenSSL.  Copy the downloaded OpenSSL source into “home” subfolder of the folder where “cygwin” is installed (eg, C:/cygwin/)

14 )  Run “cygwin” and then do the followings:
               $ cd /home $ tar zxvf openssl-x.x.x.tar.gz

15)         $ cd /home/openssl-x.x.x $  ./config

16)         $ cd /home/openssl-x.x.x $  make

17)       $ cd /home/openssl-x.x.x $ make test

18)      $ cd /home/openssl-x.x.x $ make install

19)     Check if the following three files show up  inside Openssl-XXX.X folder : –
               Execution file: openssl – Library files: libssl.a, libcrypto.a 32

20)  To compile SIPp on Windows with pcap (media support), you must:
  • Copy the WinPcap developer package to "C:\cygwin\lib\WpdPack"
  • Remove or rename "pthread.h" in "C:\cygwin\lib\WpdPack\Include", as it interfers with pthread.h from cygwin
21)  SIPp compiles under CYGWIN on Windows.

22) Goto   C://cygwin  and click   terminal.bat  file

23)   Compile
            # cd sipp
            # ./configure --with-pcap
            #  make pcapplay_ossl or make pcap

24) ./sipp XXX.XX.XX.XXX -sf REGISTER_client.xml -inf Register_client.csv -m 1



REST API

  API  is an application programming interface. It is a set of rules that allow programs to talk to each other. The developer creates the AP...