Raihana Ferdous

Home      |      Research Activity      |      Publications      |      Contact

VoIPTG - VoIP Traffic Generator

VoIP Traffic Generator is a flexible and generic synthetic traffic generator. It is capable to generate traffic following all the possible models of VoIP system with special attention to characterize the more sophisticated user behavior in the system. VoIPTG is able to emulate the real world VoIP traffic including both normal and attack traces.

Currently following versions of VoIPTG are available:

Version No Documentation Download Source
VoIPTG-v1.0.0VoIPTG-v1.0.0.pdfVoIPTG-v1.0.0.tar.gzSource-VoIPTG-v1.0.0
VoIPTG-v2.1.1VoIPTG-v2.1.1.pdfVoIPTG-v2.1.1.tar.gz
Script.tar.gz
Samples
Source-VoIPTG-v2.1.1

VoIPTG-v1.0.0

It is a standalone application which takes a configuration file as input and generates output with Call Detail Records. This version of VoIPTG allows users to generate only good or bad traces. Documentation of VoIPTG-v1.0.0 includes general architechture and features of VoIPTG-v1.0.0.

Download & Install VoIPTG-v1.0.0

The compressed file VoIPTG-v1.0.0.tar.gz contains the .jar file of the application and a sample configuration file named "input.properties". It also includes some sample input and output files for the users to get an idea about the VoIPTG input and output. The application takes the configuration file as input and generates Call Detail Records as output.

After downloading VoIPTG-v1.0.0.tar.gz, users only need to untar it. The name of the .jar file is "TrafficGenerator.jar" and the sample configuration file is named as "input.properties".

Traffic Generation with VoIPTG-v1.0.0

Traffic Generation with VoIPTG-v1.0.0 is simple.

The Configuration File

First step of traffic generation is to prepare the input file with the configuration parameters. Sample input file with configuration parameters named "input.properties" is found along with the .jar file. User can modify this configuration parameters of the input file according to their required user definition and traffic pattern. Chapter 4 of the documentation about VoIPTG-v1.0.0 contains description about the configuration parameters.

Run VoIPTG-v1.0.0/Generate traffic with VoIPTG-v1.0.0

After modification of the input file with configuration parameters, user can start generating traffic with VoIPTG-v1.0.0. The steps are as follows:

  1. VoIPTG-v1.0.0 application can be start by running "TrafficGenerator.jar" file. To run the .jar file with console the following command is needed: java -jar TrafficGenerator.jar In case of huge amount of traffic generation, VoIPTG may face memory problem. The following command line may avoid memory problem: java -jar -Xmx1024m TrafficGenerator.jar
  2. The application starts with asking for the input file containing configuration parameters. User need to locate the path of the input file.
  3. The traffic will be generated automatically following the configuration parameters of the input file.
  4. Generated traces/ Call Detail Records are stored in a text file to the specified output location.

Output File

The output of the VoIPTG-v1.0.0 application contains the generated Call Details Records. The output file is located in the specified output location. An instance of the input file is also stored there with the output. The output file contains the following information for each call.

  1. Call ID : Sequence number of the generated call(long number).
  2. Start Time : Start time of the call (second).
  3. End Time : End time of the call (second).
  4. Call Duration : Duration of the call (second).
  5. Caller : User from user domain (sip address).
  6. Receiver : User from user domain (sip address).
  7. Response : "OK".
  8. Response Code : 200 (Code 200 indicates the established call).

VoIPTG-v2.1.1

The objectives of releasing this version is to generate a combination of good and bad traffic instead of only good or only bad. This version provides the flexibility of defining multiple caller sets with different call generation property. In VoIPTG-v2.1.1 application calls are generated by multiple Caller sets with different call pattern where the calls are directed to a universal Receiver set. This idea replicates the real world traces which may be generate by various callers such as home users, commercial users, spammers .etc. The idea of multiple caller sets introduces the necessity of multiple input files with configuration parameters for defining call generation patter for each caller sets. VoIPTG-v2.1.1 application takes multiple configuration file as input where the generated traces are merged in a single output file.

Download & Install VoIPTG-v2.1.1

The VoIPTG-v2.1.1 application can be downloaded from here. The compressed file VoIPTG-v2.1.1.tar.gz contains the .jar file of the VoIPTG application and configuration files. It also includes sample input files for the users to get an idea about the VoIPTG-v2.1.1 application's input files. After downloading VoIPTG-v2.1.1.tar.gz, users only need to untar it. The name of the .jar file is "TrafficGenerator-v2.1.1.jar". The multiple input files with various caller definition are found under the folder named "/input". The compressed file also includes another sample input file named "general-input.properties" containing general configuration parameters which remain common for the traffic generation process with VoIPTG-v2.1.1 with multiple input files. Sample inputs and merged outputs are found here.

