Proposed Fix to HERFP* (Heterogeneous Error Response Forking Problem) Rohan Mahy * for INVITE transactions.

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.
IETF 71 SIPPING WG meeting draft-ietf-sipping-pai-update-00.
Non-200 response to PRACK (Due to rejected SDP offer or other reasons) Christer Holmberg
Early Media Authorization Under what conditions should negotiated media flow prior to 200 OK (INVITE)? Richard Ejzak.
Non-INVITE Transaction Issues Robert Sparks dynamicsoft.
Signaling: SIP SIP is one of Many ITU H.323 Originally for video conferencing The first standard protocol for VoIP Still in wide usage, but negative.
IETF 91 DISPATCH draft-jesske-dispatch-forking- answer-correlation-02 Roland Jesske.
Session Initiation Protocol (SIP) By: Zhixin Chen.
Protocols. Basics Defining Interactions VERTICAL Application Presentation Session Transport Network Data Link Physical Please do this for me OK It’s.
1 Extending SIP Speaker: Hsuan-Ming Chen Adviser: Ho-Ting Wu Date: 2005/04/26.
Introduction to SIP Speaker: Min-Hua Yang Advisor: Ho-Ting Wu Date:2005/3/29.
AARNet Copyright 2011 Network Operations SIP Deep Dive Bill Efthimiou APAN33 SIP workshop February 2012.
Session Initiation Protocol (SIP) Common Log Format (CLF) Vijay K. Gurbani Bell Laboratories/Alcatel-Lucent 75 th IETF, Stockholm, Sweden July 26-31, 2009.
Session Initialization Protocol (SIP)
GRUU Mechanism Jonathan Rosenberg. Status Draft-rosenberg-sipping-gruu-reqs-01 defines the problem Draft-rosenberg-sip-gruu submitted with proposed solution.
4 August 2005draft-burger-simple-imdn-011 Instant Message Delivery Notification (IMDN) for Presence and Instant Messaging (CPIM) Messages draft-burger-simple-imdn-01.
Rohan Mahy draft-ietf-sip-join and Semantics of REFER.
Early Media in SIP: Problem Statement, Requirements, and Analysis of Solutions draft-barnes-sip-em-ps-req-sol Richard Barnes BBN Technologies IETF 68,
1 SIP WG meeting 73rd IETF - Minneapolis, MN, USA November, 2008 Return Routability Check draft-kuthan-sip-derive-00 Jiri
SIP Action Referral Rifaat Shekh-Yusef Cullen Jennings Alan Johnston Francois Audet 1 IETF 80, SPLICES WG, Prague March 29, 2011.
Request History – Solution Mary Barnes SIP WG Meeting IETF-57 draft-ietf-sip-history-info-00.txt.
The Session Initiation Protocol (SIP) Common Log Format (CLF)‏ IETF 74, March 2009, San Francisco, CA (USA)‏ Vijay K. Gurbani Eric Burger Humberto Abdelnur.
Session Initiation Protocol Team Members: Manjiri Ayyar Pallavi Murudkar Sriusha Kottalanka Vamsi Ambati Girish Satya LeeAnn Tam.
Call Control with SIP Brian Elliott, Director of Engineering, NMS.
Presented By Team Netgeeks SIP Session Initiation Protocol.
SIPPING IETF 57 Jonathan Rosenberg dynamicsoft.
SIPREC draft-ietf-siprec-req-02 Requirements for Media Recording using SIP Draft authors: K. Rehor, A. Hutton, L. Portman, R. Jain, H. Lum IETF 78.5 Interim.
SIP:Session Initiation Protocol Che-Yu Kuo Computer & Information Science Department University of Delaware May 11, 2010 CISC 856: TCP/IP and Upper Layer.
Draft-elwell-sipping- redirection-reason-00 Author: John Elwell
1 © NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials Company Confidential Issues with HTTP Authentication for SIP Hisham Khartabil SIP WG IETF 59, Seoul.
All Rights Reserved © Alcatel-Lucent 2006, ##### 2G IMS CAVE Based Security Replay Protection Alec Brusilovsky, Zhibi Wang Alcatel-Lucent, July 24, 2007.
Peering: A Minimalist Approach Rohan Mahy IETF 66 — Speermint WG.
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.
Rfc4474bis-01 IETF 90 (Toronto) STIR WG Jon. First principles (yet again) Separating the work into two buckets: 1) Signaling – What fields are signed,
Caller Prefs and Friends Jonathan Rosenberg dynamicsoft.
Making SIP NAT Friendly Jonathan Rosenberg dynamicsoft.
SIP Extensions for Network-Asserted Caller Identity and Privacy within Trusted Networks Flemming Andreasen W. Marshall, K. K. Ramakrishnan,
SIP WG Open Issues IETF 50 Jonathan Rosenberg dynamicsoft.
Open issues from SIP list Jonathan Rosenberg dynamicsoft.
End-to-middle Security in SIP draft-ono-sipping-end2middle-security-04 Kumiko Ono IETF62.
RFC3261 (Almost) Robert Sparks. SIPiT 10 2 Status of the New SIP RFC Passed IETF Last Call In the RFC Editor queue Author’s 48 hours review imminent IMPORTANT:
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.
Indication of Terminated Dialog draft-holmberg-sipping txt Christer Holmberg NomadicLab Ericsson.
Slide #1 Nov 6 -11, 2005SIP WG IETF64 Feature Tags with SIP REFER draft-ietf-sip-refer-feature-param-00 Orit
Location Conveyance in SIP draft-ietf-sip-location-conveyance-01 James M. Polk Brian Rosen 2 nd Aug 05.
SIPWG Slides for IETF 51 Jonathan Rosenberg dynamicsoft.
SIPPING Drafts Jonathan Rosenberg dynamicsoft. Conferencing Package Issues Only one – scope Depends on broader work in conferencing May include –Participant.
Andrew Allen ROUTING OUT OF DIALOG REQUESTS draft-allen-dispatch-routing-out-of-dialog-request-01 Dispatch IETF 92 March 23 rd 2015.
1 Personal Mobility Management for SIP-based VoIP Services 王讚彬 國立台中教育大學資訊工程學系
1 Coping with Early Media Brian Stucker Nortel Systems/Standards Architect November 6th, 2006.
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
Authenticated Identity
ECRIT Interim: SIP Location Conveyance
Session Initiation Protocol
Request History Capability – Requirements & Solution
Examining Session Policy Topologies
An introduction to Transactions & Dialogs
Event Notification in SIP SUBSCRIBE and NOTIFY and an example service
SIP Basics Workshop Dennis Baron July 20, 2005.
Presentation transcript:

Proposed Fix to HERFP* (Heterogeneous Error Response Forking Problem) Rohan Mahy * for INVITE transactions

Crux of HERFP When a UAC sends an INVITE and it forks, the forking proxy only delivers the “best response” –if it gets a 4xx or 5xx, or a 3xx for which the proxy does not recurse, these responses don’t get back to the UAC until all other branches are exhausted –if you get multiple 3xx, 4xx, or 5xx responses, the UAC can’t predict which ones it will get –the UAC cannot use SIP negotiation to fix some otherwise repairable responses

Some Repairable Responses all 3xx redirects 401/407 Digest Challenges 402 Payment Required 405/501 Method not allowed (switch to MESSAGE) 406/415/488 Not acceptable media 413/513 Too big 416 Unsupported URI scheme (SIPS->SIP) 420/421 Option Tags 493 Undecipherable 422/423 Too Brief 429 Provide Referrer ID 494 Need Sec-Agree 505 Unsupported Version 580 Precondition Failure Not Repairable in this context 408 Timeout 487 Request Terminated 503 Unavailable 480 Temp Unavailable 486 Busy 484 Keep dialing 485 Ambiguous

The Proposal (in a nutshell) For each failed branch, proxy generates a provisional response and a branch-specific URI The provisional response (130) contains the original response in a sipfrag, and copies its To-tag. The Contact header in the 130 is the branch-specific URI with a preloaded To header (so Identity works). The UAC sends a request to each branch-specific URI to either explicitly decline or repair the error since branch-specific URIs route to the forking proxy, the proxy can still add and cancel branches from the original fork set (in serial or parallel) The method works even if none of the UAS support the extension. Only the UAC and the proxy which forks.

UAC Proxy UAS1 UAS2 | | | | |--INVITE-->| | | | |--INVITE-->| | | |--INVITE >| | |< | |< | | | | |< | | | |----ACK--->| | |< | | | |--INVITE-->| | | | |--INVITE-->| | | |< | | |< | | | | | | | | |< | | |< OK-| | | |----ACK >| | | |--CANCEL >| | |< (CANCEL)-| | |< | | |-----ACK >| | | | |

Suggestions on the list that don’t work Use a timer to decide if the UAC will repair a branch. This delays a final response unnecessarily. “Just” have the UAS do something to prevent HERFP. The whole problem is that each UAS doesn’t have identical capabilities. Doesn’t fix HERFP, although you could maybe help a bit. Not the focus of this draft. Send multiple final error responses or no final error responses for original branch. Breaks downstream proxies.

Suggestions from the list that work Currently the UAC sends CANCEL to convey it will not repair a branch. –That doesn’t always work (oops) –Adam Roach suggested a new method. –Bob Penfield suggested using BYE. More aggressively trim the list of repairable errors. Discuss privacy implications. Provide guidance about why certain responses are useful and others are not (408, 503, etc..) Change the name of the 130 response. Maybe “Embedded Error”? Delete the appendix

Other concerns from the list What final response is sent for the original transaction? Still the best response, but all abandoned branches are considered as 487s. PRACK and all the offer/answer machinery? Yes, its a lot of stuff to implement. Any suggestions? Why not solve for non-INVITE transactions? It is a non-issue for SUBSCRIBE/NOTIFY. Other NITs outside a dialog are contraindicated by the NIT actions document. What if you are forking more than once? If a HERF- aware proxy wants to fork outside the domain, send a 130 with an embedded 3xx. A HERF-unaware proxy is oblivious The draft mentions response Identity (specifically integrity). Is this useful, needed, or a waste of time?

What do we do with this? Do people like the idea? Is anyone willing to implement it? (Other than me) Next Steps?