StarTrinity.com

VoIP software

VoIP community

VoIP marketplace


logged in as
log out

SIP Tester Tutorial

Software architecture
Basic steps for active testing
Basic steps for passive testing (monitoring) or VoIP recording
Installation
Main window
UAC registrations
UAS registrations
Outgoing SIP calls
Incoming SIP calls
Current calls report: SIP information
Current calls report: RTP information
Call Detail Record (CDR) report
Lowest quality calls
Reports/Statistics
Performance chart
Stepwise testing
Manual tests
Impairments generation
Settings
Log
Scaling
License information
Command line interface
Web API
Screen recordings
Report unclarity

Basic steps for active testing

Basic steps to run a simple active SIP stress test using graphical user interface (GUI) are:

Alternatively you can use command line interface (CLI) with .bat scripts or windows service mode (StarTrinity.SIPTester.Service.install.bat) with Web API to run automated tests

Basic steps for passive testing (monitoring) or VoIP recording

In passive mode SIP Tester monitors all UDP packets on all network adapters like wireshark. It tries to interpret packets as SIP and RTP. There is no UDP port filter. To monitor SIP calls you need to:
  • Connect your Windows server to a mirroring port on network switch and configure the port to receive all SIP and RTP traffic
    or install SIP Tester on same Windows server with your PBX
  • Install winpcap, .NET Framework 4.0 and SIP Tester
  • Set operation mode to "Passive" on settings tab
  • Monitor current SIP calls and RTP calls in real time
  • Analyse measured call quality indicators in CDR report and charts
  • (optional) Turn on recording of mixed RTP streams into WAV files in settings -> "pcap export" section
  • (optional) Analyse recorded PCAP files for problematic SIP calls, export audio to WAV files for listening
  • (optional) Analyse sound volume indicators, measured from captured G.711 and G.729 RTP streams
  • (optional) Save CDRs to your database, use your own web interface to show CDRs and recorded WAV files
  • (optional) Configure email alerts and reports for call capacity overloads or call quality drops on settings screen
  • (optional) Configure setting 'SaveSipPacketsToMemory' or 'SaveSipPacketsToDisk' if you want to view SIP trace in UI
Alternatively you can run SIP Tester in windows service mode (using StarTrinity.SIPTester.Service.install.bat) or in command-line mode:
StarTrinity.SIPTester.CLI.exe OperationMode passive SaveSipAndRtpPacketsToDisk true SaveSipPacketsToDisk true

Installation

The program is installed from MSI package which copies program files into [SystemDrive]:\Users\[UserName]\AppData\Roaming\StarTrinity SipTester\ or [SystemDrive]:\Documents and Settings\[UserName]\Application Data\StarTrinity SipTester directory. This directory is also used to store settings, backups, CallXML scripts, recordings, logs, .pcap and CDR files.
SIP Tester can be installed on any Windows OS. It needs .NET Framework 4.0 and winpcap library to be installed. Windows Server is preferred over Windows 7 or Windows XP because it allows much better performance of UDP/IP stack. Also, real servers or laptops are preferred over virtual machines. A virtual machine may have poor performance and have delays in NIC drivers. You can find more details about SIP Tester's performance here. The SIP Tester is able to run as Windows Service - run in background with web interface, start automatically with Windows. To set up it as Windows Service, run StarTrinity.SIPTester.Service.install.bat, to uninstall service - StarTrinity.SIPTester.Service.uninstall.bat

Main Window

The main window is divided into 3 sections: simulation, reports and status:
SIP Tester - main window
Simulation section is divided into following tabs:
  • Registrations (UAC) - here you can configure SIP Tester to register at SIP server(s) as client. Registration is needed to receive incoming calls by SIP Tester
  • Registrations (UAS) - here you configure how SIP Tester simulates IP PBX register server: edit list of extensions - users and passwords
  • Outgoing calls simulation - configure script for simulated outgoing calls
  • Incoming calls handling - configure script for incoming calls
  • Manual tests - here you can manually send DTMF to current SIP calls, send REFER or start fax operation
  • Impairments generation - allows you to simulate RTP packet loss and/or jitter, also to terminate SIP Tester and simulate hang calls
  • Stepwise testing - is used to run tests with increasing number of concurrent calls
