Automated Load Testing for SIP Applications



Similar documents
SIP Infrastructure Performance Testing

Troubleshooting Tools to Diagnose or Report a Problem February 23, 2012

MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM?

Load Testing 2U Rockbochs System

Session Initiation Protocol (SIP) The Emerging System in IP Telephony

Chapter 10 Session Initiation Protocol. Prof. Yuh-Shyan Chen Department of Computer Science and Information Engineering National Taipei University

Unit 23. RTP, VoIP. Shyam Parekh

One Server Per City: C Using TCP for Very Large SIP Servers. Kumiko Ono Henning Schulzrinne {kumiko, hgs}@cs.columbia.edu

PANDORA FMS NETWORK DEVICE MONITORING

3CX Phone System Enterprise 512SC Edition Performance Test

ETM System SIP Trunk Support Technical Discussion

PANDORA FMS NETWORK DEVICES MONITORING

IxLoad: Advanced VoIP

Connecting with Vonage

Internet Technology Voice over IP

Solution Overview: Geomant Contact Expert for Microsoft Lync Server

Web Load Stress Testing

Voice over IP Fundamentals

VoIP Probe 3.4. Functions, Parameters & Metrics for integration with HP Business Availability Center via HP Business Process Monitor

An Introduction to VoIP Protocols

MINIMUM NETWORK REQUIREMENTS 1. REQUIREMENTS SUMMARY... 1

Optimum Business SIP Trunk Set-up Guide

P160S SIP Phone Quick User Guide

Web Application s Performance Testing

NAT TCP SIP ALG Support

Allworx Queuing and Automated Call Distribution Guide (Release x)

Mizu Callcenter Platform Tutorial

Performance Testing Process A Whitepaper

VIDEOCONFERENCING. Video class

Crystal Gears. Crystal Gears. Overview:

Performance evaluation of the Asterisk PBX

Polycom VBP and VVX 1500 D Configuration Guide for Premise SIP Voice and H.323 Video Installations May A

Configuring Voice Quality Monitoring in AOS

Testing IVR Systems White Paper

proudly presents Homer-Shooting The secret Art of Troubleshooting VoIP in Real-Time with Homer & SIPGrep

MyIC setup and configuration (with sample configuration for Alcatel Lucent test environment)

IP PBX. SD Card Slot. FXO Ports. PBX WAN port. FXO Ports LED, RED means online

IxLoad VoIP SIP, MGCP Features

point to point and point to multi point calls over IP

DPH-140S SIP Phone Quick User Guide

Optional VBP-E at the Headquarters Location

To ensure you successfully install Timico VoIP for Business you must follow the steps in sequence:

MITEL SIP CoE. Technical. Configuration Notes. Configure MCD 4.1 for use with SKYPE SIP Trunking. SIP CoE

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP LTM for SIP Traffic Management

Deploying Cisco Unified Contact Center Express Volume 1

Performance Testing of Java Enterprise Systems

SIP Trunking Quick Reference Document

NTP VoIP Platform: A SIP VoIP Platform and Its Services

Configuring and Monitoring the Client Desktop Component

Virtual Office Network Tests Version 2.0 Revision 1.0 8x8, Inc O'Nel Drive San Jose, CA Phone: Fax:

Based on the VoIP Example 1(Basic Configuration and Registration), we will introduce how to dial the VoIP call through an encrypted VPN tunnel.

EINTE LAB EXERCISES LAB EXERCISE #5 - SIP PROTOCOL

2.2 SIP-based Load Balancing. 3 SIP Load Balancing. 3.1 Proposed Load Balancing Solution. 2 Background Research. 2.1 HTTP-based Load Balancing

Project Code: SPBX. Project Advisor : Aftab Alam. Project Team: Umair Ashraf (Team Lead) Imran Bashir Khadija Akram

Allworx Queuing and Automated Call Distribution Guide (Release x)

VOIP-211RS/210RS/220RS/440S. SIP VoIP Router. User s Guide

NEC s SonicView IP Recorder Release Notes. Version 1.2. Release Notes

Network Connection Considerations for Microsoft Response Point 1.0 Service Pack 2

