ANM 2008, Phoenix – April, 18 th Helmut Hlavacs, Andrea Hess, Michael Nussbaumer [email protected]University of Vienna Department of Distributed and Multimedia Systems Babel-SIP: Self-learning SIP Message Adaptation for Increasing SIP- Compatibility
17
Embed
ANM 2008, Phoenix – April, 18 th Helmut Hlavacs, Andrea Hess, Michael Nussbaumer [email protected] University of Vienna Department of Distributed.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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)
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
C4.5 Decision TreesUsed 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 AOutput: attribute vector A with new valuesFOREACH (Ai in A)Ai.value = 0IF (Ai.name in SIP message) THEN IF (SIP message field is numeric) THEN Ai.value = value of SIP message field ELSE Ai.value = 1
Number of messages classified / wrong classifications
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.atBabel SIP
Proxy biloxy.com
Registrar
Bob’s UA
1. REGISTER 4. 200 OK
Location Server
Babel-SIP
2. REGISTER
3. 200 OK
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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%)
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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