31YD: Technologies for e

Download Report

Transcript 31YD: Technologies for e

Feature Interactions between SIP
Call Control Services
Mario Kolberg
University of Stirling
Slide 1
Introduction: SIP
• SIP: Session Initiation Protocol, IETF
• used for signalling, setup, modification and
termination of a session
• media is separate
• text based protocol, based on HTTP
• 2 types of devices: end devices and servers
• user agents: initiate and respond to signalling,
send and receive media, may provide services, e.g.
SIP phones, soft phones
• servers: redirect, proxy, registrar
Slide 2
Location of User
• SIP supports user mobility
• email like addresses: sip:[email protected]
• but user may be located at discus.cs.stir.ac.uk and be
logged on as mko0123
• public address vs. current location
• users need to register with a registrar
• work closely with proxy and redirect servers
• invitations are sent from UA via a number of servers to
another UA
• can host services
Slide 3
A SIP Example
Bob
Laura
(1) INVITE
(2) 180 Ringing
(3) 200 OK
(4) ACK
Conversation
(5) BYE
(6) 200 OK
Slide 4
Feature Interactions
• truly distributed architecture
• highly programmable components
• servers may be under the control of different
organisations
• end users may deploy their own services
• increased number of addresses
Slide 5
Applied Approach
TP: B; (A, B)  (A, C)
• Triggering party
• Connection type
–
–
–
–
Source, destination
Original connection
Connection after feature activation
Parties & Treatment
Slide 6
Applied Approach
• Analysis pairs of features
• Compare two feature descriptions according
to four rules
•
•
•
•
Single User Dual Feature Control
Connection Looping
Redirection and Treatment
Diversion and Reversing
Slide 7
Single User – Dual Control
CFB: TP: B; (A, B)  (A, C)
CFU: TP: B; (A, B)  (A, C)
AR: TP: A; (B, A)  (A, B)
HL: TP: A; (A, B)  (A, B)
Slide 8
Connection Looping
CFB: TP: B; (A, B)  (A, C)
CFU: TP: C; (A, C)  (A, B)
Slide 9
Redirection and Treatment
CFB: TP: C; (A, C)  (A, B)
OCS: TP: A; (A, B)  (A, Treat)
AR:
TP: B; (A, B)  (B, A)
OCS: TP: B; (B, A)  (B, Treat)
Slide 10
Diversion and Reversing
CFB: TP: C; (A, C)  (A, B)
AR:
TP: B; (A, B)  (B, A)
CFB: TP: A; (B, A)  (B, C)
AR:
TP: B; (A, B)  (B, A)
Slide 11
Application to SIP
• SIP CGI (ish)
• when a service gets executed its description is included
into the message
• descriptions are included using a new header (Contype)
• if there is already a description, apply the rules to find
interactions
• services need to be surrounded by a cocoon which contains
the description for that service and the algorithm
Slide 12
Resolution
•
•
•
•
if an interaction is detected  resolution
results from second service are discarded
more elaborated approaches possible, policies
approaches may be tuned towards various goals
– most services executed
– execute all services which are subscribed to by the party who pays
for the call
– private environment: services of an organisation may have
priorities over services of an individual
• it’s all about priorities
• currently, the priority is with the services executed first
Slide 13
Example
Contype: ID=CFU; TP=sip:[email protected];
[email protected]; [email protected];
[email protected]; [email protected];
Proxy (CFU)
Alice
INVITE Chris
Proxy (CFB)
CFU Triggered
INVITE Bob
Contype: CFU
INVITE Bob
Contype CFU
486 Busy
Contype CFU
CFB Triggered
FI detected
between
CFU and CFB
Bob
• Not all services are
triggered by INVITE
messages
• some are triggered by
responses (486 Busy)
• Contype header needs to be
copied into responses
Slide 14
Experimentation – Example 2
• SER, Pingtel phone, kphone
Proxy server discus.cs.stir.ac.uk
IP address: 139.153.254.50
OCS [email protected]
.uk
ac
ir.
cs.st
ir.ac
.
(2) I
SIP: nvitatio
alice n for
@d2
5420
3.
.st
cs
uk
Proxy server d254203.cs.stir.ac.uk
IP address: 139.153.254.203
CFU to [email protected]
.
or 03
n f 42
tio 25
ita @d
nv ce
) I li
(1 IP: a
S
ac.
ir.
s.st
for 3.c
ion 420
itat 25
Inv @d
(3) : bob
SIP
uk
UAC [email protected]
139.153.254.203:5062
UAC [email protected]
139.153.254.222
Slide 15
Experimentation
SIP/2.0 200 OK
Via: SIP/2.0/UDP 139.153.254.50;branch=z9hG4bKafde.6e4854d4.0
Via: SIP/2.0/UDP 139.153.254.222
ConType: ID=CFU; TP=sip:[email protected];
[email protected];
[email protected];
[email protected];
[email protected]
Forwarded-To: <sip:[email protected]>
From: <sip:[email protected]>;tag=1c8060
To: <sip:[email protected]>;tag=1A8019B3
Contact: "root" <sip:[email protected]:5062;transport=udp>
Record-Route: <sip:[email protected];ftag=1c8060;lr=lr>,
<sip:[email protected];ftag=1c8060;lr=lr>
• Who sent this reply – Alice or Bob?
• Contact header
• Record route
Slide 16
Case Study + Results
• 9 services
• CFU, CFB, OCS, TCS, VM, AR, DND, HL, GR
CFU
CFB
OCS
TCS
VMS
AR
DND
HL
GR
CFU

CFB


OCS


TCS
x


VMS
x

x
x
AR






DND
x

x
x

HL




GR



x
x

x

Slide 17
Discussion
• all distributed interactions are detected
• single component interactions are an issue
– if a service drops original INVITE which services is executed first?
• are single component interactions in fact interactions in
SIP?
– usually a list of services to be executed on a component  implicit
ordering/priorities
• ISSUES: multiple addresses for a party
– identifying a party from a response message
Slide 18
Discussion cont.
• some services are triggered differently than in the
PSTN
• CFB+TCS do not interact?
Alice
Proxy (CFB, TCS)
Bob
Chris
INVITE Bob
403 Screened
INVITE Bob
486 Busy
INVITE Chris
Slide 19