Customer Network Assessment

RTP Configuration Guide

PERFORMANCE TESTING. New Batches Info. We are ready to serve Latest Testing Trends, Are you ready to learn.?? START DATE : TIMINGS : DURATION :

SIPp. SIPp reference documentation. Table of contents

Performance Analysis of webmethods Integrations using Apache JMeter Information Guide for JMeter Adoption

Indepth Voice over IP and SIP Networking Course

Methodology for SIP Infrastructure Performance Testing

SHORT DESCRIPTION OF THE PROJECT...3 INTRODUCTION...4 MOTIVATION...4 Session Initiation Protocol (SIP)...5 Java Media Framework (JMF)...

Connecting with Free IP Call

VoIP QoS. Version 1.0. September 4, AdvancedVoIP.com. Phone:

Architecture of End-to-End QoS for VoIP Call Processing in the MPLS Network

Desktop VirtualPBX Softphone Setup Instructions for Windows

Sonus Networks engaged Miercom to evaluate the call handling

Automatic Call Distribution For Business and Call Centers

Aastra Models 9000i and 6700i Series SIP IP Phones. SIP Release Notes

Configuring a Load-Balancing Scheme

CT LANforge-FIRE VoIP Call Generator

Application Note. Onsight Connect Network Requirements V6.1

Mobile Performance Testing Approaches and Challenges

SIP Essentials Training

This presentation discusses the new support for the session initiation protocol in WebSphere Application Server V6.1.

SIPIVR 6800GS Overview & Applications

Technical Configuration Notes

Cisco Networks (ONT) 2006 Cisco Systems, Inc. All rights reserved.

Lab 5.5 Configuring Logging

Connect2Leads Introduction

Automatic Call Distribution For Business and Call Centers

ELIXIR LOAD BALANCER 2

Virtual Office. Network Tests. Revision x8, Inc O'Nel Drive San Jose, CA Phone: Fax:

STeP-IN SUMMIT June 2014 at Bangalore, Hyderabad, Pune - INDIA. Mobile Performance Testing

Understanding Slow Start

Quality of Service Testing in the VoIP Environment

Configuration Notes 290

and Voice Applications Eyal Wirsansky, Verso Technologies JaxJUG

Transcription:

Automated Load Testing for SIP Applications Serge Kruppa Director of Engineering Astricon 2008, Glendale AZ

About LiveVox Leading provider of hosted VoIP dialing solutions, with integrated ACD and IVR, to the credit and collections industry Combines patented technology with industry expertise to address clients operational challenges and compliance requirements Replaces premise-based dialers and doubles agent productivity at the lowest cost of ownership in the market Use of Hosted VoIP Dialer increased 400% in the past year (May 2008) Based in San Francisco with 80 FTEs around the world 2

Why load testing? To meet business objectives Customer satisfaction Revenue growth How to achieve them? Minimize downtime Maximize scalability Offer consistent quality Proactive approach to capacity management Find possible bottlenecks Forecast scalability limits Address issues early and effectively 3

Different types of load Load triggered by internal or external events SIP messages RTP packets HTTP requests Load created on platform components Internal H/W: CPU, memory, NICs, hard disk External H/W: LAN/WAN, dependent systems Applications 4

What will break? Excessive load will create Real-time issues (deadlocks, race conditions) Network overload (packet loss, jitter, etc.) Hard disk capacity issues (running out of space) Memory failures (application crash due to memory leaks, malloc() failures, etc.) CPU overload Affecting call quality Choppy audio, call delays or failures, loss of data Load and quality are correlated Maintain sufficient headroom, timely upgrades 5

What to measure? Monitor CPUs Memory SIP messages timestamps RTP jitter and packet loss Application logs Often symptoms of network issues Place live calls (MOS human validation)

Real world scenarios Contact center call recording capacity Simulate several SIP UAS (agents and debtors) receiving calls made by the Media Server in response to HTTP requests. Agent UAS instances must play an audio file that will be recorded by the Media Server. SIP proxy performance Simulate multiple SIP UAC (Media Servers) making calls to a high capacity UAS (carrier) through a SIP proxy with load balancing functionality. Contact center outbound call pacing Simulate several agents that will log in to a predictive dialer via a Web interface and then receive a call (SIP UAS) while debtor (other UAS) calls are bridged to them. 7

