Skip to main content

A Media-based Traceroute Function for the Session Initiation Protocol (SIP)

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 7403.
Author Hadriel Kaplan
Last updated 2014-07-10 (Latest revision 2014-03-11)
RFC stream Internet Engineering Task Force (IETF)
Additional resources Mailing list discussion
Stream WG state Submitted to IESG for Publication
Document shepherd Victor Pascual
Shepherd write-up Show Last changed 2014-04-11
IESG IESG state Became RFC 7403 (Proposed Standard)
Consensus boilerplate Yes
Telechat date (None)
Needs a YES. Needs 10 more YES or NO OBJECTION positions to pass.
Responsible AD Richard Barnes
Send notices to,
IANA IANA review state IANA OK - No Actions Needed
STRAW Working Group                                           H. Kaplan 
Internet Draft                                                   Oracle 
Intended status: Standards Track                         March 11, 2014 
Expires: September 11, 2014                                             
                   A Media-based Traceroute Function for  
                   the Session Initiation Protocol (SIP) 
   SIP already provides the ability to perform hop-by-hop traceroute 
   for SIP messages using the Max-Forwards header field, in order to 
   determine the reachability path of requests to a target.  A 
   mechanism for media-loopback calls has also been defined separately, 
   which enables test calls to be generated which result in media being 
   looped back to the originator.  This document describes a means of 
   performing hop-by-hop traceroute-style test calls using the media-
   loopback mechanism, in order to test the media path when SIP 
   sessions go through media-relaying B2BUAs. 
Status of this Memo
   This Internet-Draft is submitted to IETF in full conformance with 
   the provisions of BCP 78 and BCP 79. 
   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups.  Note that 
   other groups may also distribute working documents as Internet-
   Internet-Drafts are draft documents valid for a maximum of six 
   months and may be updated, replaced, or obsoleted by other documents 
   at any time.  It is inappropriate to use Internet-Drafts as 
   reference material or to cite them other than as "work in progress." 
   The list of current Internet-Drafts can be accessed at 
   The list of Internet-Draft Shadow Directories can be accessed at 
   This Internet-Draft will expire on September 11, 2014.  

Kaplan                  Expires September 2014                [Page 1] 

