170 likes | 190 Views
This presentation discusses the development of a web-based Session Initiation Protocol (SIP) analyzer using an Ajax approach. The analyzer allows users to conveniently find reasons for failed calls, updates information in real time, and provides a user-friendly interface with features like drag and drop, auto-complete, real-time viewer, and slider.
E N D
Building Web-base SIP Analyzer with Ajax Approach Speaker: Yan-Hsiang Wang Adviser: Dr. Quincy Wu School: National Chi Nan University Unit: Graduate Institute of CSIE Date: 2007.03.16
Motivation • Session Initiation Protocol is widely used as signaling protocol for Voice over IP. • It’s inconvenient for user to find reasons when failed calls were occurred. • Traditional web-base SIP analyzer can’t update information in real time.
AJAX • Asynchronous Javascript And XML • This noun was born on February 2005. • It isn't a technology; it's an approach. • Connect Web Browser and Web Server asynchronously. • Create interactive web applications. • Reload data without refresh page.
Ajax application • Drag & Drop (UrMap) • http://www.urmap.com.tw/ • Auto-Complete (Yahoo Dictionary) • http://tw.dictionary.yahoo.com/ • Real-Time Viewer (Digg Spy) • http://digg.com/spy • Slider (Google Finance) • http://finance.google.com/finance?q=twx
System Architecture Data MySQL Apache PHP Query SIP Header Field HTTP Request XML Data SIP Extractor (php) AJAX engine SIP Message HTML + Cascading Style Sheets Data Captor (libpcap) JavaScript Call Ethernet Frame Ethernet card web browser Server-side system Browser client
Server-side system • We use Libpcap to capture packets on port 5060. • Strip off the Ethernet, IP and UDP headers by PHP script. • Store the SIP message in database for user’s querying.
Client-side system • Our querying page is based on Ajax engine. • Refresh data seamlessly • Update the latest packet in real time • Provide desktop application like interface friendly • Use tree menu as message browser. • Expend the message dynamically
Advantage • User can find the history with ordinary privilege. • Surfing web-base system is convenient and easy. • We can package these messages in a Pcap format file that user may fetch it through a email and parse it by other tools.
Update in real time • Refresh the query table when new message has been captured. • Query the latest record from database per second • Compare the latest record from database and the current record in browser • Refresh the message table if these two record is different
Experiment • CPU loading test • Step1: only httpd, mysqld, ser • Step2: begin to stress test • Step3: begin to captor and pipe to dissector • Step4: enable live update on browser • Step5: work continuously but no traffic • Invite scenario (SIPp - a traffic generator) • Current calls: 200, 500, 1000, 3000, 5000, 7000, 9000 • Total 20000 calls
Improvement • Version 1 • Consume the CPU loading a little much • Version 2 • Improve some syntax • Timestamp filter:'%20070316%' => '20070316%' • Query:ORDER BY ASC=> ORDER BY DESC and fetch rows in reverse order
CPU loading Version 1 Reduce 0.5~1at step 4 Reduce 1~1.5 at step 5 Version 2
Reference • Tcpdump • http://www.tcpdump.org • Ethereal • http://www.ethereal.com/ • Ajax: A New Approach to Web Applications • http://www.adaptivepath.com/publications/essays/archives/000385.php • SIPp • http://sipp.sourceforge.net/
Q&A • Thanks for your coming!!