Open source tools used Load generators SIP : SIPp HTTP : JMeter SIP packet capture and analysis Tcpdump (Linux) or WinPCAP (Windows) Wireshark Load monitoring and reporting Cacti Top, vmstat, sar, etc.

Downloads SIPp http://sipp.sourceforge.net/ Wireshark http://www.wireshark.org/ JMeter http://jakarta.apache.org/jmeter/ 9

Test architecture 10

Concepts covered Call recording scenario SIPp and JMeter introduction UAS scenario customization Network diagram 2 2 3 1 11

Introduction to SIPp Requires detailed knowledge of SIP Scenarios are expressed in XML "SIPp is a free Open Source test tool and traffic generator for the SIP protocol Has several user agent scenarios uac uas uac_pcap, etc. Can use custom scenario files

SIPp features Support for both IPv4 and IPv6 RTP media support (PCAP) Call rate distributions Fixed, uniform, exponential High performance and reliable Complex scenarios are possible Statistics

UAC and UAS default scenarios UAC:sipp sn uac 127.0.0.1 UAS:sipp sn uas 14

UAC and UAS custom scenarios sipp sd uas > uas.xml UAS: sipp sf uas.xml uas.xml sipp sd uac > uac.xml UAC: sipp sf uac.xml 127.0.0.1 uac.xml 15

SIPp command line options Usage sipp remote_host[:remote_port][options] Regular options -sn name :use a default scenario -sd filename :Dumps a default scenario -sf filename : load an alternate XML scenario file 16

SIPp advanced options Advanced options -r rate : set the call rate (default = 10) -rp period : rate period in milliseconds (default = 1000ms) Example: -r 10 -rp 1000, 10 calls every second -m calls : stop and exit when set number of calls are processed -l : set the maximum number of simultaneous calls -rate_increase:specify the rate increase every fd seconds -nr : disable retransmission in UDP mode -rsa host[:port] : set the proxy server IP address -i : set local IP address -p : set local UDP port 17

Actual call recording scenario RTP RTP UAS 1 : sipp sf debtor.xml i 10.10.100.122 p 5061 rsa 10.10.100.120:5060 UAS 2 : sipp sf agent.xml i 10.10.100.122 p 5062 rsa 10.10.100.120:5060 18

SIPp scenario screen Default screen (press 1) Exit codes: 0 (zero) indicate that all calls were successful 1 indicates that at least one call failed 97 indicates an abnormal exit on internal command 99 indicating a normal exit without processing calls -1 used to indicate a fatal error

Scenario keywords mapping UAS 2 : sipp sf agent.xml i 10.10.100.120 p 5062 10.10.100.50:5060 Agent.xml rsa <scenario name="agent UAS responder"> <recv request="invite" crlf="true"> </recv> <send> <![CDATA[ SIP/2.0 180 Ringing The '[last_*]' keyword is replaced [last_via:] automatically by the specified header [last_from:] if it was present in the last message [last_to:];tag=[pid]sipptag01[call_number] received [last_call-id:] [last_cseq:] Contact: <sip: [local_ip] : [local_port] ;transport=[transport]> Content-Length: 0 ]]> </send> 20

Main SIPp elements <send>, send a SIP request or response <recv>, receive a SIP request or response <pause>, pause the scenario <nop>, no operation <label>, branch within scenario ( goto ) 21

Playing out audio <!-- Play a pre-recorded PCAP file (RTP stream) --> <nop> <action> <exec play_pcap_audio="pcap/g711u.pcap"/> </action> </nop> <!-- Pause 195 seconds, which is approximately --> <!-- the duration of the PCAP file --> <pause milliseconds="195000"/> Can be any RTP packet capture made by Wireshark or tcpdump (including DTMF) Note: the action is non-blocking Blocking pause while the audio is played out 22

