<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.16 -->
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sparks-sipcore-multiple-reasons-00" category="std" updates="3326" obsoletes="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.11.1 -->
  <front>
    <title abbrev="Multiple reasons">Multiple SIP Reason Header Field Values</title>
    <seriesInfo name="Internet-Draft" value="draft-sparks-sipcore-multiple-reasons-00"/>
    <author initials="R." surname="Sparks" fullname="Robert Sparks">
      <organization/>
      <address>
        <email>rjsparks@nostrum.com</email>
      </address>
    </author>
    <date year="2021" month="November" day="12"/>
    <area>ART</area>
    <workgroup>SIPCORE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>The SIP Reason Header Field as defined in RFC 3326 allows only one Reason value per protocol value. Practice shows it is useful to allow multiple values with the same protocol value. This update to RFC 3326 allows multiple values for an indicated registered protocol when that protocol defines what the presence of multiple values means.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Session Initiation Protocol Core Working Group mailing list (sipcore@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/sipcore/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/rjsparks/draft-sparks-sipcore-multiple-reasons"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>The SIP Reason Header Field as defined in RFC 3326 allows only one Reason value per protocol value. Practice shows it is useful to allow multiple values with the same protocol value. This update to RFC 3326 allows multiple values for an indicated registered protocol when that protocol defines what the presence of multiple values means.</t>
    </section>
    <section anchor="conventions-and-definitions" numbered="true" toc="default">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they
appear in all capitals, as shown here.</t>
    </section>
    <section anchor="update-to-rfc3326" numbered="true" toc="default">
      <name>Update to RFC3326</name>
      <t>The last paragraph of section 2 of <xref target="RFC3326" format="default"/> is replaced as follows:</t>
      <t>OLD:</t>
      <t>A SIP message <bcp14>MAY</bcp14> contain more than one Reason value (i.e., multiple
   Reason lines), but all of them <bcp14>MUST</bcp14> have different protocol values
   (e.g., one SIP and another Q.850).  An implementation is free to
   ignore Reason values that it does not understand.</t>
      <t>NEW:</t>
      <t>A SIP message <bcp14>MAY</bcp14> contain more than one Reason value (i.e., multiple
   Reason lines). If the registered protocol for the Reason value specifies
   what it means for multiple values to occur in one message, more than one
   value for that protocol <bcp14>MAY</bcp14> be present. Otherwise, there <bcp14>MUST</bcp14> be only
   one value per protocol provided (e.g., one SIP and another Q.850).  An
   implementation is free to ignore Reason values that it does not understand.</t>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>This document adds no security considerations to the use of SIP. The security considerations in <xref target="RFC3326" format="default"/> and those in any registered protocols used in Reason header field values should be considered.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC3326">
        <front>
          <title>The Reason Header Field for the Session Initiation Protocol (SIP)</title>
          <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne">
            <organization/>
          </author>
          <author fullname="D. Oran" initials="D." surname="Oran">
            <organization/>
          </author>
          <author fullname="G. Camarillo" initials="G." surname="Camarillo">
            <organization/>
          </author>
          <date month="December" year="2002"/>
          <abstract>
            <t>The REGISTER function is used in a Session Initiation Protocol (SIP) system primarily to associate a temporary contact address with an address-of-record.  This contact is generally in the form of a Uniform Resource Identifier (URI), such as Contact: &lt;sip:alice@pc33.atlanta.com&gt; and is generally dynamic and associated with the IP address or hostname of the SIP User Agent (UA).  The problem is that network topology may have one or more SIP proxies between the UA and the registrar, such that any request traveling from the user's home network to the registered UA must traverse these proxies.  The REGISTER method does not give us a mechanism to discover and record this sequence of proxies in the registrar for future use.  This document defines an extension header field, "Path" which provides such a mechanism.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="3326"/>
        <seriesInfo name="DOI" value="10.17487/RFC3326"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner">
            <organization/>
          </author>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba">
            <organization/>
          </author>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <section anchor="acknowledgments" numbered="true" toc="default">
      <name>Acknowledgments</name>
      <t>This text is based on discussions at a STIR working group interim meeting. Jean Mahoney and Russ Housley provided suggestions that vastly improved the first attempts at assembling these words.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAIC0jmEAA+1W224bNxB951dM7Zek8Aqy47bJoiiq2k6swrYcyW4QBEFA
LUda1rvkluRKVY38S7+lX9YZUpIlX9CiQN6aB4ecHc7lnLkoyzIRdKgwh53z
tgq6qRBG/UsYovTWwClKhQ5ea6wU/CKrFv2OkOOxw9nmCxe16ZOyhZE1WVNO
TkLmG+lufOZ1U1iHWb3Uz5b6WbcrChlwat0iBx+UaBtFd5/DixcH3wqhG5dD
cK0PB93uq+6BkPQyh97wSsytu5k62zY5x3s0GJ7AOxJpM4U3LBY3uCAdlUPf
BHQGQ3bMMQnhgzTqk6ysoTgX6IWvpQuffmtt9GysaHQOH4It9sBbFxxOPJ0W
NR8+CiHbUFqXC8gE0L+U79CO0QUYxYSj3LqpNPoPGbQ1OUQR1lJXObhfEy4/
GuspubpT2FoIY11NyjMkyzB8fcQI5KsDiYQ2kzsVIbIsAzkmA7KgpK7Kp3mT
HhROtEEF2rDFiC7IqrJzD9ZUC/qDq6czZhkaet04SyDYKok6cMmudIHgS36o
A2gPrcdJW0GwyR6sOE6PPMx1KCFQdJ5wemDyqmQTkXQ2cT+2+8YIAJCGslCa
60ZR4U21J3rpuDY9L9GQRxnuRCl9CoalHEzj0KOhVOzkgZMapfGdBHCtlapQ
iF2uImdVWzCd/8P9BeDehSNrZmgYYE9uFRyzGR3vCXFqaeCe9jR6rkdXO3vp
f7gYxPPw5O11f3hyzOfRae/sbH0QS43R6eD67PjudPfyaHB+fnJxnB6TFLZE
Yue8956+cFQ7g8ur/uCid7bD9AZGlKZeW1PkQOOJcR0jfSKYKG1GTXqh0BdO
j1NJ/HR0+def+4dwe/sVMXCwv//q8+fl5eX+d4d0YUyTt1gu6UpALoRsGpSO
rRBnUMhGB1nReKKi4zIxUBI7hObXHxiZjzl8Py6a/cMflgJOeEu4wmxLGDF7
KHnwOIH4iOgRN2s0t+T3kN6Ot/d+677CfUPIVXO9Wc5pbXCtVNJTRUonp042
JReex9i8cMCX29ulNqFNDDpsKllErqjqYzfQjB2cHdNfGty92Ow1ei+nCBQY
FNYESSzUlikvqUse9PQz3cHO3rre2c7ye8Xd8XwPxm2INFI8RG4NkaFSzhCU
nkyISBPutXBcLc+wMyXD7JDD4jKRxpIFB287L7/pPu9QxNS2NXnlsowriLOc
OGSg2IaeGo58M2CfupjmjLJ0IYvQGhprcV9SSV2cvPuCaHSgH1F4dMbwIOJv
WxZ9g4We6ITJfBl6nCZR//6coQKxRdHG3uHolvHvbQfNtpL55HNzrHGm49Uw
Cx0YMORz7TH2JhmJ/JEGNy0bYjePzHc6zLSi/P4dkZGup7j8L0TuwggJCB0W
PHI9heLkespujTOl+Dl3TlIvttTZPbNCO4lLmFLgDYNPqhPwm23H6dIvKY9x
mpnFY8zHhZf2aEqwTJt2EjftMlsafC3dCPiVQ0xp9nsXvX9IsZQxw6gp43zg
XRR3/1gWN2ylV9wYO69QTfmFTwYC/h738VhyfBSY0r5ovU/Li6CD0VV/yNsq
/iSNv1TTUtA1lR4GknbgZ6pWOJclVcAi4jEkE3BqW1+RYF0nvp1O0S8xZ2pn
NNxoL1BVkAqqyMJEE8HkOmDdhBSD91iPK/ZPCoRz3J0d8TdSvmXz9QsAAA==

-->

</rfc>