Reports section is divided into following tabs: Status panel is always visible, it contains:
  • Current calls counter display
  • Abort all current calls button - terminates all current calls, but does not stop generation of new calls
  • Attempted, received calls counters
  • Answer delay, jitter statistics display - shows min/avg/max stats
  • Settings button
  • CPU usage indicator, current version information, licensing information, link to web interface, other miscellaneous buttons

Setting up user agent client (UAC) registrations

SIP Tester simulates multiple SIP user agents (SIP softphones, IP PBX extensions) by sending multiple SIP REGISTER messages to destination server(s). The REGISTER messages are sent on startup, on change of parameters, and re-sent on registration timer expiry. UAC registration settings are configured on this screen:

UAC Registrations
Here you can edit parameters of simulated SIP user agents: user name, password, server's address, port, etc:
  • User name - SIP user ID to put into simulated REGISTER message, into "To" header
  • Auth. user name - user name for SIP authentication. If it is empty, "User name" is used
  • Password - password for SIP authentication. Is stored in settings XML file, encrypted
  • Registrar host - IP address or domain name of your SIP server (IP-PBX)
  • Registrar port - port number at your SIP server (IP-PBX). Default is 5060
  • Use TCP - protocol to be used for REGISTER: TCP (if checked) or UDP (if unchecked)
  • Proxy host, Proxy port - address and port of your SIP proxy, if you use it
  • trace button - shows SIP messages trace:
    SIP messages trace
  • re-register button - sends REGISTER message to the server again
  • unregister button - sends REGISTER message with SIP header "Expires: 0" to unregister
  • delete button - deletes an item from settings
  • Status - displays current status of REGISTER request. Is updated in real time
  • Call-ID - SIP Call-ID header, unique identifier of the REGISTER request. Is used to trace the request
  • Use as caller, use as called, single channel - boolean flags, used when generating SIP calls via registrar. In this mode SIP Tester makes calls from one registered SIP user agent to another
  • Enable - allows you to temporarily disable an item without deleting it. Applies to both REGISTERs and INVITEs associated with the item
  • Use for calls only - turns off sending REGISTER for the item, and keeps it usable for INVITEs in mode "make calls via least busy registration"
  • Local IP address - IP address for Contact header
  • Contact header format - allows you to set custom Contact header for REGISTER SIP messages and for INVITE messages (when calling "via least busy registration"). If empty, the software uses a default format for the Contact header.
    Example: "Eran%20Younger" <sip:[userId]@[localIp]:[localPort];transport=TLS;ob>;reg-id=1;+sip.instance="<urn:uuid:2c72cde9-c1d4-321d-8727-9bb0e165519f>"
  • Host, port for calls - used to set a different destination host name and port for SIP calls (INVITE messages) for the UAC registrations in call mode "via least busy registration"

Setting up user agent server (UAS) registrations

SIP Tester simulates SIP server (IP PBX) by accepting multiple SIP REGISTER messages from SIP phones (extensions) UAS registration settings are configured on this screen:

UAS Registrations

Configuring generation of outgoing calls (SIP INVITE sessions)

SIP tester acts like a stress call generator. It has a timer which triggers execution of CallXML script. A default pre-installed script generates a call to specified destination(s), plays WAV file and aborts call. The parameters are configured on this screen:

Outgoing calls
  • Call generation parameters
    • Create calls on timer - starts/stops generation of calls. When started, it resets position of CSV file readers.
    • Create single call button - is usually used to test the system with one call before a massive call load
    • Create [N] calls in burst mode - creates many calls in a short period of time (burst)
    • Start timer on schedule - enables starting test on schedule (for example at night).
    • Random/fixed interval between calls - selects mode and interval of timer. The SIP Tester uses random number generator with exponential or uniform probability distribution
    • Limit number of concurrent calls - is used to limit total number of incoming and/or outgoing concurrent calls. The timer does not trigger execution of script if total number of current calls exceeds this limit.
    • Limit total number of attempted calls - limits total number of calls to attempt during test
  • GUI representation of CallXML script
    • Make call via least busy UAC registration - uses UAC registration settings to make calls
    • Make call without registration to range of destinations makes calls to a random extension from range of numbers (SIP IDs) at same destination.
      siptester_screenshot_range_of_destinations
      If the range has same "from" and "to" numbers, the SIP call is sent to only one number
    • Make random calls without registration to list of destinations - allows you to enter a custom list of destinations at various servers. Every time a random item from this list is selected for a test call. This mode does not depend on UAC registration.
    • Make sequential calls without registration to list of destinations from CSV file - reads list of destinations from a CSV file. Format of CSV file is following:
      • Number
      • Host
      • Port
      • Authentication user (caller ID)
      • Authentication password
      • Transport: udp or tcp
      CSV fields separator is configured by setting "CsvDelimiter" (default ";")
      siptester_screenshot_csv_progress
    • Send SDP in INVITE - turns on/off sending of RTP session description in INVITE message. If both caller and called parties don't send SDP, SIP call will not initiate RTP stream. This can be used to test SIP signaling without RTP.
    • Forced codec, custom SDP attributes - specify parameters of RTP media session. G.711, G.723, G.729 and user-defined codecs are supported
    • Terminate calls if not answered - specifies timeout before answering (receiving 200 OK). If timeout expires, SIP Tester aborts a call by sending CANCEL.
    • Terminate calls after answering - specifies timeout after answering (receiving 200 OK). If timeout expires, SIP Tester aborts a call by sending BYE.
    • Record mix of RX and TX audio streams - turns on recording into PCMA WAV files. By default files are recorded into program's folder.
    • Play RTP audio from file - selects an audio file to play via RTP stream. WAV, MP3, PCAP formats are supported
    • Record audio streams - turns on recording of RTP streams into PCMA WAV files. RX, TX and mixed recording modes are available. Recordings are used to check audio quality of SIP call and for debugging.
    • Configure jitter buffer settings - shows Settings screen where you can configure parameters of simulated jitter buffer. By adjusting these parameters and checking quality of call you can find the optimal jitter buffer length for your VoIP system.
  • Text editor of CallXML script is used by advanced users who need complex test scenarios. Please refer CallXML documentation and example CallXML scripts to write your own script.
    CallXML editing

Configuring processing of incoming calls (SIP INVITE sessions)

The SIP Tester is able to receive multiple SIP calls and simulate IVR servers by executing CallXML script. A default pre-installed script makes a delay, accepts or rejects a call, plays a WAV file and aborts the call within specified period of time. The script is wrapped into user-friendly GUI which is configured is same way as script for outgoing calls

Incoming calls

Current calls report: SIP information

This screen displays SIP calls which are still in progress and which have been in progress recently. The screen dynamically updates itself so it is possible to monitor current status of test. Call-ID column shows SIP messages' trace which is also dynamically updated. Description of columns is here

Current calls - SIP

Current calls report: RTP information

This screen displays audio quality measurements for calls which are still in progress and which have been in progress recently. Description of columns is here

Current calls - RTP

Call Detail Record (CDR) report - current and completed calls

The CDR report screen displays completed and current calls. The CDR data can be exported to CSV file(s) and/or ODBC database (MSSQL, MySQL, PostgreSQL, MariaDB, etc). Each CDR record represents a single SIP call (not CallXML session). It is saved to report when call is disconnected and all parameters are measured. CDR fields' visibility is configurable. There is an optional "display filter" boolean expression field which allows you to search for specific SIP calls matching your criteria
SIP Tester CDR