Regular expressions Problem: the Media Server expects the BYE message To: and From: headers to contain correct URIs, as set when the session was created (INVITE) Solution: retrieve the To: and From: header URIs using a regular expression and re-use these URIs in the BYE message <recv request="ack" rtd="true" crlf="true"> <action> <ereg regexp=".*" search_in="hdr" header="from:" check_it="true assign_to="1"/> <ereg regexp=".*" search_in="hdr" header="to:" check_it="true assign_to="2"/> </action> </recv> <send retrans="500"> <![CDATA[ BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] From: [$2] To: [$1] [last_call-id:] 23

Introduction to JMeter Apache project JMeter is a 100% pure Java desktop application designed to load test functional behavior and measure performance of Web as well as other types of applications A test plan describes a series of steps JMeter will execute when run.

Call recording JMeter test plan 25

Test sequence and results Test execution Start UAS 1 : sipp sf debtor.xml i 10.10.100.122 p 5061 rsa 10.10.100.120:5060 Start UAS 2 : sipp sf agent.xml i 10.10.100.122 p 5062 rsa 10.10.100.120:5060 Run Jmeter CallRecording.jmx test plan Test results Reached 85% CPU usage for 750 simultaneously recorded calls 26

Concepts covered SIP proxy scenario Use of tcpdump and Wireshark Network diagram 2 1 27

Test sequence Test execution Start tcpdump on SIP proxy: tcpdump udp port 5060 -s 1600 - vv -w test.pcap Start UAC : sipp sn uac 10.10.100.50 r 40 rp 1000 Start UAS : sipp sn uas 28

Test results analysis - packets Tcpdump packet capture analysis Launch Wireshark Open.pcap file Choose VoIP call statistics Select one of the calls from the list Click on Graph Review the SIP message graph 1 3 2 10.10.100.120 sip:10.10.100.120 sip:1777666555510.10.100 29

Test results analysis - delays A Wireshark IO graph can be very useful to see delays at a glance 30

Test results Test results We believe delays were caused by the NIC or Linux NIC driver of the blade server that was used for the SIP proxy Switching the SIP proxy to a regular (non-blade) server fixed the delay problem This is still being investigated by Livevox 31

Concepts covered Call pacing scenario Use of JMeter to simulate agent behavior Network diagram New step 1 compared to the original Call Recording test plan 3 4 3 1 2 1 32

What is call pacing? Call pacing is the processing logic which determines the rate at which calls are made by a dialer in a call center outbound campaign. The timing of dial attempts is dependent on agent availability and other real-time factors. Selecting a pacing algorithm implies a tradeoff between agent productivity and the quality of interactions with customers. Poor pacing algorithms drastically increase call abandonment and are a nuisance to customers. 33

What do we want to achieve? Simulate the interactions between the agents and the Livevox Voice Portal Campaign login/logout Ready/not ready status change Create converged SIPp and JMeter test plans that mimic real-life call pacing challenges Change of shift in the call center Dialing lists of non-homogeneous quality Review key performance indicators via the Livevox Voice Portal real-time and historical reports 34

The Livevox Voice Portal Predictive call pacing has been selected for that campaign 35

Provisioning test agents 36

The normal agent login process 37

The agent login JMeter test plan 38

ACD real-time status The virtual agent has logged in and set itself to the ACD Ready state At the same time, the SIPp agent.xml script has received a call from the Livevox platform The agent is online and ready to receive calls 39

Test sequence and results Test execution Start UAS 1 : sipp sf debtor.xml i 10.10.100.122 p 5061 rsa 10.10.100.120:5060 Start UAS 2 : sipp sf agent.xml i 10.10.100.122 p 5062 rsa 10.10.100.120:5060 Run Jmeter AgentLogin.jmx test plans Run Jmeter CallRecording.jmx test plans Test results The Livevox call pacing algorithm delivers solid results for all the test scenarios considered, according to several key metrics Avg Ready Time (average amount of time agents spend waiting for a call) % talk, % wrap and % ready times (eg. % talk = total talk / [talk + wrap + ready]) Abandon rate (Operator Transfer Failed / Attempted Operator Transfers) Please contact skruppa@livevox.com for more information 40

Questions? Please feel free to contact us for more information Serge Kruppa skruppa@livevox.com http://www.livevox.com THANK YOU! 41