Asynchronous Interactive Design of Web Applications: Real-time SIP Message Monitoring System using AJAX Student: Yan-Hsiang Wang Advisor: Dr. Quincy Wu Graduate Institute of CSIE National Chi Nan University
2 Motivation Session Initiation Protocol (SIP) is widely used as the signaling protocol for Voice over IP. SIP is adopted by 3GPP in IP Multimedia Subsystem (IMS).
3 A Convenient Tool - Ethereal
4 Limitation of Ethereal Hard-phone users cannot install software to capture packets.
5 Server-based SIP Packet Capturing Running SIP Capturing on Server-side instead of Client-side. Existing web-base systems cannot update data in pages seamlessly. WIST - Web Interface for SIP Trace Distributed SIP Analyzer
6 Existing System 1
7 Existing System 2
8 AJAX Asynchronous Javascript And XML This term was born in February It is not a technology; it is an approach. Connect Web Browser and Web Server asynchronously. Reload data without refreshing pages. Create an interactive web application Which behaves like a desktop application.
9 Ajax Applications Auto-Complete (Yahoo! Travel)
10 Ajax Applications Auto-Complete (Yahoo Dictionary)
11 Ajax Applications (cont.) Drag & Drop (UrMap) Real-Time Viewer (Digg Spy) Slider (Google Finance)
12 Ajax Engine
13 Limitation of AJAX It can’t work when some browsers disable “JavaScript” Most popular browsers support AJAX Internet Explorer 5.0 ~ Mozilla 1.0 ~ Safari 1.2 ~ Opera 8.0 ~
14 Our System Architecture ApacheMySQL Ethernet card Captor (libpcap) AJAX engine HTML + Cascading Style Sheets Data JavaScript Call SIP Extractor (php) Server-side systemClient-side system web browser HTTP RequestXML Data PHP Query Data Ethernet Frame SIP Message SIP Header Field
15 Server-Side System We use Libpcap to capture packets on udp port Strip off the Ethernet, IP and UDP headers by a PHP script. Store the SIP messages in a MySQL database for further querying.
16 Client-Side System Our querying page is based on an Ajax engine. Refresh data seamlessly Update the latest packets in real time Provide desktop-like application interface friendly Use tree menu as message browser. Expand the message dynamically
17 Integration with SIP server(1)
18 Integration with SIP server(2) SERweb
19 Implementation
20 Advantages Surfing web-base system is convenient and easy (compared with Ethereal). User can search the historical data with ordinary privilege. Ethereal requires super-user privilege to capture packets. We can package these messages in a Pcap format file and mail it to users so that they can parse it with other tools (Ethereal, Wireshark).
21 Advantages (cont.) Refresh the message table when the latest message is captured. Query the latest record from the database in each second Compare the latest record from the database and the current record in browser Refresh the message table if these two records are different
22 Performance Measurement Environment FreeBSD 5.4 as Operating System MySQL as Database Apache _2 as Web server Ser-0.9.6_2 as SIP server Sajax-0.12 as Ajax library Two SIPp generators on WinXP as Client Call setup scenario (powered by SIPp)
23 Comparison with Running Ethereal on the Server(1/2) Concurrent Calls: 30
24 Comparison with Running Ethereal on the Server(2/2) Concurrent Calls: 1000
25 System Loading Step1: only httpd, mysqld, ser Step2: start stress testing Step3: start capturing and pipe the output to the dissector Step4: enable live update on the browser Step5: work continuously without SIP traffics Calls per second: 10,000 Total calls: 20,000
26 Performance Measurement Environment Fedora core 6 as Operating System MySQL as Database Apache as Web server Call setup scenario (powered by SIPp) Max Allowed Rate: 10,000 Concurrent Calls: 0~8,000(with interval 200) Total calls: 20,000
27 Call Failure Rate
28 Conclusion Advantage Conserve the bandwidth of network Friendly interface Convenient to use Future work Access control Inter-domain collaboration
29 Demo Show the Wireshark image to this notebook Enable SIP Fluoroscope Live Update Sepp(Wifi-phone) calls Test(X-Lite) Capture SIP signalings
30 Q&A Thanks for your comments!