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:
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:
- 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
- The application starts with asking for the input file containing
configuration parameters. User need to locate the path of the input
file.
- The traffic will be generated automatically following the configuration parameters of the input file.
- 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.
- Call ID : Sequence number of the generated call(long number).
- Start Time : Start time of the call (second).
- End Time : End time of the call (second).
- Call Duration : Duration of the call (second).
- Caller : User from user domain (sip address).
- Receiver : User from user domain (sip address).
- Response : "OK".
- 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,
- '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:
-
Output Format - Output format of the CDR's in the output file.
- 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.
- Ratio of overlapping users from caller set to
receiver set - Ratio of the users who are common to both Caller and
Receiver sets.
-
Observation Window - Traffic Generation period.
-
Start Observation Time - Starting time of traffic generation.
-
End Observation Time - Ending time of traffic generation.
- '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.
-
"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".
-
"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:
- 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".
- There should be the input file named "general-input.properties" containing common configuration parameters.
- Run Script file "generator.sh".
- 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.
- Generated output text files containing traces are stored in folder named '/output'.
- The generated output files under '/output' directory is merged in 'output.txt' file. This file is not ordered.
- 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:
- Set PATH variable - export PATH=$PATH:"Location of the script"
- Define access : chmod 744 generator.sh
- 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:
- Call ID : Sequence number of the generated call(long number).
- Start Time : Start time of the call (second).
- End Time : End time of the call (second).
- Call Duration : Duration of the call (second).
- Caller : User from user domain (sip address).
- Receiver : User from user domain (sip address).
- Response : "OK".
- Response Code : 200 (Code 200 indicates the established call).