Description of CDR fields and call audio quality indicators

  • Created - time of creating call (receiving/sending/detecting initial INVITE SIP packet).
    If winpcap is available, the timestamps are obtained from network adapter's timestamp. Otherwise they are obtained from system performance counter at time of processing SIP packets by CPU - a CPU processing delay is added
  • Answered - time of answering call (receiving/sending/detecting 200 OK response)
  • Destroyed - time of destroying call (receiving/sending/detecting BYE/CANCEL/error response)
  • Direction - "in" for incoming calls, "out" for outgoing calls
  • Caller Id - SIP ID in "From" header
  • Called Id - SIP ID in "To" header
  • Caller/Called IP - Source/destination IP address of initial SIP INVITE packet
  • Call-ID - unique identifier of SIP call, "Call-ID" header in SIP messages. Clicking on this column shows trace of SIP messages
  • Disconnection status code - indicates reason of destroying a call. Code 1408 means receiving no response from destination
  • State - state of INVITE session:
    • Null - before INVITE is sent or received, e.g. when resolving host name or establishing TCP connection
    • Calling - after INVITE is sent
    • Incoming - after INVITE is received
    • Early - after response with To tag
    • Connecting - after 2xx is sent/received
    • Confirmed - after ACK is sent/received
    • Disconnected - when terminated
  • Released By - identifies party which ended a call: "caller" or "called"
  • Answer delay - time between sending INVITE request and receiving 200 OK response
  • 100 delay - time between sending INVITE request and receiving 100 (Trying) response
  • 180 delay - time between sending INVITE request and receiving 180 (Ringing) response
  • 183 delay - time between sending INVITE request and receiving 183 (Session Progress) response
  • 180/183 delay - time between sending INVITE request and receiving 180 (Ringing) or 183 (Session Progress) response. Can be used to measure signaling-based post-dial delay (PDD)
  • Audio signal delay - time between sending/receiving INVITE request and receiving RTP audio signal which is greater than -24dB (default value). In active mode SIP Tester analyses RTP audio data in real time and detects level of signal (dial tone or IVR announcement). It is used to measure post-dial delay (PDD) and detect calls which have large intervals of silence after dialing before connection.
  • Latest ringback tone (RBT) delay - time between receiving first RTP packet and the latest detected ringback tone in RTP audio stream. Can be used to detect false answer supervision (FAS): in case of FAS the latest ringback tone goes after 'answer' event (ringback tone after start of billing). Is turned on with 'DetectRingbackTone' setting
  • Early media peak signal level (dB) - Peak level of received RTP media stream signal, observed before answering of the call (200 OK). Is turned on with 'EnableSignalDetectorMaxLevelMeasurementsForCdrFields' setting
  • Active media peak signal level (dB) - Peak level of received RTP media stream signal, observed after answering of the call (200 OK). Is turned on with 'EnableSignalDetectorMaxLevelMeasurementsForCdrFields' setting
  • Answered duration - time between answering call (sending/receiving 200 OK) and destroying of call
  • Node - indicates instance of SIP Tester where the call was measured. Multiple synchronous instances of SIP Tester could be used to achieve higher call load - see scaling
  • RX recording - recorded WAV file with received RTP audio data. Is used to debug and to check audio quality
  • Mixed recording - recorded WAV file with mix of received and transmitted RTP audio data. Is used to debug and to check audio quality
  • CurrentCallsCount - average number of concurrent calls during call. Can be non-integer if number of concurrent calls is variable. Indicates level of stress and makes effect on audio quality.
  • CallsPerSecond - number of calls per second, measured during call. Indicates level of stress and makes effect on audio quality.
  • SipPcapFileName - path to .pcap file with captured SIP packets.
  • SipAndRtpPcapFileName - path to .pcap file with captured SIP and RTP packets.
  • RTP Stream - caller and called party IP endpoints (address and port) which are used for RTP transport. Arrows indicate direction of media flow.
  • Codec - media encoding method which was used in a call. Following codecs are supported: G.711, G.723, G.729, user-defined
  • Caller/Called SSRC - SSRC field for RTP stream coming from caller or called party
  • Caller/Called G107R - G.107 E-model R-factor measured using specified jitter buffer settings. Estimates listener's satisfaction level:
    • 90-100: very satisfied
    • 80-90: satisfied
    • 70-80: some users satisfied
    • 60-70: many users dissatisfied
    • 50-60: nearly all users dissatisfied
    • less than 50: not recommended
  • Caller/Called G107MOS - G.107 E-model mean opinion score (MOS) measured using specified jitter buffer settings. Estimates listener's satisfaction level:
    • 4.3-5.0: very satisfied
    • 4.0-4.3: satisfied
    • 3.6-4.0: some users satisfied
    • 3.1-3.6: many users dissatisfied
    • 2.6-3.1: nearly all users dissatisfied
    • 1.0-2.6: not recommended
  • Caller/Called RTP packets count - RTP packets count
  • Caller/Called lost packets - percentage of lost RTP packets, calculated from CSeq field. Large values (above 3%) often indicate overloads in IP network. The packet loss value has direct impact on audio quality
  • Caller/Called max RFC3550 jitter - max value of RTP stream jitter per call, calculated according to RFC3550 standard like in wireshark. Indicates unstable delays in media flow. Large values (above 50ms = 0.05s) indicate overloads in IP network or media server's CPU. The RFC3550 jitter value has direct impact on audio quality.
  • Caller/Called mean RFC3550 jitter - mean value of RTP stream jitter per call, calculated according to RFC3550 standard like in wireshark. Indicates unstable delays in media flow. Large values (above 20ms = 0.02s) indicate overloads in IP network or media server's CPU. The RFC3550 jitter value has direct impact on audio quality.
  • Caller/Called min/max delta - min and max time between consecutive RTP packets. Indicates unstable delays in media flow. Large values (above 150ms = 0.15s) indicate overloads in IP network or media server's CPU. The RTP delta value has direct impact on audio quality.
  • Caller/Called max instant jitter - Same as RFC3550 jitter but not smoothed by low-pass filter. Equals to immediate deviation of packet time.
  • Caller/Called packet time - RTP packet time in milliseconds
  • Caller/Called non-silent duration - duration of non-silent RTP packets in audio stream
  • Caller/Called RTP delay - delay between intitial INVITE and first RTP packet, in milliseconds. Silent RTP packets are considered, not like in "Audio signal delay"
  • Caller/Called SDP-RTP delay - delay between SDP negotiation (183 or 200 response) and first RTP packet, in milliseconds. Silent RTP packets are considered, not like in "Audio signal delay"
  • RTCP RTT - IP network's round-trip delay measured by RTCP packets. The RTT is measured few times during a call, max. value is selected for this report
  • RTCP caller lost packets (%) - loss rate of RTP packets, which are generated by caller party. Is measured at called side
  • RTCP called lost packets (%) - loss rate of RTP packets, which are generated by called party. Is measured at caller side
  • RTCP caller max jitter (ms) - jitter of RTP packets, which are generated by caller party. Is measured at called side. The jitter is measured few times per call, max. value is selected.
  • RTCP called max jitter (ms) - jitter of RTP packets, which are generated by called party. Is measured at caller side. The jitter is measured few times per call, max. value is selected.
  • Test ID - identifier for current test - date and time when the SIP Tester instance was started
  • Tesnant ID - identifies tenant, used for Softswitch and for VoIP recording mode (with settings EnableMultiTenancy = 1, DetectAllSipCalls = 1). For passive monitoring mode is taken from "tenant" SIP header or from "To" SIP header

