This manual consist information about how to make Flashphoner stress tests.
We have a special Load tool, which helps you with that.
Load tool bundled as open source Flex project. You can download and build load tool from sources.
See: Downloads page to get sources. See also: Developer guide - how to build load tool
| Flashphoner load tool is in progress now. This manual may have minor differences with real user interface(buttons, fields), but not in configs. |
What is the stress testing
Stress testing is a form of testing that is used to determine the stability of a given system.
It involves testing beyond normal operational capacity, often to a breaking point, in order to observe the results.
We make stress testing to determine the maximum number of calls what one Flashphoner server can handle.
What is the Load tool
Load tool is the special flash application for simulating a large number of calls.
It has several options for customizing the test, and displays the logs during the testing process.
How the Load tool look

Logs
Client logs show what happens now
Users state table
This table show how many users are in each state
- All - total number of users
- Out - non-registered users
- Free - registered users, free of any other state
- Income - users who have incoming call now
- Call - users who make outcoming call now
- Talk - users who talking now
- Sending video - users who send video now
Main parameters section
This is the parameters for main test configure
- Accounts - click to get accounts from general.xml config.
Here you need specify from/to borders of account base for this load tool.
For example, if your set 1-10 - accounts from 1st to 10th from general.xml will be used. - Count of call - interval, how many calls you want to have permanent during the test.

Learn more about Keeping calls number algorithm in the How the Load tool work section. - Min time of call - minumum call duration
- Call self - does user can call to himself?
- Enable video calls - is video calls enabled?
- Apply - click to apply parameters
- Start - click to start the test
- Accounts - click to get accounts from general.xml config.
Users behavior table
In this table we define a model of users behavior in each state.
At the intersection of the "State" line and the "Action" column is the number of percetns. It denotes the percentage of cases in which the user will perform this action in this state.
Learn more about Users behavior algorithm in the How the Load tool work section. There is the list of users actions
- Login - user registers
- Hangup - user hangs up
- Logoff - user unregisters
- Answer - user answers the incoming call
- Call - user calls
- Send video/Stop video - user sends bideo or stops it
- Null - user do nothing
How the Load tool work
Accounts
Load tool use config general.xml as account base. It located in application root folder.
general.xml<?xml version="1.0" encoding="UTF-8"?> <flashphoner_accounts> <from>1</from> <to>300</to> <account_1>sip:[email protected]:5060,2001</account_1> <account_2>sip:[email protected]:5060,2002</account_2> ... <account_999>sip:[email protected]:5060,2999</account_999> <account_1000>sip:[email protected]:5060,3000</account_1000> </flashphoner_accounts>
General test algorithm
During the test each account do random action every 5 seconds.
User action depends on:- Current user state
Different states has different sets of actions. For example in the "Call" state user can`t call, because he already did it. - User behavior model
Based on data from the Users behavior table
- Current user state
States and actions
There are lists of actions for each states. This actions users can do from this states.
- Out - Login, Null
- Free - Logoff, Call, Null
- Income - Hangup, Logoff, Answer, Null
- Call - Hangup, Logoff, Null
- Talk - Hangup, Logoff, Send/Stop video, Null
- Sending video - ...
Users behavior algorithm
For imitation users behavior in real production, we did it customizable.
As was written above, you can specify the percentage of cases in which the user makes a particular action.
For example your User behavior table looks like this:Hangup Logoff Answer Call Send/
Stop
videoNull Free - 5 - 80 - 15 Incom 5 5 80 - - 10 Call 5 5 - - - 90 Talk 5 5 - - 80 10 This means the user will often (80%) Сall when he is Free, almost always (80%) Answer when he has Incoming call, rarely (5%) Hangup during the talk, and quite often (80%) Send his video to the interlocutor.
Thus, you can configure the most natural user behavior.Keeping calls number algorithm
The purpose of the algorithm - to keep the number of calls at the same level (specified in the Count of call parameter) but constantly change people. This approach simulates reality quite well.
Algorithm work like this:- If Calls number < Count of call - in the Incoming state users can do only Answer
- If Calls number ∈ Count of call - in the Incoming state users can do all actions
- If Calls number > Count of call - in the Incoming state users can do only Hangup
"Min call time" parameter
This parameter need to balance load between signaling and media traffic.
- Min time call short (few seconds)
Server mostly will be loaded by the signaling processing.
Users take a new decision every 5 seconds (this option can not be changed), so in this case they will do many connects, and make short talks. - Min time call long (few minutes)
Server mostly will be loaded by the media processing.
Users will rarely make the connection but talk for a long time every time.
The main task of the server will transcode and transmit mediatrafik.
- Min time call short (few seconds)
How to make a stress test
Prepare
You will need
- Flashphoner unlimited license
No need to buy it. Please write us, and we will send you unlimited in connections but limited in time license. - Wowza unlimit license
No need to buy it. Use the Wowza Media Server evaluation license.
You can order it here - 100-300 sip accounts
Most likely it will require your own IP PBX, like Asterisk. You need to generate this accounts or get it from your friendly voip operator (all, top5).
For example, Load tool consist two Asterisk config files, configured to 1000 accounts.- extensions.conf
[default] ;exten=>2001,1,answer() ;exten=>2001,2,background(conf-adminmenu) ;exten=>2001,3,hangup() ;exten=>1,1,playback(digits/1) ;exten=>1,2,goto(default,2001,1) ... exten=>2001,1,Dial(SIP/2001) ...
- sip.conf
[general] bindport=5060 bindaddr=66.666.666.66 context=default dtmfmode=info videosupport=yes allow=all [2001] type=friend secret=2001 host=dynamic canreinvite=no dtmfmode=info nat=yes ...
- Flashphoner unlimited license
Test
We suppose here, that your already have Flashphoner installed and it works good.
If not - please download it, install it and configure it. For assistance check support page or contact us at [email protected]- Download Load tool
Check this on the downloads page - Create sip accounts
You need to create a number of accounts required for the test.
To do this, follow the instructions of your IP PBX - Configure Load tool
- Open flashphoner.xml and set ip of your IP PBX instead of default value
- Configure general.xml as described in the How the Load tool work --> Accounts section
- Configure other parameters accordingly to How the Load tool work section and click Apply to save the parameters
- Configure Flashphoner server
Add to the flashphoner.properties this parameterspeex_g711_speex_transcoding=trueAfter that server will transcodes Flash-to-Flash calls this way: Speex-
>G711->Speex.
If you do not set this parameter in true, server will not transcodes Flash-to-Flash calls at all (both sides support Speex - no need to transcode)
So in this case you could not check how transcode operation load CPU and Memory.
Transcoding added such an artificial way because for tests we use flash application on the both sides. - Click "Accounts" button
After that Load tool will get parameters from general.xml - Click "Start" button
After that tests will started and you will see changing in the Logs and in the Users state table
- Download Load tool
Monitoring the results
During the tests we need to monitor the results, otherwise it all makes no sense.
- Flashphoner logs

Will be updated - Wowza JMX console

Will be updated
- Flashphoner logs