SIP Session Timer Glare Handling

Slides:



Advertisements
Similar presentations
Re-INVITE Handling draft-camarillo-sipping-reinvite-00.txt
Advertisements

SIP(Session Initiation Protocol) - SIP Messages
SIP Session-ID draft-kaplan-sip-session-id-02 Hadriel Kaplan.
1 © 2001, Cisco Systems, Inc. All rights reserved. © 2004, Cisco Systems, Inc. All rights reserved. Location Conveyance in SIP draft-ietf-sipping-location-requirements-02.
Indication of support for keep- alive draft-holmberg-sip-keep-03 Christer Holmberg
SIP Interconnect Guidelines draft-hancock-sip-interconnect-guidelines-02 David Hancock, Daryl Malas.
Non-200 response to PRACK (Due to rejected SDP offer or other reasons) Christer Holmberg
July 13, 2006SIPPING WG IETF 66Slide # 1 ETSI TISPAN call completion services (draft-poetzl-sipping-call-completion-00) Roland
Early Media Authorization Under what conditions should negotiated media flow prior to 200 OK (INVITE)? Richard Ejzak.
SIP Working Group Jonathan Rosenberg dynamicsoft.
Fast L3 Handoff in Wireless LANs Andrea G. Forte Sangho Shin Henning Schulzrinne.
Some early SIPREC interop testing results Hadriel Kaplan.
SIP Testing Methodology Elie Cohen ProLab PM 17/01/2003.
SIP Security Issues: The SIP Authentication Procedure and its Processing Load Stefano Salsano, DIE — Universit à di Roma “ Tor Vergata ” Luca Veltri, and.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 23 Electronic Mail: SMTP,
Session Initiation Protocol (SIP) By: Zhixin Chen.
GRUU Mechanism Jonathan Rosenberg. Status Draft-rosenberg-sipping-gruu-reqs-01 defines the problem Draft-rosenberg-sip-gruu submitted with proposed solution.
Proxy Authentication of the Emergency Status of SIP Calls draft-barnes-ecrit-auth-00 Richard Barnes IETF 69, Chicago, IL, USA.
Session-ID Requirements for IETF84 draft-ietf-insipid-session-id-reqts-00 1 August 2012 Paul Jones, Gonzalo Salgueiro, James Polk, Laura Liess, Hadriel.
Request History – Solution Mary Barnes SIP WG Meeting IETF-57 draft-ietf-sip-history-info-00.txt.
SIP OAuth Rifaat Shekh-Yusef IETF 90, SIPCore WG, Toronto, Canada July 21,
All rights reserved © 1999, Alcatel, Paris. page n° 1 SIP for Xcast SIP for the establishment of xcast-based multiparty.
Presented By Team Netgeeks SIP Session Initiation Protocol.
November 2005IETF64 - ECRIT1 Emergency Service Identifiers draft-ietf-sipping-sos-01 draft-schulzrinne-sipping-service-01 Henning Schulzrinne Columbia.
1 Diameter SIP application draft-ietf-aaa-diameter-sip-app-03.txt 60 th IETF meeting August 3 rd, 2004 Status.
1 SIPREC draft-ietf-siprec-architecture-00 An Architecture for Media Recording using SIP IETF SIPREC INTERIM – Sept 28 th 2010 Andrew Hutton.
Slide title In CAPITALS 50 pt Slide subtitle 32 pt RTSP 2.0 TLS handling Magnus Westerlund draft-ietf-mmusic-rfc2326bis-12.
Draft-elwell-sipping- redirection-reason-00 Author: John Elwell
All Rights Reserved © Alcatel-Lucent 2006, ##### 2G IMS CAVE Based Security Replay Protection Alec Brusilovsky, Zhibi Wang Alcatel-Lucent, July 24, 2007.
SIP Interconnect Guidelines draft-hancock-sip-interconnect-guidelines-01 David Hancock, Daryl Malas.
SIP INFO Event Framework (draft-kaplan-sip-info-events-00) Hadriel Kaplan Christer Holmberg 70th IETF, Vancouver, Canada.
SIP working group IETF#70 Essential corrections Keith Drage.
Interworking between SIP and QSIG for call transfer draft-rey-sipping-qsig2sip-transfer-00.txt Jean-Francois Rey Alcatel IETF59.
1 IETF 76 Hiroshima DISPATCH WG SIP Alert-Info URN draft-liess-dispatch-alert-info-urns-00 Denis Alexeitsev Laura Liess
SIP Performance Benchmarking draft-ietf-bmwg-sip-bench-term-01 draft-ietf-bmwg-sip-bench-meth-01 March 22, 2010 Prof. Carol Davids, Illinois Inst. of Tech.
SIP Extensions for Network-Asserted Caller Identity and Privacy within Trusted Networks Flemming Andreasen W. Marshall, K. K. Ramakrishnan,
SIP-H.323 Interworking Group RRR-1 IETF-48 SIP-H.323 Interworking Requirements draft-agrawal-sip-h323-interworking-reqs-00.txt Hemant.
Real-Time Streaming Protocol draft-ietf-mmusic-rfc2326bis-01.txt Magnus Westerlund.
Open issues from SIP list Jonathan Rosenberg dynamicsoft.
A Framework for Session Initiation Protocol User Agent Profile Delivery (draft-ietf-sipping-config-framework-11) SIPPING – IETF 68 Mar 19, 2007 Sumanth.
1 RFC4028 Session Timer in the Session Initiation Protocol Speaker : Ying Shun Lin Adviser : Quincy Wu.
GRUU Jonathan Rosenberg Cisco Systems. Changes in -06 Editorial as a result of RFC-ED early copy experiment.
July 28, 2008BLISS WG IETF-721 The Multiple Appearance Feature using the Session Initiation Protocol (SIP) draft-johnston-bliss-mla-req-02 Alan Johnston.
SIP Events: Changes and Open Issues IETF 50 / SIP Working Group Adam Roach
Call Completion using BFCP draft-roach-sipping-callcomp-bfcp IETF 67 – San Diego November 7, 2006.
DOC Use Case Analysis Client to server use cases 1.
Indication of Terminated Dialog draft-holmberg-sipping txt Christer Holmberg NomadicLab Ericsson.
Location Conveyance in SIP draft-ietf-sip-location-conveyance-01 James M. Polk Brian Rosen 2 nd Aug 05.
March 20th, 2001 SIP WG meeting 50th IETF SIP WG meeting Overlap signalling handling
1 End-to-middle Security in SIP Kumiko Ono NTT Corporation March 1, 2004 draft-ietf-sipping-e2m-sec-reqs-01.txt draft-ono-sipping-end2middle-security-01.txt.
Andrew Allen ROUTING OUT OF DIALOG REQUESTS draft-allen-dispatch-routing-out-of-dialog-request-01 Dispatch IETF 92 March 23 rd 2015.
SIP Info Framework draft-ietf-sip-info-events-03 Eric Burger Hadriel Kaplan Christer Holmberg March 20091IETF 74 - San Francisco, CA, USA.
SIP wg Items Jonathan Rosenberg dynamicsoft Caller Preferences: Changes Discussion of Redirects –Previous draft only proxy –Nothing different for redirect.
SESSION-ID Backward COMPATIBILITY
Volker Hilt SIP Session Policies Volker Hilt
Session-Independent Policies draft-ietf-sipping-session-indep-policy-02 Volker Hilt Jonathan Rosenberg Gonzalo.
End-to-middle Security in SIP
ECRIT Interim: SIP Location Conveyance
Kumiko Ono End-to-middle Security in SIP draft-ietf-sipping-e2m-sec-reqs-04 draft-ono-sipping-end2middle-security-03 Kumiko Ono.
draft-ietf-simple-message-sessions-00 Ben Campbell
PSAP Callback Identifier
Request-URI Param Delivery
An introduction to Transactions & Dialogs
Requirements and Implementation Options for the Multiple Line Appearance Feature using the Session Initiation Protocol (SIP) draft-johnston-bliss-mla-req-00.
Alfredo Terzoli / Mosioua Tsietsi
Simulation of Session Initiation Protocol
call completion services
網際網路電話系統 期中考重點整理.
An Architecture for Media Recording using the Session Initiation Protocol draft-ietf-siprec-architecture Andy Hutton
IETF 87 DHC WG Berlin, Germany Thursday, 1 August, 2013
Presentation transcript:

SIP Session Timer Glare Handling 2018-02-21 SIP Session Timer Glare Handling IETF#101 London, UK draft-ietf-sipcore-sessiontimer-race-01 Christer.Holmberg@ericsson.com Christer Holmberg ER 2018-03-14

THE AGENDA THE FLOW Real-life deployment use-case causing problem THE BLAME Different opinions on which entity to blame THE STANDARD Ambiguities/missing parts in RFC 4028 THE SOLUTION Describing the solution currently defined in the draft THE LIST Picks from the mailing list comments on the defined solution THE WAY FORWARD

THE FLOW UA Proxy AS -------------------> INVITE (#1)   -------------------> INVITE (#1) Supported:timer SE:refresher=uac INVITE (#2) <------------------- 18x (#3) 18x (#4) +++early dialog established +++

THE FLOW UA Proxy AS -------------------> INVITE (#1)   -------------------> INVITE (#1) Supported:timer SE:refresher=uac INVITE (#2) <------------------- 18x (#3) 18x (#4) +++early dialog established +++ The 18x does not contain the SE (Session-Expires) header field, because only allowed in INVITE, UPDATE and 2xx.

THE FLOW UA Proxy AS <------------------- UPDATE (#5)   <------------------- UPDATE (#5) Supported:timer SE:refresher=uas UPDATE (#6) -------------------> 200 (UPDATE) (#7) 200 (UPDATE) (#8) Require:timer SE:refresher=uac 480 (INVITE) (#9) 480 (INVITE (#10) THE FLOW

THE FLOW UA Proxy AS <------------------- UPDATE (#5)   <------------------- UPDATE (#5) Supported:timer SE:refresher=uas UPDATE (#6) -------------------> 200 (UPDATE) (#7) 200 (UPDATE) (#8) Require:timer SE:refresher=uac 480 (INVITE) (#9) 480 (INVITE (#10) THE FLOW When UPDATE request is sent, the initial session timer negotiation is still ongoing. Refresher role is changed from uac to uas.

THE FLOW UA Proxy AS <------------------- UPDATE (#5)   <------------------- UPDATE (#5) Supported:timer SE:refresher=uas UPDATE (#6) -------------------> 200 (UPDATE) (#7) 200 (UPDATE) (#8) Require:timer SE:refresher=uac 480 (INVITE) (#9) 480 (INVITE (#10) THE FLOW "In a session refresh request sent within a dialog with an active session timer, the Session-Expires header field SHOULD be present.“ Q: Is session timer “active”? When UPDATE request is sent, the initial session timer negotiation is still ongoing. Refresher role is changed from uac to uas.

THE FLOW UA Proxy AS <------------------- UPDATE (#5)   <------------------- UPDATE (#5) Supported:timer SE:refresher=uas UPDATE (#6) -------------------> 200 (UPDATE) (#7) 200 (UPDATE) (#8) Require:timer SE:refresher=uac 480 (INVITE) (#9) 480 (INVITE (#10) THE FLOW "In a session refresh request sent within a dialog with an active session timer, the Session-Expires header field SHOULD be present.“ Q: Is session timer “active”? When UPDATE request is sent, the initial session timer negotiation is still ongoing. Refresher role is changed from uac to uas. The UA does not include refresher in the UPDATE response. UA considers session-timer negotiation still ongoing?

THE FLOW UA Proxy AS <------------------- UPDATE (#5)   <------------------- UPDATE (#5) Supported:timer SE:refresher=uas UPDATE (#6) -------------------> 200 (UPDATE) (#7) 200 (UPDATE) (#8) Require:timer SE:refresher=uac 480 (INVITE) (#9) 480 (INVITE (#10) THE FLOW "In a session refresh request sent within a dialog with an active session timer, the Session-Expires header field SHOULD be present.“ Q: Is session timer “active”? When UPDATE request is sent, the initial session timer negotiation is still ongoing. Refresher role is changed from uac to uas. The UA does not include refresher in the UPDATE response. UA considers session-timer negotiation still ongoing? “This proxy MUST insert a Session-Expires header field into the response with the value it remembered from the forwarded request. It MUST set the value of the 'refresher' parameter to 'uac'.”

THE FLOW UA Proxy AS <------------------- UPDATE (#5)   <------------------- UPDATE (#5) Supported:timer SE:refresher=uas UPDATE (#6) -------------------> 200 (UPDATE) (#7) 200 (UPDATE) (#8) Require:timer SE:refresher=uac 480 (INVITE) (#9) 480 (INVITE (#10) THE FLOW "In a session refresh request sent within a dialog with an active session timer, the Session-Expires header field SHOULD be present.“ Q: Is session timer “active”? When UPDATE request is sent, the initial session timer negotiation is still ongoing. Refresher role is changed from uac to uas. The UA does not include refresher in the UPDATE response. UA considers session-timer negotiation still ongoing? “This proxy MUST insert a Session-Expires header field into the response with the value it remembered from the forwarded request. It MUST set the value of the 'refresher' parameter to 'uac'.”

UA Proxy AS   -------------------> INVITE (#1) Supported:timer SE:refresher=uac INVITE (#2) <------------------- 18x (#3) 18x (#4) +++early dialog established +++ UA Proxy AS   <------------------- UPDATE (#5) Supported:timer SE:refresher=uas UPDATE (#6) -------------------> 200 (UPDATE) (#7) 200 (UPDATE) (#8) Require:timer SE:refresher=uac 480 (INVITE) (#9) 480 (INVITE (#10)

2018-02-21 THE BLAME Application Server (AS) shall not change refresher role while initial session-timer negotiation is still ongoing. User Agent (UA) shall include the refresher parameter in the UPDATE response. Application Server (AS) shall not reject the INVITE request because of the session-timer ambiguity. Etc etc etc.

2018-02-21 THE STANDARD RFC 4028 does describe session-timer procedures for mid-dialog requests However, the procedures do not cover the case when a mid-dialog request is sent during an ongoing session-timer negotiation transaction (INVITE transaction).

2018-02-21 THE SOLUTION (DRAFT) A Session-Expires header field can only be included in a session refresh request if there is no ongoing negotiation of usage of the session timer mechanism, and if there is no ongoing INVITE transaction. A UA shall, if it receives a session refresh request with a Session-Expires header field during an ongoing negotiation of usage of the session timer mechanism, or when there is an ongoing INVITE transaction, send a 491 (Request Pending) response to the request. The absence of a Session-Expires header field in a response will disable usage of the session timer mechanism only if the associated request contained a Session-Expires header field.

THE SOLUTION (MODIFICATION) 2018-02-21 THE SOLUTION (MODIFICATION) A Session-Expires header field can only be included in a session refresh request if there is no ongoing negotiation of usage of the session timer mechanism, and if there is no ongoing INVITE transaction. A UA shall, if it receives a session refresh request with a Session-Expires header field during an ongoing negotiation of usage of the session timer mechanism, or when there is an ongoing INVITE transaction, send a 491 (Request Pending) response to the request. The absence of a Session-Expires header field in a response will disable usage of the session timer mechanism only if the associated request contained a Session-Expires header field. Not possible to disable usage of session timer while there is an ongoing negotiation of the usage of the session timer.

2018-02-21 THE COMMENTS “I'll propose that the session timer negotiation never be done with an UPDATE within an INVITE transaction. (Regardless of whether than INVITE is negotiating a session timer or not.) I think this resolves the problem that you have encountered.” (Paul K, 09-13-2017) “I had a chat with some product people, and they said that there actually ARE cases where the session timer is negotiated using UPDATE when the initial INVITE transaction is still ongoing. There are cases where the INVITE only contains Supported:timer, but the actual negotiation is done using UPDATE.” (Christer H, 09-14-2017)

2018-02-21 THE COMMENTS “I am inclined to keep things simple by saying that the 2xx response to every INVITE or UPDATE redefines the state of the session timer, either on or off. That will of course break the use case you describe above.“ (Paul K, 09-14-2017) “The problem here is that the UAC sends INVITE with S-E, and then receives an UPDATE with S-E before it has received a 2xx response to the INVITE - making the UAC think that there is a S-E glare situation (i.e., the UAS also tries to initiate session timer negotiation).” (Christer H, 10-05-2017)

2018-02-21 THE WAY FORWARD Whatever solution we decide upon is going to impact existing deployments Focus on the phase while session-timer negotiation is ongoing Aim should be to minimize impact on user endpoints Network entities easier to fix Aim is to fix/clarify existing session-timer mechanism, not re-define it from scratch

THE END