Caller CDR fields contain information about RTP stream which comes from call initiator (origination side). Called CDR fields contain information about RTP stream which comes from destination (termination side). For Caller fields measured at origination side it means self-checking of the software: it checks by winpcap libraries whether UDP packets are really transmitted using winsockets sendto() function.

The CDR data could be saved to your database via ODBC driver. Format of connection string is: Driver={SQL Server};Server=localhost\SQLEXPRESS;Database=TestCDR;Uid=xx;Pwd=yyy; Default name of table is "StarTrinitySipTesterCdrs", it is configurable in settings. If table does not exist or if a column is missing, the software automatically creates the table or inserts the missing column.

Lowest quality calls

This screen displays completed calls ordered by quality indicators, it has same fields as CDR report.

Lowest Quality Calls

Reports/Statistics

The screen displays
  • Summary statistics and quality indicators for all processed SIP calls. It is used to monitor results of stress test on a single screen
  • Number of concurrent calls (with history chart button)
  • Number of concurrent answered calls - current calls with "200 OK response to INVITE"
  • Recent calls per second - rate of attempted, received and detected SIP calls, averaged by 10-second lowpass filter
  • Number of answered calls - number of "200 OK" responses to initial INVITE requests
  • Min, average and max answered duration
  • Number of successfully completed calls - number of calls with "200 OK response to INVITE" and "BYE"
  • Number and rate of received (incoming) calls
  • Number and rate of attempted (outgoing) calls
  • Session establishment rate - ratio between number of answered calls and number of attempted calls. Is same as answer seizure ratio (ASR)
  • Number of failed outgoing calls, filtered by status code
  • SIP call quality indicators (G.107 MOS, RFC3550 jitter, RTP packets loss, response delays) with percentiles and history charts (see screenshot below)
  • Number of SIP (INVITE, 200 OK, BYE, CANCEL, etc) and RTP packets, number of retransmissions
  • History charts for most of indicators
  • Self-tested delay in media threads: it should be less than 10 milliseconds to achieve small TX RTP jitter. Large delays are caused by CPU overload.
  • Self-tested delay in signaling thread: it should be less than 200 milliseconds. Large delays are caused by CPU overload.
  • Self-tested delay in GUI thread. Large delays mean hanging of user interface; they are not critical for SIP and RTP processing.
  • Self-tested delay in audio verification threads. Large delays are not critical for SIP and RTP processing.
  • Some other indicators (see screenshot)
Reports/Statistics Reports/Statistics

Clicking chart button button for each quality indicator opens popup window with history and histogram chart of the indicator:

