<?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-rfc version 1.6.14 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-sipcore-multiple-reasons-00" category="std" consensus="true" submissionType="IETF" updates="3326" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="Multiple reasons">Multiple SIP Reason Header Field Values</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-sipcore-multiple-reasons-00"/>
    <author initials="R." surname="Sparks" fullname="Robert Sparks">
      <organization/>
      <address>
        <email>rjsparks@nostrum.com</email>
      </address>
    </author>
    <date year="2022" month="July" day="25"/>
    <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>
  </front>
  <middle>
    <section anchor="introduction">
      <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">
      <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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
    </section>
    <section anchor="update-to-rfc3326">
      <name>Update to RFC3326</name>
      <t>The last paragraph of section 2 of <xref target="RFC3326"/> 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">
      <name>Security Considerations</name>
      <t>This document adds no security considerations to the use of SIP. The security considerations in <xref target="RFC3326"/> and those in any registered protocols used in Reason header field values should be considered.</t>
    </section>
    <section anchor="iana-considerations">
      <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">
      <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>
    <section anchor="changelog">
      <name>Changelog</name>
      <ul spacing="normal">
        <li>rename draft-sparks to draft-ietf. Add changelog.</li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1WzW4bNxC+8ymmziUtvAvbSdtkURRVbadWYVuOJDcIgiCg
lqNd1rvkluRKVY28S5+lT9YZUrIt20GLArnVB5mcHQ5nvm9+mGWZCDo0WMDO
Wd8E3TUIk+EFjFF6a+AEpUIHrzQ2Cn6RTY9+R8jZzOHi7gkXtemTsqWRLVlT
Ts5DpjHMM6+70jrM2rV2ttbO9vZEKQNW1q0K8EGJvlO09wU8e3bwjRC6cwUE
1/twsLf3cu9ASDpZwGA8FUvrripn+65gbw9H42N4QyJtKviJxcIH0m0LGB5P
X4krXNEBRTsT0BkM2RG7J0hLGvVBNtaQyyv0wrfShQ+/9Ta6YazodAHvgi13
wVtHNueeVquWF++FkH2orSsEZALoL4U+tjN0ASaddFc+yq2rpNF/yKCtKaIE
W6mbAtyvPmr9YCw53Ld5aVshjHUt6S6QdcevDhmNYrMgWMz8VkGILMtAzui4
LCmiaf1p/qQHhXNtUIE2bC/iDLJp7NKDNc2KfnBzdMFsQ0enO2cJAdskUQ4X
fJUuEXzNB3UA7aH3OO8bCDbZgw3b6ZCHpQ41BPLOE0gPTE5rNhHpZxP3fbtv
jAAAaSgKpTmDFCVgpT1xS8sb08saDd0ow60ohU/OsJSd6Rx6NBSKnT+4pEVp
fJ4AbrVSDQrxhFPIWdWXzOX/cH8GuJ/AoTULNAywp2sVHLEZHfcJcapn4IL2
1IIuJ9Od3fQfzkdxPT5+fTkcHx/xenIyOD29WYi1xuRkdHl6dLu6PXk4Ojs7
Pj9Kh0kKWyKxczZ4S1/Yq53RxXQ4Oh+c7jC9gRGl7te35DlQo2JcZ0ifCCYK
m1GTXij0pdOzlBI/Hl789ef+c7i+/oIYONjff/nx43rzYv/b57RhTNNtMV3S
loBcCdl1KB1bIc6glJ0OsqHeREnHaWKgJnYIza/eMTLvC/huVnb7z79fCzjg
LeEGsy1hxOyh5MHhBOIjokeuuUFzS34P6W1/B2+39hvc7wg5ay7vpnPqlJwr
jfSUkdLJysmu5sTzGIsXDnhzfb3WJrSJQYddI8vIFWV9rAbqsaPTI/qltj2I
xd6i97JCIMegtCZIYqG1THlNVfKgpp/qHPPdm3xnO+vvDVfHl7sw60Okkfwh
cluIDNVygaD0fE5EmnCvhONceYp5RYb5QnaL00QaSxYcvM5ffL33ZU4eU9m2
dCunZZw/HOXcIQPFNnRl2PO7DvtUxdRnlKUNWYTeUFuLw5JS6vz4zWdEI4dh
ROHRHsONiL9tWfQdlnquEybLteuxm0T9+32GEsSWZR9rh71b+7+77TTbSubT
nXfbGkc62zSzkMOIIV9qj7E2yUjkjzS4aNkQX/NIf6fFQiuK798RGen6FJf/
hcgnMEECQocVt1xPrjh502W32plSfJwrJ6mXW+p8PbNCM4lTmELgCYOfVCfg
75Ydh0vPKI+xm5nVY8zHgZfmaAqwTpN2HiftOlpqfD3tCPjNhZjCHA7OB/8Q
Yi1jhFFTxv7AsyjO/pksr9jKoLwydtmgqviETwYC/h7n8Uyyf+SY0r7svU/D
i6CDyXQ45mkVH6fxzZqGgm4p9TCQNIefKVvhTNaUAauIx5hMwIntfUOCmzzx
fVWhX2PO1C6oudFcoKwgFVSRhbkmgunqgG0Xkg/eYztr+H5SIJzj7EyjltK9
wsZWIiPY+f26frmndykze/uSz2GgFJSbI7n4G1YwK2Y+DAAA

-->

</rfc>