Traffic Generation with VoIPTG-v1.0.0

This version includes a shell script which helps user to generate traffic with VoIPTG-v2.1.1 using multiple configuration files.

The Configuration File

VoIPTG-v2.1.1 uses two configuration files for traffic generation. This version allows traffic generation with multiple configuration files indicating different set of callers while calls are directed to a single receiver set. Here some parameters should be remaining same for the whole traffic generation process. For example, in this application all the generated calls are directed to a single receiver sets and the traffic generation window should be same for each caller sets. So the definition for the receiver set and the traffic generation window should be common in the generation phase. Considering this VoIPTG-v2.1.1 maintains two configuration files for each traffic generation phase,

  1. 'general-input.properties' - This configuration file contains parameters which are common for traffic generation with multiple configuration file indicating multiple caller sets. The common parameters are defined below:
    1. Output Format - Output format of the CDR's in the output file.
    2. Receiver File Name - Name of the file which contains the receiver set. This is a common parameter as for all configuration files, VoIPTG-v2.1.1 maintains single receiver set.
    3. Ratio of overlapping users from caller set to receiver set - Ratio of the users who are common to both Caller and Receiver sets.
    4. Observation Window - Traffic Generation period.
    5. Start Observation Time - Starting time of traffic generation.
    6. End Observation Time - Ending time of traffic generation.
  2. 'input.properties' - This configuration file contains other parameters which can vary to define different caller sets and their call pattern. A detail description of the parameters are found here. . This configuration file includes a special parameter which is used to indicate the type of the generated traffic.
    1. "G=t" - This indicates good traffic. Among the configuration files users need to define on file with "G=t" which means good traffic. The rest of the configuration files must indicates as bad traffic with "G=f".
    2. "G=f" - This indicates bad traffic.
First step of traffic generation is to prepare the input file with configuration parameters. Users can prepare multiple input parameters defining multiple callers description. Samples of the configuration files are located in folder '/input' and user can follow this format to prepare configuration files and should store them the same directory '/input'. The maximum limit of the configuration files for generating traces is 100. The number of configuration files indicates the number of caller classes and also the number of traffic patterns. An instance of "general-input.properties" is also needed to store in the same directory where the .jar file is located.

The script for traffic generation

We have prepared a script to generate traces with multiple configuration files indicating different caller groups. The script "generator.sh "is found here The script loads the configuration files, generates traffic with them and finally merges the output files with a global output file.

Generate Traffic with VoIPTG-v2.1.1

The generation of traffic with multiple configuration files can be done by running the script "generator.sh". The traffic generation steps:

  1. Input files containing configuration parameters for defining different caller patterns should store under folder named '/input'. There can be maximum 100 configuration files. Among the configuration files one should be categorized as good users/good traffic by defining the 'G' property as true, "G=t", others should contain "G=f".
  2. There should be the input file named "general-input.properties" containing common configuration parameters.
  3. Run Script file "generator.sh".
  4. The script first search among the input files under folder '/input' for the one with good user description defined as "G=t". Then it instantiates an instance of VoIPTG-v2.1.1 application and generates the good caller and receiver sets. This instance generates traffic following the call generation property of the good caller set. Then one by one the rest of the input files containing "G=f" definition also instantiate new instances of VoIPTG-v2.1.1. These instances generate the caller sets and instead of generating new receivers set, they directed their calls to the previously generated good receiver set. The generated traces for different configuration files are stored in different text files.
  5. Generated output text files containing traces are stored in folder named '/output'.
  6. The generated output files under '/output' directory is merged in 'output.txt' file. This file is not ordered.
  7. The final merged and ordered file is 'Merged_Output.txt'. It contains all the generated calls ordered by the call start time. This output file is located in the directory where the .jar file is stored.

Run Script

The generation of traffic with multiple configuration files can be done by running the script "generator.sh". The running steps:

  1. Set PATH variable - export PATH=$PATH:"Location of the script"
  2. Define access : chmod 744 generator.sh
  3. Run script : ./generator.sh

Output File

The output of the script is the merged file containing all the generated traffic using multiple configuration files. The name of the output file is "Merged_Output.txt' which is located in the same directory where the .jar file is located. The output file starts with a heading line indicating the path of the input folder. This output file contains the history of the generated calls ordered by starting time. The output file contains the CDR's of the generated traffic where the CDR contains the following information:

  1. Call ID : Sequence number of the generated call(long number).
  2. Start Time : Start time of the call (second).
  3. End Time : End time of the call (second).
  4. Call Duration : Duration of the call (second).
  5. Caller : User from user domain (sip address).
  6. Receiver : User from user domain (sip address).
  7. Response : "OK".
  8. Response Code : 200 (Code 200 indicates the established call).