Internet-Draft         Media-Traceroute for SIP             March 2014 
Copyright Notice
   Copyright (c) 2014 IETF Trust and the persons identified as the 
   document authors.  All rights reserved.  
   This document is subject to BCP 78 and the IETF Trust's Legal 
   Provisions Relating to IETF Documents 
   ( in effect on the date of 
   publication of this document.  Please review these documents 
   carefully, as they describe your rights and restrictions with 
   respect to this document.  Code Components extracted from this 
   document must include Simplified BSD License text as described in 
   Section 4.e of the Trust Legal Provisions and are provided without 
   warranty as described in the Simplified BSD License. 
Table of Contents 
   1.    Terminology.................................................2 
   2.    Introduction................................................3 
   3.    The SIP Traceroute Mechanism................................4 
      3.1.   Processing a Received Max-Forwards Header Field........4 
      3.2.   Answering the INVITE...................................5 
   4.    Security Considerations.....................................5 
   5.    IANA Considerations.........................................5 
   6.    Acknowledgments.............................................6 
   7.    References..................................................6 
      7.1.   Normative References...................................6 
   Author's Address..................................................6 
1. Terminology
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   document are to be interpreted as described in [RFC2119]. 
   B2BUA: a SIP Back-to-Back User Agent, which is the logical 
   combination of a User Agent Server (UAS) and User Agent Client 
   UAS: a SIP User Agent Server. 
   UAC: a SIP User Agent Client. 
   Traceroute: a mechanism to trace a path of hops from an originator 
   to a destination.  For IP, this is typically done using the TTL 
   field of the IP header, starting at the value 1 and incrementing by 
   1 as each IP hop responds with an ICMP error.  For SIP this can be 

Kaplan                 Expires - September 2014               [Page 2] 

Internet-Draft         Media-Traceroute for SIP             March 2014 
   done using Max-Forwards header field starting with the value 0, in a 
   similar fashion to the TTL field. 
   It is assumed the reader is already familiar with media-loopback 
2. Introduction 
   In many deployments, the media for SIP-created sessions does not 
   flow directly from the originating user's UAC to the answering 
   user's UAS.  Often, SIP B2BUAs in the SIP signaling path also insert 
   themselves in the media plane path by manipulating SDP, either for 
   injecting media such as rich-ringtones or music-on-hold, or for 
   relaying media in order to provide functions such as transcoding, 
   IPv4-IPv6 conversion, NAT traversal, SRTP termination, media 
   steering, etc. 
   As more and more SIP domains get deployed and interconnect, the odds 
   of a SIP session crossing such media-plane B2BUAs increases, as well 
   as the number of such B2BUAs any given SIP session may go through.  
   In other words, any given SIP session may cross any number of 
   B2BUA's both in the SIP signaling plane as well as media plane. 
   If failures or degradation occur in the media plane, it is difficult 
   to determine where in the media path they occur.  In order to aid 
   managing and troubleshooting SIP-based sessions and media crossing 
   such B2BUAs, it would be useful to be able to progressively test the 
   media path as it reaches successive B2BUAs with a test controlled in 
   a single-ended way from the source UA.  A mechanism to perform 
   media-loopback test sessions has been defined in [RFC6849], but it 
   cannot be used to directly to test B2BUAs because typically the 
   B2BUAs do not have an Address of Record (AoR) to be targeted, nor is 
   it known a priori which B2BUAs will be crossed for any given 
   For example, suppose calls from Alice to Bob have media problems.  
   Alice would like to test the media path to each B2BUA in the path to 
   Bob separately, to determine which segment has the issues.  Alice 
   cannot target the B2BUAs directly for each test call, because she 
   doesn't know what URIs to use to target them; nor would using such 
   URIs guarantee the same media path be used as a call to Bob.  A 
   better solution would be to make a test call targeted to Bob, but 
   with a SIP traceroute-type mechanism that makes the call terminate 
   at the B2BUAs, such that she can perform test sessions to test the 
   media path to each downstream B2BUA. 
   This document defines how such a mechanism can be employed, using 
   the [RFC6849] mechanism along with the Max-Forwards SIP header field 
   such that a SIP User Agent can make multiple test calls, each 
Kaplan                 Expires - September 2014               [Page 3] 

Internet-Draft         Media-Traceroute for SIP             March 2014 
   reaching a B2BUA further downstream.  Each B2BUA in the path that 
   supports the mechanism in [RFC6849] would answer the media-loopback 
   call, and thus the originating SIP UA can test the media path up to 
   that B2BUA. 
3. The SIP Traceroute Mechanism 
   The Max-Forwards header field can already be used to perform a 
   simple SIP-request traceroute mechanism by generating a SIP request 
   initially using a Max-Forwards value of 0, receiving a 483 Too Many 
   Hops response from the next-hop, and then incrementing the value for 
   subsequent SIP requests, thereby reaching SIP devices further and 
   further downstream and receiving 483 from each of them. 
   The mechanism described in this document uses such a Max-Forwards 
   style traceroute to perform media-loopback testing.  To perform a 
   SIP media-plane traceroute, the originating UAC generates a SIP 
   INVITE to a target AoR, with a Max-Forwards header field value of 0 
   and with SDP based on [RFC6849].  The SIP next-hop will either 
   reject the request with a 483 Too Many Hops response, or if the 
   next-hop is a B2BUA that supports this mechanism, and if the B2BUA 
   allows such testing from the requesting UAC, then the B2BUA will 
   answer the INVITE to establish the dialog and create a media-
   loopback session. 
   The originating UAC can then generate another INVITE to the same 
   target AoR with a Max-Forwards header field value of 1, which will 
   reach the second SIP, and so on. 
   A defined [RFC3326] SIP Reason header field cause value of '483' 
   will be in the 200 answer from each B2BUA answering the INVITE, 
   until the INVITE reaches the final UAS, which does not use the 
   Reason cause value. (see Section 3.2 for details) 
   Using this mechanism a SIP UAC can test the path from itself to each 
   successive B2BUA on the path to a target.  Such a mechanism could 
   also be useful for establishing a permanent test call between an 
   Enterprise and a Service Provider across a SIP Trunk, for example, 
   or for automated measurement systems to test the media path between 
   domains, etc. 
3.1. Processing a Received Max-Forwards Header Field 
   As currently defined in [RFC3261], the UAS half of a B2BUA does not 
   technically need to inspect the Max-Forwards header field value for 
   received requests - only Proxies do.  This behavior was updated by 
   [draft-loop-detection], such that a compliant B2BUA needs to both 
   inspect the value in order to prevent loops, as well as copy and 
   decrement the value as if it were a Proxy.  This document also 
Kaplan                 Expires - September 2014               [Page 4] 

Internet-Draft         Media-Traceroute for SIP             March 2014 
   requires such behavior in order for the mechanism to succeed; 
   therefore a B2BUA supporting the traceroute mechanism defined in 
   this document MUST also comply with [draft-loop-detection]. 
3.2. Answering the INVITE  
   If a SIP B2BUA receives a dialog-creating INVITE request with a Max-
   Forwards header value of 0, with SDP for media-loopback based on 
   [RFC6849], and the policies of the B2BUA allow it to answer such a 
   request, then it is answered as if the original target of the 
   request were the local SIP B2BUA.  The normal procedures of SIP 
   apply, as well as [RFC6849], as if the request had been targeted at 
   the local B2BUA device as the intended destination all along. 
   In the 200 response for the INVITE, the B2BUA MUST also add a Reason 
   header, per [RFC3326], with a protocol field value of "SIP", a cause 
   field value of "483", and a reason-text value of "Traceroute 
   Response".  The purpose of the Reason header is to indicate to the 
   UAC that the request is being answered due to reaching a Max-
   Forwards of 0, rather than being answered due to reaching the final 
   UAS.  When the ultimate target UAS answers a loopback-based INVITE 
   with a Max-Forwards greater than or equal to 0, the Reason header 
   would not be added to the response and the UAC will know the 
   traceroute is complete. 
4. Security Considerations 
   There are security implications for the mechanism defined in this 
   document.  Answering media-loopback calls in a B2BUA consumes 
   resources on the B2BUA, and network bandwidth in between; therefore, 
   B2BUAs should have some means of controlling who can make such test 
   calls, how many concurrent calls can be established and maintained, 
   and for how long.  Such policies are typically vendor-specific based 
   on local policies, and do not need to be defined in this document. 
5.   IANA Considerations 
   This document makes no request of IANA. 

Kaplan                 Expires - September 2014               [Page 5] 

Internet-Draft         Media-Traceroute for SIP             March 2014 
6.   Acknowledgments 
   The general concept of performing media-loopback on a hop-by-hop 
   basis using a decrementing header traceroute style approach came out 
   of discussions several years ago, between the author, Kaynam 
   Hedayat, Nagarjuna Venna, and Patrick MeLampy.  Other people that 
   have contributed to the topic over the years since then: Brett Tate, 
   Paul Kyzivat, Peter Dawes, Zaid Ally, Dianna Stiller, Jon Boone, and 
   several others whom I have lost the names of since. 
   Funding for the RFC Editor function is provided by the IETF 
   Administrative Support Activity (IASA). 
7.   References 
7.1. Normative References 
    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate 
         Requirement Levels", RFC 2119, March 1997. 
    [RFC3326]  Schulzrinne, H., Oran, D., and Camarillo, G., "The 
         Reason Header Field for the Session Initiation Protocol 
         (SIP)", RFC 3326, December 2002. 
    [RFC6849]  Kaplan, H., et al, "An Extension to the Session 
         Description Protocol (SDP) for Media Loopback", RFC 6849, 
         February 2013. 
    [draft-loop-detection] Kaplan, H., and Pascual, V., "Loop Detection 
         Mechanisms for Session Initiation Protocol (SIP) Back-to-Back 
         User Agents (B2BUAs)", draft-ietf-straw-b2bua-loop-detection-
         02, September 2013. 
Author's Address
   Hadriel Kaplan

Kaplan                 Expires - September 2014               [Page 6]