1 / 17

Babel-SIP: Self-learning SIP Message Adaptation for Increasing SIP-Compatibility

ANM 2008, Phoenix – April, 18 th Helmut Hlavacs, Andrea Hess, Michael Nussbaumer karin.hummel@univie.ac.at University of Vienna Department of Distributed and Multimedia Systems. Babel-SIP: Self-learning SIP Message Adaptation for Increasing SIP-Compatibility. Problem Statement.

dinah
Download Presentation

Babel-SIP: Self-learning SIP Message Adaptation for Increasing SIP-Compatibility

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ANM 2008, Phoenix – April, 18th Helmut Hlavacs, Andrea Hess, Michael Nussbaumer karin.hummel@univie.ac.at University of Vienna Department of Distributed and Multimedia Systems Babel-SIP: Self-learning SIP Message Adaptation for Increasing SIP-Compatibility

  2. Problem Statement Open protocols • Multiple vendors • Compatibility depends on the accurateness of implementations Example: SIP (Session Initiation Protocol) for VoIP • Vendors publish lists of compatible hard phones • Remaining problems with SIP dialects How to overcome incompatibilities of peers?

  3. Use Techniques from “Autonomic Computing” Analogy to the human autonomic nervous system Investigated to increase autonomicity in computing systems IBM initiative from 2001[1] Self-x properties Self-configuring Self-protecting Self-healing Self-optimizing etc. Artificial Intelligence research Autonomous software agents, robots Planning, reasoning, and learning [1] Richard Murch. Autonomic Computing. IBM Press. 2005

  4. Outline of the Talk SIP (Session Initiation Protocol) Autonomic SIP adaptation C4.5 tree Babel-SIP Experiments Quantitative results Qualitative results

  5. SIP (Session Initiation Protocol) Session management of the Internet Multimedia Subsystem (IMS) of Next Generation Networks, Voice over IP (VoIP) Defined in RFC 3261 (and additional RFCs for different aspects like RFC 3262, 3263, 3265, 3515, 3311, 3665, and others) • Uses TCP/IP protocol stack • SIP header fields Functions • User location • User availability • User capabilities • Session setup • Session management REGISTER sip:Domain SIP/2.0 To: <sip:UserID@Domain> From: <sip:UserID@Domain> Via: SIP/2.0/UDP IPAdress:Port Call-ID: NDYzYzMwNjJhMDRjYTFj CSeq: 1 REGISTER Contact: <sip:UserID@IPAdress:Port> Max-Forwards: 70

  6. Autonomic SIP Adaptation Problem of transient incompatibilities Introduce a module for arbitrary proxies: Classification of messages (accepted/rejected) Adaptation of messages to avoid rejections Generic approach (not specific for SIP)

  7. C4.5 Decision Trees Used for classification, to identify relevant header parameters causing rejections Training phase required to build the tree Avoids over-fitting, capable to deal with incomplete data For SIP messages: headers, header fields, and standard values are defined as tree attributes 274 attributes per (REGISTER) message Implementation: WEKA machine learning library, J48 C4.5 tree Attributes are stored in Attribute Relation File Format (ARFF) Input: attribute vector A Output: attribute vector A with new values FOREACH (Ai in A)‏ Ai.value = 0 IF (Ai.name in SIP message) THEN IF (SIP message field is numeric) THEN Ai.value = value of SIP message field ELSE Ai.value = 1

  8. Example C4.5 Tree (Trained with REGISTERs) Hierarchy shows the importance of parameters Replaces <= 0 | Allow_DO <= 0 | | Content-Language <= 0 | | | Contact_methods <= 0 | | | | To_user <= 0: ACCEPTED (112.0/5.0) | | | | To_user > 0 | | | | | Contact_q <= 0 | | | | | | Call-ID <= 0: REJECTED (2.0) | | | | | | Call-ID > 0: ACCEPTED (12.0/1.0) | | | | | Contact_q > 0: REJECTED (2.0) | | | Contact_methods > 0 | | | | Accept <= 0: REJECTED (6.0/1.0) | | | | Accept > 0: ACCEPTED (11.0/1.0) | | Content-Language > 0 | | | Contact_flow-id <= 0: REJECTED (6.0/1.0) | | | Contact_flow-id > 0: ACCEPTED (2.0) | Allow_DO > 0 | | Allow-Events_talk <= 0: REJECTED (6.0) | | Allow-Events_talk > 0: ACCEPTED (3.0/1.0) Replaces > 0: REJECTED (11.0) Number of messages classified / wrong classifications

  9. Babel SIP Automatic protocol adapter • Placed between the proxy socket and the UA • Observes rejected/accepted messages to train C4.5 tree • Classifies messages and adapts likely rejected messages mi • Distance metric d(mi,mj) to choose the message mc from the set of known accepted messages most similar to mi • Current implementation: Weka Euclidean Distance • Derive most problematic field in mi and replace it with the corresponding field in mc

  10. Experiments REGISTER message headers Using a commercial SIP proxy server (from a major Austrian telecom equipment provider)‏: guaranteed to work with two hard phones and one soft phone First experiments: monitoring of nine most popular hard phones Example findings: one hard phone A uses less than 10 header fields, phone B uses 15 header fields; the header field also differed Second experiments Artificial messages (random combinations of observed SIP header fields, header field values, and header field parameters from observed hard phones and additional from RFC 3261) 344 different REGISTER message headers (78 rejected; ~22.67%)

  11. Training and Test Sets Training data set Accepted messages: 39 / 78% Rejected messages: 11 / 22% Total number: 50 Test data set Accepted messages: 227 / 77.21% Rejected messages: 67 / 22.79% Total number: 294 Experiment: 15 replicated experimental runs (4400 messages per run chosen at random from test data); training after each 20 messages

  12. Rejection Rate Observed over Time Rejection ratio of overlapping bins of 100 messages (1-100, 21-120, etc.), smoothing and calculating the mean and 90% confidence interval

  13. Redials over Time Assuming phones that redial after a rejection r times Experiments: training and test phase (15 runs) Results: r is best set to 4/5 – increasing does not lead to better result

  14. Analysis of Babel-SIP Behavior • Mean aggregated over all 15 runs • Rejection of previously accepted messages • Unacceptable behavior • Additional experiments: 14 hard -, 5 soft phones • and 227 test messages (known to be accepted) • None of these messages was rejected

  15. Qualitative Insights Example REGISTER C4.5 tree gives good insights (e.g., for not so well trained protocol newbies): top down / bottom up CSeq is mandatory parameter (as defined in RFC 3621) CallID mandatory

  16. Conclusions and Future Work • Babel-SIP: automatic, self-learning SIP-message translator • Generic approach --> can be applied to other protocols • Important for the transient phase between creating a new SIP stack and final release of a 100% reliable new proxy • Experiments with REGISTER message header rate of rejected message could be nearly halved (22.67% to 13.12%) • So far: we did not include the semantics of the header fields - first idea: take a rule based approach • Investigate other SIP message types (INVITE)‏ • Extend the approach to other application protocols, like HTTP or RTSP

  17. Thank you ! … Announcement:

More Related