History chart and histogram for quality indicators The screen also contains a button "Save to HTML file". Here is example of exported HTML report. Reported DOM elements have unique IDs for additional HTML processing with javascript.
The statistics is resetable with a button; the reset is also possible in CallXML script: resetstatistics

Performance chart

Shows distribution of call quality and call load, demonstrates load capacity of VoIP system.

VoIP/SIP system performance chart

The points on chart represent each step in "stepwise testing". To generate the performance chart with the lines of percentiles you need to do this:

  • Go to "stepwise testing" tab, set parameters there
  • Click "start stepwise testing"
  • Open "performance chart" tab
  • Select X and Y axes
  • See the progress on chart

Stepwise testing

Executes stress test by automatic incrementing number of concurrent calls. Is used to discover dependency between call load and call quality

Stepwise testing

Manual tests

This screen is used to do some operations with current calls by clicking buttons manually.

Manual tests

Impairments generation

This screen is used to simulate SIP and RTP packet loss, RTP jitter, also simulate unexpected loss of connectivity or crash of SIP trunk by terminating SIP Tester.

Impairments generation
RTP jitter simulator works in this way: it simulates random "delays" (pauses) in the RTP thread, so there are gaps in RTP stream transmission. The delays are simulated with specified probability. The duration of the simulated delays is also random, it has linear distribution: max. introduced (simulated) delay is 2 times greater than the average simulated delay.

Settings

This screen is used to configure various settings and operation modes.

Settings

Log

This screen is used for detailed control of the program's execution. You can insert log elements in your CalXML script and monitor its execution in real time through the log. Show log files link opens a directory with log files. The files contain debugging information; by default error logs and GUI activity reports are sent to StarTrinity developers via encrypted channel. If you want to disable error reports, please set "DisableAnonymousReports" = "1" in settings tab.

Logs

Scaling

This screen is used to configure connections with multiple servers in cluster. The connections are used to synchronize operation of SIP Testers and collect CDR reports. HTTP transport is used for connection. Default port is 8085. To set up a cluster of SIP Testers, you need to follow next steps:

  • Install SIP Tester on servers in cluster, configure firewall to allow TCP and UDP packets between servers
  • Define one master and multiple slave servers (nodes in distributed system)
  • 'Enable local node' for all slave servers. It may need administrator rights to open HTTP port
  • Add connections to slave nodes at master node
  • Set stress parameters at master node. They will be applied automatically to all slave nodes
  • After test, CDRs from all nodes will be collected at master node

License information

This screen displays information about license for current installation. For information about prices please contact sales manager by email.

License information

Command line interface (CLI)

The SIP tester has a command line interface which is available with StarTrinity.SIPTester.CLI.exe. This executable runs in command prompt, it has following parameters:
(if a parameter is not specified, it is taken from XML settings file)

  • TotalCalls (required for active mode when generating calls) - total number of outgoing calls to generate, or 'infinite'. After exceeding this number, SIP Tester waits for current calls to complete
  • TotalIncomingCalls (optional) - total number of calls to receive before exiting. After exceeding this number, SIP Tester waits for current calls to complete
  • MaxCurrentCalls (optional) - max number of concurrent calls (incoming+outgoing)
  • MaxTestDurationSec (optional) - max duration of test in seconds. If the "MaxTestDurationSec" is set, SIP Tester waits for all current calls to complete before exiting. Warning: please limit call duration by "maxansweredtime" to avoid hang calls
  • IncomingCallsExitTimeoutSec (optional) - max time between incoming calls to stop test. Is used when you expect incoming calls to arrive during the test. If the "IncomingCallsExitTimeout" fires, SIP Tester waits for current calls to complete and exits with status -1
  • OutgoingCallsPeriodMs (optional) - interval between simulated calls in milliseconds
  • NumberOfCallsPerBurst (optional, default is 1) - number of calls to generate per burst (tick)
  • OutgoingCallsMode (optional) - mode of interval between simulated calls: fixed or random
  • OutgoingCallXmlFile (optional) - CallXML file name to generate outgoing calls. If not specified, it uses previously saved CallXML script from settings
  • IncomingCallXmlFile (optional) - CallXML file name to process incoming calls. If not specified, it uses previously saved CallXML script from settings
  • IncomingCallsOnly (optional) - if 'true', SIP Tester will only receive incoming calls and not generate outgoing calls. Default is 'false' (outgoing calls are generated)
  • EnableCallMeasurements (optional) - if 'false', SIP Tester will not measure call quality parameters and will not generate CDRs. It can be used to reduce CPU load. Default is 'true'
  • LogLevel (optional) - level of details in system file log: Error, Warning, Info, Debug, Trace
  • OperationMode (optional) - 'active' or 'passive'
  • PcapFileName - pcap file name to process (in passive mode)
  • SaveSipPacketsToDisk (optional) - 'true' or 'false'
  • SaveSipAndRtpPacketsToDisk (optional) - 'true' or 'false'
  • RetryToOpenLocalSipPort (optional) - 'true' or 'false', default 'true' - wait if another program already uses SIP port, keep on trying to open it
  • MyVariable (optional) - any undefined parameter given as a variable/value pair passed on the command line will be passed to the CallXML script as a variable
