Slide 1 Feature Interactions between SIP Call Control Services Mario Kolberg University of Stirling
Slide 2 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 3 Location of User SIP supports user mobility like addresses: 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 4 A SIP Example Bob Laura (1) INVITE (2) 180 Ringing (3) 200 OK (4) ACK Conversation (5) BYE (6) 200 OK
Slide 5 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 6 Applied Approach Triggering party Connection type –Source, destination –Original connection –Connection after feature activation –Parties & Treatment TP: B; (A, B) (A, C)
Slide 7 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 8 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 9 Connection Looping CFB: TP: B; (A, B) (A, C) CFU: TP: C; (A, C) (A, B)
Slide 10 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 11 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 12 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 13 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 14 Example INVITE Chris INVITE Bob Contype CFU 486 Busy Contype CFU Alice Proxy (CFB) Bob Proxy (CFU) INVITE Bob Contype: CFU FI detected between CFU and CFB CFU Triggered CFB Triggered Contype: ID=CFU; Not all services are triggered by INVITE messages some are triggered by responses (486 Busy) Contype header needs to be copied into responses
Slide 15 Experimentation – Example 2 SER, Pingtel phone, kphone
Slide 16 Experimentation SIP/ OK Via: SIP/2.0/UDP ;branch=z9hG4bKafde.6e4854d4.0 Via: SIP/2.0/UDP ConType: ID=CFU; Forwarded-To: From: ;tag=1c8060 To: ;tag=1A8019B3 Contact: "root" Record-Route:, Who sent this reply – Alice or Bob? Contact header Record route
Slide 17 Case Study + Results 9 services CFU, CFB, OCS, TCS, VM, AR, DND, HL, GR
Slide 18 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 19 Discussion cont. some services are triggered differently than in the PSTN CFB+TCS do not interact? INVITE Bob 486 Busy Alice Proxy (CFB, TCS) Bob INVITE Bob INVITE Chris Chris 403 Screened