Example#1: StarTrinity.SIPTester.CLI.exe TotalCalls 1 MaxCurrentCalls 1 OutgoingCallXmlFile "c:\test.xml"
Example#2: StarTrinity.SIPTester.CLI.exe StarTrinity.SIPTester.CLI.exe IncomingCallsOnly true TotalIncomingCalls 10 IncomingCallsExitTimeoutSec 30 IncomingCallXmlFile "c:\incoming.xml" Example#3: StarTrinity.SIPTester.CLI.exe OperationMode passive SaveSipAndRtpPacketsToDisk true SaveSipPacketsToDisk true

An example of using CLI to create automated functional VoIP test is here.

Web API methods

The software has a HTTP-based application programming interface (API). Main methods are described here:
  • GET /API/MainViewModel/CreateCall?url=http%3A%2F%2Fyour_server%2Fget_script.aspx&user=usr&password=pass - downloads CallXML script from your web server with specified auth. user and password, creates an outgoing call with the downloaded script
  • POST /API/MainViewModel/CreateCall_Post - creates an outgoing call with the uploaded script. Returns Call-ID SIP header of the created SIP call in JSON format: {'status': 'OK', 'sipCallId': 'the_new_call_id'}. CURL example: curl http://X.X.X.X:19019/API/MainViewModel/CreateCall_Post -uadmin:admin --digest -X POST -d "@my_file.xml" -H "Content-Type:text/plain;charset=UTF-8"
  • GET /API/MainViewModel/CreateSingleCallCommand - creates an outgoing call using currently pre-configured script
  • GET /API/MainViewModel/StartCreatingCallsOnTimer - starts call generator
  • GET /API/MainViewModel/StopCreatingCallsOnTimer - stops call generator
  • GET /API/MainViewModel/Cdr/ClearMemory - clears calls in CDR memory
  • GET /API/MainViewModel/ResetCounters - reset counters in reports/statistics
  • GET /API/MainViewModel/CurrentCallExists?callerId=XXX&calledId=YYY - checks existence of current call, returns 'true' or 'false'
  • GET /API/MainViewModel/DestroyCall?sipCallId=XXX - destroys current SIP call by SIP Call-ID header
  • GET /API/MainViewModel/GetCurrentCallsCount?optionalCallXmlVariable1=XXX&optionalCallXmlVariable2=YYY - returns number of current calls, optionally filtered by CallXML variables
  • GET /API/MainViewModel/GetVersion - returns software version information - compilation time (UTC)
  • GET /API/MainViewModel/SetCallXmlVariables?callerId=XXX&calledId=YYY&direction=ZZZ&var1=value1&var2=value2 - sets CallXML variables for current SIP call, returns 'true' if call was found or 'false' if call was not found. The direction parameter of URL query is optional, it can be "in" or "out"
  • GET /API/MainViewModel/Cdr/GetCallsJSON[?sipCallId=XXX] - returns all calls from CDR memory in JSON format. Please consider setting "MaxMemoryCallsCount". The request may contain parameter "sipCallId" if you need to get information about specific call
The API methods by default require authentication - you need to use same credentials as in web UI. To turn off authentication, you can add your IP address into whitelist using setting "WebApiTrustedIpAddresses".
There are more undocumented methods available, you can see them in Fiddler when using the web interface. Please let us know if you need some new API method

Screen recordings

8000-channel testing: setup, operation

8000-channel testing: stepwise testing

Copyright 2011-2017 StarTrinity.com | Blog | Contact lead developer via LinkedIn | Get support via TeamViewer