<?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.7.36 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-anderson-askew-cidvv-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="CIDVV">Caller-ID Vouching and Vetting (CIDVV)</title>
    <seriesInfo name="Internet-Draft" value="draft-anderson-askew-cidvv-00"/>
    <author initials="R." surname="Anderson" fullname="Roger Anderson">
      <organization>Jolly Roger Telephone Company</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>roger@jollyrogertelephone.com</email>
      </address>
    </author>
    <author initials="S." surname="Berkson" fullname="Steven Berkson">
      <organization>Jolly Roger Telephone Company</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>steveb@jollyrogertelephone.com</email>
      </address>
    </author>
    <author initials="P." surname="Askew" fullname="Phillip Askew">
      <organization/>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>phillip.askew@theaskewcrew.com</email>
      </address>
    </author>
    <date year="2026" month="May" day="07"/>
    <keyword>telephony, callerid, spoofing, PSTN</keyword>
    <abstract>
      <?line 40?>

<t>Caller-ID spoofing remains a significant problem in telephony,
particularly across inter-domain and international call paths where
identity frameworks may not be consistently applied.</t>
      <t>This document defines Caller-ID Vouching and Vetting (CIDVV), a
lightweight verification mechanism that uses short-lived signaling
exchanges encoded within the Calling Party Number to confirm that a
calling party can receive calls at the Asserted Caller-ID.</t>
      <t>CIDVV is designed to operate across heterogeneous SIP and SS7/TDM
networks without requiring new protocol extensions or persistent
identity infrastructure. It relies on existing call routing behavior
and intentionally leverages failure responses as a signaling mechanism,
using failed call attempts as evidence of number control rather than
successful call completion.</t>
      <t>The mechanism improves resistance to Caller-ID spoofing by requiring
demonstrable control of the Asserted Caller-ID, while remaining
incrementally deployable and tolerant of intermediate network
modification.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://cidvv.org/draft-anderson-askew-cidvv.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-anderson-askew-cidvv/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/Jolly-Roger-Telephone-Company/cidvv-spec"/>.</t>
    </note>
  </front>
  <middle>
    <?line 63?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Caller-ID spoofing is widely used in fraudulent and nuisance calling,
particularly in environments where calls traverse multiple
administrative domains and heterogeneous network technologies.
Although mechanisms such as STIR/SHAKEN provide cryptographic
attestation of caller identity, their effectiveness is limited by
partial deployment and challenges in international interconnection.</t>
      <t>This document defines Caller-ID Vouching and Vetting (CIDVV), a
mechanism that verifies caller identity through network reachability
rather than asserted identity. CIDVV requires that a party asserting a
Caller-ID be able to receive a return call at that number within the Validity Window.</t>
      <t>CIDVV operates by encoding signaling information within the Calling
Party Number and leveraging existing call routing behavior to perform
a challenge-response exchange. The protocol does not require new SIP
headers, protocol extensions, or changes to SS7 signaling, and is
designed to function across mixed SIP and TDM networks.</t>
      <t>CIDVV is incrementally deployable and does not require universal
adoption to provide benefit. It tolerates modification of signaling
by intermediate networks and relies on signaling calls and distinct
failure-response behaviors traversing the network path.</t>
      <t>CIDVV provides strong, real-time evidence of Caller-ID validity by
requiring that a party asserting a Caller-ID be able to receive and
respond to a return call at that number within the Validity Window.
While it does not provide absolute identity assurance, it offers a
practical and robust signal of trust in the presented identity.</t>
      <t>CIDVV leverages two key elements of the existing telephone ecosystem:</t>
      <ul spacing="normal">
        <li>
          <t>Existing routing databases and numbering plans, which provide
authoritative routing ownership for telephone numbers.</t>
        </li>
        <li>
          <t>Digit sequences chosen to minimize conflict with valid numbering plans (e.g., "100" and "101").</t>
        </li>
      </ul>
      <t>The mechanism operates entirely within standard PSTN routing behavior and requires no media exchange.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>In this document, the term "Caller-ID" refers to the identity
presented to users, while "Calling Party Number" refers to the
signaling field used to convey that identity.</t>
      <ul spacing="normal">
        <li>
          <t><strong>Alice</strong>: The calling party and verifier. In vouching flows Alice asserts a number; in vetting flows Alice verifies Bob's number.</t>
        </li>
        <li>
          <t><strong>Bob</strong>: The called party. In vetting flows Bob is the owner whose number is being vetted.</t>
        </li>
        <li>
          <t><strong>Mallory</strong>: An attacker attempting to spoof a Caller-ID.</t>
        </li>
        <li>
          <t><strong>CIDVV Platform</strong>: A system that implements the vouching and vetting procedures defined in this document.</t>
        </li>
        <li>
          <t><strong>CIDVV-aware Network Element</strong>: An SBC or intermediary that recognizes CIDVV signaling prefixes and interprets associated responses, but does not implement the full CIDVV platform logic.</t>
        </li>
        <li>
          <t><strong>Vouch</strong>: The act of a CIDVV platform asserting that it has verified control of a telephone number through the challenge-response mechanism described in this document, which may consist of one or more verification calls. A successful vouch provides strong evidence that the calling party controls the Asserted Caller-ID.</t>
        </li>
        <li>
          <t><strong>Vet</strong> (or <strong>Vetting</strong>): The process by which a CIDVV platform confirms the relevant party controls the Asserted Caller-ID via the two-call challenge-response sequence. Vetting may be performed by the number owner directly or on behalf of third parties such as Caller-ID branding services, Google Business Profiles, trade organizations, or enterprise trust programs.</t>
        </li>
        <li>
          <t><strong>Vouching Call</strong>: A short verification call used in the CIDVV protocol. CIDVV defines a primary vouching call ("100") and an optional secondary vouching call ("101").</t>
        </li>
        <li>
          <t><strong>Successful Vouch</strong>: A verification result indicating that a matching cache entry was found.</t>
        </li>
        <li>
          <t><strong>Unsuccessful Vouch</strong>: A verification result indicating that no matching cache entry was found.</t>
        </li>
        <li>
          <t><strong>Verification Not Performed</strong>: A condition where verification could not be completed due to system or network conditions.</t>
        </li>
        <li>
          <t><strong>Validity Window</strong>: A short time interval during which CIDVV signaling state is considered valid for correlation purposes, typically on the order of 10 seconds.</t>
        </li>
        <li>
          <t><strong>Asserted Caller-ID</strong>: The Caller-ID value that is being vouched or vetted (i.e., the number whose control is being verified). This is the value used as the basis for the CIDVV Token payload and as the cache lookup key in the tuple (Asserted-Caller-ID, CIDVV-Token).</t>
        </li>
      </ul>
      <t>Once successfully vouched, an Asserted Caller-ID may be referred to informally as a "vouched number," but the formal term used in this document is "Asserted Caller-ID."</t>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14, RFC 2119 and RFC 8174 when, and only when, they appear in all
capitals, as shown here.</t>
      <section anchor="motivation-and-advantages">
        <name>Motivation and Advantages</name>
        <t>The CIDVV vouching and vetting mechanism is designed to operate with minimal new infrastructure while providing strong protection against Caller-ID spoofing.  Its primary advantages are:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Leverages existing PSTN infrastructure</strong>: The mechanism uses existing numbering plans and routing databases to direct calls without requiring additional infrastructure.</t>
          </li>
          <li>
            <t><strong>Strong anti-spoofing protection</strong>: A successful vouch provides strong evidence that the Asserted Caller-ID is controlled by the legitimate owner, because only the real owner can generate the correct challenge-response sequence. Spoofed calls are typically rejected early, often resulting in failure responses such as 404 Not Found.</t>
          </li>
          <li>
            <t><strong>Visibility into spoofing activity</strong>: Telephone number owners gain direct insight into how often (and from where) their numbers are being spoofed worldwide through logged vetting attempts.</t>
          </li>
          <li>
            <t><strong>Low signaling overhead</strong>: The two short vetting calls replace what would otherwise be a completed fraudulent call, resulting in lower overall network load.</t>
          </li>
          <li>
            <t><strong>Full TDM/SS7 compatibility</strong>: The mechanism works natively across legacy SS7 and ISDN networks.  SIP is not required.</t>
          </li>
          <li>
            <t><strong>International applicability</strong>: The solution functions across international boundaries without relying on country-specific frameworks.</t>
          </li>
          <li>
            <t><strong>Independent of STIR/SHAKEN</strong>: It provides an effective alternative (or complement) in environments where STIR/SHAKEN is unavailable, not deployed, or insufficient.</t>
          </li>
          <li>
            <t><strong>Enterprise and service-provider flexibility</strong>:  </t>
            <ul spacing="normal">
              <li>
                <t>Enterprises can deploy their own CIDVV platform using open-source tools such as Kamailio or Asterisk.</t>
              </li>
              <li>
                <t>Service providers or third-party vendors (e.g., TransUnion, TNS, First Orion, Hiya, Numeracle, Numhub, or others) can operate cloud-based vouching and vetting services.</t>
              </li>
              <li>
                <t>Customers can easily switch between providers, fostering real competition and driving down costs.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>This design lowers the barrier to entry and encourages broad adoption while avoiding the single points of failure and high coordination costs associated with centralized solutions. These properties make the vouching mechanism particularly suitable for service providers, enterprises, and end users who need robust Caller-ID validation today, using only existing telephone infrastructure.</t>
      </section>
    </section>
    <section anchor="design-principles">
      <name>Design Principles</name>
      <t>CIDVV is designed to operate under the assumption that intermediate
networks may normalize, truncate, or otherwise modify signaling
information. The protocol therefore encodes all required signaling in
a numeric Calling Party Number that can survive traversal of mixed
SIP and SS7/TDM networks.</t>
      <t>CIDVV relies on the ability to distinguish between classes of
call rejection behavior (e.g., "busy" vs. "not found"), rather than
requiring specific numeric response codes to be preserved end-to-end.</t>
    </section>
    <section anchor="number-normalization">
      <name>Number Normalization</name>
      <t>All telephone numbers used in CIDVV operations MUST be normalized to
a digit string as follows:</t>
      <ol spacing="normal" type="1"><li>
          <t>Remove any leading "+" or other punctuation.</t>
        </li>
        <li>
          <t>Use the full E.164 representation (country code + national significant
number) as a plain digit string.</t>
        </li>
      </ol>
      <t>No padding is performed. Truncation (when required for the 15-digit
limit) always removes leading digits of the telephone number, preserving
the rightmost digits.</t>
      <section anchor="protocol-overview">
        <name>Protocol Overview</name>
        <t>CIDVV uses special Caller-ID prefixes to signal protocol operations:</t>
        <ul spacing="normal">
          <li>
            <t>"100" prefix - Primary Verification Call</t>
          </li>
          <li>
            <t>"101" prefix - Secondary Verification Call / Vetting Call</t>
          </li>
        </ul>
        <t>CIDVV Calling Party Numbers are numeric signaling values carried in
the Calling Party Number field. They are not represented as
E.164 numbers and are shown without a leading "+" in this document.</t>
        <t>Ordinary subscriber telephone numbers (e.g., +12125550100) are
shown in E.164 format for clarity, while CIDVV signaling values
(e.g., 10019495550199) are shown as digit strings.</t>
        <t>CIDVV signaling Calling Party Numbers MUST fit within the 15-digit
Calling Party Number limit commonly encountered in SS7 and ISDN
networks. For this reason, CIDVV uses a three-digit prefix followed by
a payload derived from the Asserted Caller-ID:</t>
        <artwork><![CDATA[
   CIDVV-CPN (CIDVV Calling Party Number) = Prefix || Payload
]]></artwork>
        <t>where CIDVV-CPN means CIDVV Calling Party Number, Prefix is "100" or
"101", and the payload is derived from the Asserted Caller-ID
(normalized per Section <xref target="number-normalization"/>).</t>
        <t>For vouching operations, the payload is derived from the called number associated with the verification.
For vetting operations, the payload may be derived from computed token values.</t>
        <t>In the common case where the Asserted Caller-ID has 12 or fewer digits,
the Payload is used in full, so the CIDVV-CPN is simply the three-digit
prefix directly concatenated with the full Asserted Caller-ID digits.</t>
        <t>If the resulting CIDVV-CPN would exceed 15 digits (i.e., the asserted
Caller-ID has more than 12 digits), the leading digits of the asserted
Caller-ID are removed until the total length is exactly 15 digits,
consistent with SS7 and ISDN Calling Party Number constraints.
This truncation preserves the rightmost digits of the telephone
number, which typically provide greater distinguishing information
between individual subscribers than leading digits.</t>
        <t>A CIDVV-aware element generating a CIDVV verification call MUST apply
this construction. A CIDVV platform MAY cache and compare the complete
15-digit CIDVV Calling Party Number (including the prefix) rather than
reconstructing it for comparison.</t>
        <t>Because CIDVV payloads may be truncated to the rightmost 12 digits,
distinct telephone numbers can, in rare cases, produce identical
payload values. Correlation is therefore additionally scoped by the
called number and the Validity Window.</t>
        <t>In such cases, multiple call attempts may be indistinguishable to the
CIDVV platform and treated as a single correlation event. As a result,
a successful verification may apply to more than one call attempt
within the Validity Window.</t>
        <t>CIDVV verification consists of observing the behavior of one or more
verification calls using distinct CIDVV prefixes.</t>
        <t>A successful vouch requires that a verification call using the "100"
prefix produce the expected response behavior. Additional
verification calls (e.g., using the "101" prefix) MAY be used to
achieve higher assurance.</t>
        <t>The expected behavior is:</t>
        <ul spacing="normal">
          <li>
            <t>Calls using the "100" prefix MUST result in SIP 486 Busy Here.
Any other response, timeout, call progression, or successful call
completion MUST be treated as an unsuccessful vouch.</t>
          </li>
          <li>
            <t>Calls using the "101" prefix are expected to result in SIP 404 Not Found.
However, in the context of an active vetting procedure, a "101" call
carrying a valid token MAY result in SIP 486 Busy Here.</t>
          </li>
        </ul>
        <t>A CIDVV-aware network element MUST NOT treat a single response as
sufficient evidence of a successful vouch unless it corresponds to
the expected behavior for the "100" prefix.</t>
        <t>Additional verification calls (e.g., using the "101" prefix) MAY be
used to increase assurance but are not required for a valid vouch.</t>
        <t>The two verification calls MAY be sent in any order or in parallel.
Implementations MUST NOT assume ordering.</t>
        <t>If either expected response is missing, altered, delayed, replaced by
call progression, or inconsistent with the expected pattern, the
result MUST be treated as unsuccessful or indeterminate.</t>
        <t>CIDVV exchanges occur using short signaling dialogs and do not require
media establishment.</t>
        <t>CIDVV signaling is encoded entirely within numeric Calling Party
Number values to maximize survivability across heterogeneous SIP and
SS7/TDM networks.</t>
        <t>Vetting procedures MAY use full telephone numbers or truncated
forms as input to cryptographic operations, independent of the
CIDVV Calling Party Number encoding.</t>
        <t>CIDVV operations rely on state within the Validity Window.</t>
      </section>
      <section anchor="vouching-vs-vetting-response-patterns">
        <name>Vouching vs. Vetting Response Patterns</name>
        <t>CIDVV uses the same signaling prefixes for both operations but with
distinct expected behaviors. The table below summarizes the differences:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">Vouching (live call)</th>
              <th align="left">Vetting (pre-shared secret)</th>
              <th align="left">Notes</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">100</td>
              <td align="left">Expect 486 Busy Here</td>
              <td align="left">Not used</td>
              <td align="left">Primary vouch signal</td>
            </tr>
            <tr>
              <td align="left">101</td>
              <td align="left">Expect 404 Not Found</td>
              <td align="left">First call: 404 (deposit), Second call: 486</td>
              <td align="left">Secondary / vetting</td>
            </tr>
          </tbody>
        </table>
        <t>Implementations distinguish context (vouching vs. vetting) primarily by the presence of a pre-agreed vetting Caller-ID and shared secret for the Asserted Caller-ID. Because vetting uses a specific Caller-ID designated for the procedure, overlap with ordinary vouching calls on the same number is expected to be rare. A CIDVV platform MUST treat calls using a known vetting Caller-ID according to the vetting response pattern (even if a live vouch cache entry exists) and MUST NOT treat a 101-&gt;404 response as a successful vouch when an active vetting procedure is in progress for that number.</t>
      </section>
      <section anchor="response-semantics">
        <name>Response Semantics</name>
        <t>Because intermediate SIP and SS7/TDM networks may translate,
modify, or replace response codes, implementations MUST interpret
responses based on behavioral class (e.g., "Busy"-class vs.
"Not Found"-class) rather than exact numeric values.</t>
        <t>Implementations SHOULD use SIP 486 (Busy Here) and 404 (Not Found)
as the canonical representations of these behaviors where possible.</t>
        <t>CIDVV requires that these two rejection behaviors remain
distinguishable across the signaling path. Environments that cannot
preserve this distinction may not support enhanced verification.</t>
        <section anchor="prefix-primary-verification">
          <name>"100" Prefix (Primary Verification)</name>
          <t>A call using the "100" prefix is considered successful only if it
results in an immediate rejection consistent with a "Busy"-class
response (e.g., SIP 486 Busy Here).</t>
          <t>A CIDVV implementation MUST treat any response other than this
expected behavior - including ringing, call completion, timeout, or
alternative error responses - as an unsuccessful verification.</t>
          <t>A successful "100" verification provides a baseline level of
confidence that the Asserted Caller-ID is routable and under the
control of the originating party.</t>
        </section>
        <section anchor="prefix-secondary-verification">
          <name>"101" Prefix (Secondary Verification)</name>
          <t>A call using the "101" prefix is used as an optional secondary
validation signal.</t>
          <t>The expected behavior is an immediate rejection consistent with a
"Not Found"-class response (e.g., SIP 404 Not Found).</t>
          <t>In the context of an active vetting procedure, a "101" call carrying a
valid vetting token MAY instead result in a "Busy"-class response
(e.g., SIP 486 Busy Here).</t>
          <t>Because such responses are relatively common in the PSTN, a "101"
verification alone MUST NOT be treated as evidence of a successful
vouch.</t>
        </section>
        <section anchor="combined-verification">
          <name>Combined Verification</name>
          <t>Implementations MAY perform both "100" and "101" verification calls
to achieve a higher level of assurance.</t>
          <t>In this case, a stronger validation result is obtained when:</t>
          <ul spacing="normal">
            <li>
              <t>The "100" verification produces the expected "Busy"-class behavior, AND</t>
            </li>
            <li>
              <t>The "101" verification produces the expected "Not Found"-class behavior</t>
            </li>
          </ul>
          <t>within the Validity Window.</t>
          <t>Implementations MUST NOT require the two verification calls to occur
in any specific order.</t>
        </section>
        <section anchor="failure-handling">
          <name>Failure Handling</name>
          <t>If the expected behavior for a given prefix is not observed, the
verification for that prefix MUST be treated as unsuccessful.</t>
          <t>If only the "100" verification succeeds, the result MAY be treated as
a valid but lower-assurance vouch.</t>
          <t>If both "100" and "101" verifications succeed (i.e., "100" -&gt; 486 and
"101" -&gt; 404), the result MAY be treated as a higher-assurance vouch.</t>
          <t>If neither verification succeeds, or if results are inconsistent or
ambiguous, the vouch MUST be treated as unsuccessful or indeterminate.</t>
        </section>
      </section>
    </section>
    <section anchor="protocol-operation">
      <name>Protocol Operation</name>
      <section anchor="vouching-procedure">
        <name>Vouching Procedure</name>
        <t>Alice's CIDVV platform receives an attempted call from Alice to Bob.
It MUST construct a CIDVV token as defined in Section <xref target="protocol-overview"/>
by prefixing "100" to the dialed number.</t>
        <t>The CIDVV platform MUST cache the call attempt using the tuple:</t>
        <t>(Called Number, CIDVV Token)</t>
        <t>for the Validity Window.</t>
        <t>The CIDVV platform then rejects the call with SIP response 486
(Busy Here).</t>
        <t>Alice's SBC receives the 486 and advances the original call through
the PSTN toward Bob using the original Caller-ID.</t>
        <t>When Bob's system receives the call, a CIDVV-aware network element
(e.g., SBC) initiates a verification call toward Alice.</t>
        <section anchor="primary-verification-100">
          <name>Primary Verification ("100")</name>
          <t>Bob's CIDVV-aware element constructs the CIDVV token using the same
method (prefix "100" plus the rightmost 12 digits of the dialed
number) and initiates a verification call toward Alice using that
value as the Calling Party Number.</t>
          <t>When Alice's SBC receives a call with a Calling Party Number
beginning with "100", it MUST route the call to the CIDVV platform.</t>
          <t>Upon receiving the verification call, Alice's CIDVV platform MUST
look up the tuple:</t>
          <t>(Called Number, CIDVV Token)</t>
          <t>cached for the Validity Window.</t>
          <t>If a matching cache entry exists, the CIDVV platform MUST reject the
verification call with SIP response 486 (Busy Here).</t>
          <t>If no matching cache entry exists, the CIDVV platform MUST reject the
verification call with SIP response 404 (Not Found).</t>
          <t>A successful "100" verification (i.e., receipt of 486) indicates that
the originating party can receive calls at the Asserted Caller-ID
and constitutes a valid baseline vouch.</t>
        </section>
        <section anchor="secondary-verification-101">
          <name>Secondary Verification ("101")</name>
          <t>Bob's CIDVV-aware element MAY initiate a second verification call
using a CIDVV token constructed by prefixing "101" to the same
12-digit payload.</t>
          <t>When Alice's SBC receives a call with a Calling Party Number
beginning with "101", it MUST route the call to the CIDVV platform.</t>
          <t>Upon receiving such a call, the CIDVV platform MUST reject the call
with SIP response 404 (Not Found), unless the call corresponds to an
active vetting procedure (see Section <xref target="vetting-procedure"/>).</t>
          <t>A "101" verification call does not require cache lookup for vouching
purposes and MUST NOT be used as a standalone indicator of a
successful vouch.</t>
        </section>
        <section anchor="combined-verification-behavior">
          <name>Combined Verification Behavior</name>
          <t>Implementations MAY perform only the primary ("100") verification or
MAY perform both primary and secondary verification.</t>
          <t>A successful "100" verification alone provides a valid vouch with
baseline assurance.</t>
          <t>If both verification calls are performed, a higher-assurance vouch is
obtained when:</t>
          <t>"100" -&gt; 486, and
   "101" -&gt; 404</t>
          <t>are both observed within the Validity Window.</t>
          <t>The two verification calls MAY occur in any order or in parallel.
Implementations MUST NOT assume ordering.</t>
          <t>If the "100" verification fails, the vouch MUST be treated as
unsuccessful regardless of any "101" result.</t>
        </section>
      </section>
      <section anchor="correlation-model">
        <name>Correlation Model</name>
        <t>CIDVV vouching correlates calls using the Asserted Caller-ID,
the called number, and a Validity Window. It does not attempt to
identify individual call legs across the PSTN.</t>
        <t>If multiple calls with the same Asserted Caller-ID and called
number occur within the cache interval, implementations MAY treat
them as a single aggregate vouching state or MAY maintain a count of
pending attempts.</t>
        <t>A successful vouch indicates that at least one matching call attempt
occurred during the Validity Window, rather than proving a
one-to-one correspondence between specific call legs.</t>
      </section>
      <section anchor="hash-function">
        <name>Hash Function for Vetting and State Storage</name>
        <t>The same deterministic algorithm MUST be used for:
1. Vetting token computation.
2. Any short-term cache (e.g., Redis) that stores vouching or vetting state.</t>
        <t><strong>Algorithm (normative)</strong></t>
        <ol spacing="normal" type="1"><li>
            <t>Normalize both numbers: E.164 digit string, no leading "+", no punctuation (see Section <xref target="number-normalization"/>).</t>
          </li>
          <li>
            <t>Concatenate as UTF-8 bytes: <tt>normalized-calling-number || "|" || normalized-called-number || "|" || shared-secret</tt></t>
          </li>
          <li>
            <t>Compute SHA-256 digest of the concatenated bytes.</t>
          </li>
          <li>
            <t>Take the first 8 hexadecimal characters of the digest.</t>
          </li>
          <li>
            <t>Convert that 8-hex string to a decimal integer.</t>
          </li>
          <li>
            <t>Left-pad with zeros to 10 digits if needed, then prepend '1' to produce an 11-digit token.</t>
          </li>
        </ol>
        <t>Example (for illustration only):
- calling = 12125550100, called = 19495550199, secret = "hamburger"
- Concatenated: "12125550100|19495550199|hamburger"
- SHA-256 first 8 hex -&gt; decimal -&gt; padded/prepended token = 12953388433 (or similar)</t>
        <t>Implementations MUST use the identical normalization and concatenation order for both vetting calls and any Redis (or equivalent) cache lookups. The token is valid only inside the Validity Window.</t>
        <section anchor="multi-tenant-considerations">
          <name>Multi-Tenant Considerations</name>
          <t>CIDVV platforms that perform vouching on behalf of multiple
independent customers MUST ensure that correlation state is scoped
per customer. This prevents unintended interaction between unrelated
vouching operations that may produce identical CIDVV payload values.</t>
          <t>Implementations MAY use separate storage, partitioning, or
customer-specific identifiers to achieve this isolation.</t>
          <t>This requirement does not apply to vetting operations, which are
already scoped by the shared secret.</t>
        </section>
      </section>
      <section anchor="vetting-procedure">
        <name>Vetting Procedure</name>
        <t>Vetting a remote number requires two separate calls (distinct SIP
dialogs) using a pre-agreed shared key. The process confirms that
the <strong>called party (Bob)</strong> controls the target telephone number and
possesses the correct shared secret. In the examples below, Alice is
the verifier who initiates the two calls to Bob's number in order to
vet Bob's number.</t>
        <t>Before vetting begins, Alice and Bob agree on a shared secret, Bob's
vetting Caller-ID, and a Validity Window.</t>
        <t>Alice places a vetting call to Bob using a Caller-ID beginning with the digits "101".</t>
        <t>When Bob's CIDVV platform receives the first vetting call, it removes
the "101" prefix and verifies that the resulting Caller-ID is expected
for the current vetting attempt.</t>
        <t>Bob's platform MUST compute the vetting token using the algorithm
defined in Section <xref target="hash-function"/> and store the
resulting token for the Validity Window. It then rejects the call with
SIP response 404 (Not Found).</t>
        <t>Alice performs the same SHA-256 calculation and places a second vetting call to Bob. This second call uses a Caller-ID beginning with the Vetting Token Check prefix of "101" followed by the computed numeric code.</t>
        <t>When Bob's CIDVV platform receives the Vetting Token Check call, it removes the "101" prefix and compares the remaining numeric code to the recently cached value.</t>
        <t>If the numeric code matches, Bob's CIDVV platform MUST reject the call with SIP response 486 (Busy Here). Alice's platform treats this response as a successful vet.</t>
        <t>Any other response, timeout, code mismatch, expired cache entry, or unexpected Caller-ID MUST be treated as an unsuccessful vet.</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="successful-vouch-call-flow-baseline">
        <name>Successful Vouch Call Flow (Baseline)</name>
        <t>The following diagram shows a baseline successful vouch using only
the primary "100" verification call. This provides a valid vouch with
baseline assurance.</t>
        <figure anchor="fig-successful-vouch">
          <name>Example Successful Vouch (Baseline)</name>
          <artwork><![CDATA[
   Alice      CIDVV_A      SBC_A        PSTN       SBC_B        Bob
     |           |           |           |           |           |
     |------- INVITE ------->|           |           |           |
     |           |           |           |           |           |
     |           |<- INVITE -|           |           |           |
     |           |           |           |           |           |
     |           |--- 486 -->|           |           |           |
     |           |           |- INVITE ->|           |           |
     |           |           |           |- INVITE ->|           |
     |           |           |           |           |           |
     |           |           |           |<- VFY100 -|           |
     |           |           |<- VFY100 -|           |           |
     |           |<- VFY100 -|           |           |           |
     |           |           |           |           |           |
     |           |--- 486 -->|           |           |           |
     |           |           |--- 486 -->|           |           |
     |           |           |           |--- 486 -->|           |
     |           |           |           |           |- INVITE ->|
     |           |           |           |           |           |
]]></artwork>
        </figure>
        <t>In the diagram, "VFY100" represents a verification call whose
Calling Party Number is the CIDVV token formed as "100" followed by
the rightmost 12 digits of the dialed number.</t>
        <section anchor="successful-vouch-baseline-step-by-step-description">
          <name>Successful Vouch (Baseline) Step-by-step description</name>
          <t>The diagram above shows the high-level message flow. The following
numbered steps provide the detailed behavior, including Caller-ID
manipulation performed by CIDVV platforms and CIDVV-aware elements.</t>
          <ol spacing="normal" type="1"><li>
              <t>The originating user (Alice, Caller-ID <tt>+12125550100</tt>) initiates a
call to the destination user (Bob, dialed number <tt>+19495550199</tt>).</t>
            </li>
            <li>
              <t>The call is routed from Alice's User Agent to her SBC, which
forwards it to the originating CIDVV platform (CIDVV_A).</t>
            </li>
            <li>
              <t><strong>CIDVV_A</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Constructs a CIDVV token by prefixing "100" to the rightmost
12 digits of the dialed number. In this case, the payload is
<tt>19495550199</tt>, resulting in the token <tt>10019495550199</tt>.</t>
                </li>
                <li>
                  <t>Caches the call attempt using the tuple:
  <tt>(Called: +12125550100, Token: 10019495550199)</tt>
for the Validity Window.</t>
                </li>
                <li>
                  <t>Rejects the call with <strong>486 Busy Here</strong>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Alice's SBC receives the 486 and advances the original call toward
the PSTN using the original Caller-ID.</t>
            </li>
            <li>
              <t>The call reaches Bob's SBC via the PSTN.</t>
            </li>
            <li>
              <t><strong>Bob's SBC (CIDVV-aware element)</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Constructs the same CIDVV token by prefixing "100" to the
rightmost 12 digits of the dialed number (<tt>+19495550199</tt>),
resulting in <tt>10019495550199</tt>.</t>
                </li>
                <li>
                  <t>Initiates a verification call toward Alice's number
(<tt>+12125550100</tt>) using the Caller-ID <tt>10019495550199</tt>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>The verification call arrives at Alice's SBC via the PSTN.</t>
            </li>
            <li>
              <t><strong>Alice's SBC</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Detects the leading "100" prefix on the Caller-ID.</t>
                </li>
                <li>
                  <t>Routes the call to CIDVV_A for vouch verification.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>CIDVV_A</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Receives the call with:
  <tt>To: +12125550100</tt>
                    <tt>From: 10019495550199</tt></t>
                </li>
                <li>
                  <t>Looks up the tuple:
  <tt>(Called: +12125550100, Token: 10019495550199)</tt>
cached for the Validity Window.</t>
                </li>
                <li>
                  <t>Finds a matching entry from step 3.</t>
                </li>
                <li>
                  <t>Considers this a successful primary verification and returns
<strong>486 Busy Here</strong>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Bob's SBC receives the 486 via the PSTN, recognizes it as a
successful primary verification, and advances the original call
to Bob's User Agent.</t>
            </li>
            <li>
              <t>Bob's telephone rings.</t>
            </li>
          </ol>
          <t>This mechanism allows the originating CIDVV platform to confirm that
the Asserted Caller-ID is valid without completing the initial call.</t>
        </section>
      </section>
      <section anchor="successful-vouch-call-flow-enhanced">
        <name>Successful Vouch Call Flow (Enhanced)</name>
        <t>The following diagram shows a successful vouch (Enhanced) using both
the primary "100" verification call and an optional secondary "101"
verification call. The "101" call provides additional assurance by
producing a distinct response pattern when combined with a successful
"100" verification. The "100" verification alone is sufficient for a
baseline successful vouch.</t>
        <t>For clarity, the verification calls are shown sequentially. In
practice, the two verification calls MAY occur in any order or in
parallel.</t>
        <artwork><![CDATA[
   Alice      CIDVV_A      SBC_A        PSTN       SBC_B        Bob
     |           |           |           |           |           |
     |------- INVITE ------->|           |           |           |
     |           |           |           |           |           |
     |           |<- INVITE -|           |           |           |
     |           |           |           |           |           |
     |           |--- 486 -->|           |           |           |
     |           |           |- INVITE ->|           |           |
     |           |           |           |- INVITE ->|           |
     |           |           |           |           |           |
     |           |           |           |<- VFY100 -|           |
     |           |           |<- VFY100 -|           |           |
     |           |<- VFY100 -|           |           |           |
     |           |           |           |           |           |
     |           |--- 486 -->|           |           |           |
     |           |           |--- 486 -->|           |           |
     |           |           |           |--- 486 -->|           |
     |           |           |           |           |           |
     |           |           |           |<- VFY101 -|           |
     |           |           |<- VFY101 -|           |           |
     |           |<- VFY101 -|           |           |           |
     |           |           |           |           |           |
     |           |--- 404 -->|           |           |           |
     |           |           |--- 404 -->|           |           |
     |           |           |           |--- 404 -->|           |
     |           |           |           |           |- INVITE ->|
     |           |           |           |           |           |
]]></artwork>
        <t>In the diagram, "VFY100" and "VFY101" represent verification calls
whose Calling Party Numbers are formed using the CIDVV token
construction defined in Protocol Overview.</t>
        <section anchor="enhanced-successful-vouch-step-by-step-description">
          <name>Enhanced Successful Vouch Step-by-step description</name>
          <t>The diagram above shows an enhanced vouch using both the primary
"100" verification call and an optional secondary "101" verification
call. The following steps describe the detailed behavior.</t>
          <ol spacing="normal" type="1"><li>
              <t>The originating user (Alice, Caller-ID <tt>+12125550100</tt>) initiates a
call to the destination user (Bob, dialed number <tt>+19495550199</tt>).</t>
            </li>
            <li>
              <t>The call is routed from Alice's User Agent to her SBC, which
forwards it to the originating CIDVV platform (CIDVV_A).</t>
            </li>
            <li>
              <t><strong>CIDVV_A</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Constructs a CIDVV token by prefixing "100" to the rightmost
12 digits of the dialed number (<tt>19495550199</tt>), resulting in
<tt>10019495550199</tt>.</t>
                </li>
                <li>
                  <t>Caches the call attempt using the tuple:
  <tt>(Called: +12125550100, Token: 10019495550199)</tt>
for the Validity Window.</t>
                </li>
                <li>
                  <t>Rejects the call with <strong>486 Busy Here</strong>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Alice's SBC receives the 486 and advances the original call toward
the PSTN using the original Caller-ID.</t>
            </li>
            <li>
              <t>The call reaches Bob's SBC via the PSTN.</t>
            </li>
            <li>
              <t><strong>Bob's SBC (CIDVV-aware element)</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Constructs the CIDVV token <tt>10019495550199</tt>.</t>
                </li>
                <li>
                  <t>Initiates a primary verification call toward Alice's number
(<tt>+12125550100</tt>) using the Caller-ID <tt>10019495550199</tt>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>The primary verification call arrives at Alice's SBC via the PSTN.</t>
            </li>
            <li>
              <t><strong>Alice's SBC</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Detects the leading "100" prefix.</t>
                </li>
                <li>
                  <t>Routes the call to CIDVV_A for verification.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>CIDVV_A</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Looks up <tt>(Called: +12125550100, Token: 10019495550199)</tt> cached for the Validity Window</t>
                </li>
                <li>
                  <t>Finds a matching entry.</t>
                </li>
                <li>
                  <t>Rejects the call with SIP response <strong>486 Busy Here</strong>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Bob's SBC receives the 486 and recognizes a successful primary
verification.</t>
            </li>
            <li>
              <t><strong>Bob's SBC (optional secondary verification)</strong>:
   - Constructs a second CIDVV token by prefixing "101" to the same
 12-digit payload, resulting in <tt>10119495550199</tt>.
   - Initiates a secondary verification call toward Alice's number
 using the Caller-ID <tt>10119495550199</tt>.</t>
            </li>
            <li>
              <t>The secondary verification call arrives at Alice's SBC via the PSTN.</t>
            </li>
            <li>
              <t><strong>Alice's SBC</strong>:
   - Detects the leading "101" prefix.
   - Routes the call to CIDVV_A for processing.</t>
            </li>
            <li>
              <t><strong>CIDVV_A</strong>:
   - Receives the call with:
   <tt>To: +12125550100</tt>
                <tt>From: 10119495550199</tt>
   - Performs no matching cache lookup for this prefix in the
 vouching context.
   - Rejects the call with <strong>404 Not Found</strong>.</t>
            </li>
            <li>
              <t>Bob's SBC receives the 404 and recognizes the expected secondary
verification behavior.</t>
            </li>
            <li>
              <t>Having observed:
              </t>
              <ul spacing="normal">
                <li>
                  <t>"100" -&gt; 486, and</t>
                </li>
                <li>
                  <t>"101" -&gt; 404
within the Validity Window,</t>
                </li>
              </ul>
              <t>
Bob's SBC treats this as a higher-assurance successful vouch.</t>
            </li>
            <li>
              <t>Bob's SBC advances the original call to Bob's User Agent.</t>
            </li>
            <li>
              <t>Bob's telephone rings.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="unsuccessful-vouch">
        <name>Unsuccessful Vouch</name>
        <t>A vouch attempt is considered unsuccessful or indeterminate if the
expected verification behavior is not observed.</t>
        <t>Specifically:</t>
        <ul spacing="normal">
          <li>
            <t>If a verification call using the "100" prefix does not result in
SIP 486 (Busy Here), the vouch MUST be treated as unsuccessful.</t>
          </li>
          <li>
            <t>If both verification calls are performed, and the expected pattern
of:
            </t>
            <ul spacing="normal">
              <li>
                <t>"100" -&gt; 486, and</t>
              </li>
              <li>
                <t>"101" -&gt; 404
is not observed within the Validity Window, the vouch MUST be
treated as unsuccessful or indeterminate.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>A "101" verification result alone MUST NOT be treated as evidence
of a successful vouch.</t>
          </li>
        </ul>
        <t>Implementations MUST fail closed. Any ambiguity, unexpected response,
timeout, or call progression MUST result in an unsuccessful or
indeterminate outcome.</t>
      </section>
      <section anchor="vetting-a-caller-id-number">
        <name>Vetting a Caller-ID Number</name>
        <t>Vetting uses two independent verification calls that form a
challenge-response sequence. For clarity, the calls are shown
separately, but together they constitute a single vetting operation.</t>
        <section anchor="first-vetting-call">
          <name>First Vetting Call</name>
          <figure>
            <name>First vetting call with 101 - creates cache entry and responds with 404</name>
            <artwork><![CDATA[
   CIDVV_A        SBC_A          PSTN         SBC_B        CIDVV_B
      |             |             |             |             |
      |-- VFY101 -->|             |             |             |
      |             |-- VFY101 -->|             |             |
      |             |             |-- VFY101 -->|             |
      |             |             |             |-- VFY101 -->|
      |             |             |             |             |
      |             |             |             |<--- 404 ----|
      |             |             |<--- 404 ----|             |
      |             |<--- 404 ----|             |             |
      |<--- 404 ----|             |             |             |
      |             |             |             |             |
]]></artwork>
          </figure>
        </section>
        <section anchor="second-vetting-call">
          <name>Second Vetting Call</name>
          <figure>
            <name>Vetting token check call with 101 - confirms vouch with 486 Busy Here</name>
            <artwork><![CDATA[
   CIDVV_A        SBC_A          PSTN         SBC_B        CIDVV_B
      |             |             |             |             |
      |-- VFY101 -->|             |             |             |
      |             |-- VFY101 -->|             |             |
      |             |             |-- VFY101 -->|             |
      |             |             |             |-- VFY101 -->|
      |             |             |             |             |
      |             |             |             |<--- 486 ----|
      |             |             |<--- 486 ----|             |
      |             |<--- 486 ----|             |             |
      |<--- 486 ----|             |             |             |
      |             |             |             |             |
]]></artwork>
          </figure>
        </section>
        <section anchor="successful-caller-id-vetting-flow">
          <name>Successful Caller-ID Vetting Flow</name>
          <t>Vetting a remote number requires two separate calls (distinct SIP dialogs) using a pre-agreed shared key. The process confirms that the called party (Bob) controls the target telephone number and possesses the correct shared secret.</t>
          <ol spacing="normal" type="1"><li>
              <t>Alice and Bob agree on a shared secret (e.g., <tt>hamburger</tt>) and Alice's vetting Caller-ID (<tt>+12125550100</tt>, or its rightmost 12 digits for matching purposes).</t>
            </li>
            <li>
              <t>Both parties enter the shared secret, Alice's vetting Caller-ID, and an optional Validity Window (e.g., one week) into their respective CIDVV platforms.</t>
            </li>
            <li>
              <t>Alice's CIDVV platform (CIDVV_A) initiates the first vetting call with Caller-ID <tt>10112125550100</tt> toward Bob's number (<tt>+19495550199</tt>). The call traverses the PSTN.</t>
            </li>
            <li>
              <t>Bob's SBC recognizes the leading <tt>101</tt> prefix on the incoming Caller-ID and forwards the call to Bob's CIDVV platform (CIDVV_B).</t>
            </li>
            <li>
              <t><strong>CIDVV_B</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Strips the leading <tt>101</tt>, recovering Alice's Caller-ID.</t>
                </li>
                <li>
                  <t>For matching purposes, CIDVV_B MAY use only the rightmost
12 digits of the Caller-ID, consistent with CIDVV payload
constraints.</t>
                </li>
                <li>
                  <t>Recognizes this as a pre-agreed Vetting Caller-ID</t>
                </li>
                <li>
                  <t>Computes the SHA-256 digest over the UTF-8 string formed by concatenating <tt>normalized-calling-number</tt>, <tt>normalized-called-number</tt>, and <tt>shared-secret</tt>, where telephone numbers are represented as digit strings without separators or leading "+".</t>
                </li>
                <li>
                  <t>Takes the first 8 hexadecimal characters (<tt>b0092191</tt>), converts to decimal (<tt>2953388433</tt>), pads to 10 digits, and prepends <tt>1</tt>, yielding <tt>12953388433</tt>.</t>
                </li>
                <li>
                  <t>Caches this value for the Validity Window.</t>
                </li>
                <li>
                  <t>Rejects the call with <strong>404 Not Found</strong>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>CIDVV_A receives the 404 and performs the identical hash calculation to derive <tt>12953388433</tt>.</t>
            </li>
            <li>
              <t>CIDVV_A immediately places a second vetting call to <tt>+19495550199</tt> using the Vetting Token Check Caller-ID <tt>10112953388433</tt>.</t>
            </li>
            <li>
              <t>Bob's SBC recognizes the <tt>101</tt> prefix on the Caller-ID and forwards the call to CIDVV_B.</t>
            </li>
            <li>
              <t><strong>CIDVV_B</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Strips the leading <tt>101</tt>.</t>
                </li>
                <li>
                  <t>Observes that the remaining Caller-ID (<tt>12953388433</tt>) matches a recently cached vetting token.</t>
                </li>
                <li>
                  <t>Responds with <strong>486 Busy Here</strong> to signal a successful vet.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>CIDVV_A receives the 486 Busy Here and reports a successful vet to Alice.</t>
            </li>
          </ol>
          <t>Use of the rightmost 12 digits is sufficient because collisions
within the Validity Window are expected to be rare.</t>
          <section anchor="vetting-failure-cases">
            <name>Vetting Failure Cases</name>
            <t>A vetting attempt may fail for the following reasons:</t>
            <ul spacing="normal">
              <li>
                <t>Bob does not have a participating CIDVV platform - the first call will not return 404, or the second call will not return 486.</t>
              </li>
              <li>
                <t>The shared secret, Alice's vetting Caller-ID, or time window does not match - the two calls will not produce the expected 404 + 486 sequence.</t>
              </li>
              <li>
                <t>Network or policy restrictions prevent one or both calls from reaching the remote CIDVV platform.</t>
              </li>
            </ul>
            <t>In all such cases, the vetting attempt MUST be treated as unsuccessful.</t>
            <t>This two-call challenge-response mechanism provides strong confirmation that the remote number is both reachable via the PSTN and controlled by an entity that knows the shared secret.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <section anchor="behavior-of-non-cidvv-systems">
        <name>Behavior of Non-CIDVV Systems</name>
        <t>Systems that do not implement CIDVV are not expected to recognize
CIDVV signaling prefixes. Such systems will typically process CIDVV
calls as ordinary calls and may return a wide range of responses.</t>
        <t>CIDVV implementations MUST treat any response that does not match the
expected protocol behavior as indicating a non-participating system (see Section <xref target="protocol-overview"/> for response patterns).</t>
      </section>
      <section anchor="handling-of-cidvv-signaling-calls">
        <name>Handling of CIDVV Signaling Calls</name>
        <t>Networks that recognize CIDVV SHOULD NOT present calls with Calling
Party Numbers beginning with "100" or "101" to end users.</t>
        <t>Such calls SHOULD be intercepted by network elements or CIDVV
platforms and SHOULD result in a non-success response (e.g., 4xx,
5xx, or 6xx class response codes). Implementations commonly use
responses such as 404 (Not Found), 486 (Busy Here), or 603 (Decline).</t>
        <t>Call analytics, labeling, and fraud detection systems SHOULD
recognize CIDVV signaling prefixes ("100" and "101") and treat such
calls as protocol signaling rather than ordinary subscriber calls.</t>
        <t>CIDVV-aware elements SHOULD recognize and internally route CIDVV
signaling calls using the Asserted Caller-ID without user presentation.</t>
        <t>CIDVV signaling calls are not intended to complete. Implementations
SHOULD minimize call duration and signaling load and SHOULD avoid any
media establishment.</t>
      </section>
      <section anchor="response-variability">
        <name>Response Variability</name>
        <t>Implementations SHOULD interpret responses based on behavioral class
(e.g., success vs. immediate rejection) rather than relying solely on
exact numeric values, as intermediate networks may translate or
modify response codes.</t>
      </section>
      <section anchor="short-term-state-management">
        <name>Short-Term State Management</name>
        <t>CIDVV relies on short-lived state for the (Asserted Caller-ID, CIDVV-Token)
tuple, valid only for the Validity Window. Implementations MUST expire this state automatically and
MUST fail closed: on restart or state loss, treat all verification
requests as unsuccessful until fresh state has been deposited. The
same hash algorithm defined in Section <xref target="hash-function"/>
MUST be used for any vetting-related state.</t>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="protocol-operation-vouching">
        <name>Protocol Operation - Vouching</name>
        <t>If a vouching call results in a provisional response (e.g., 180
Ringing) or a successful response (200 OK), the originating system
SHOULD immediately cancel the call and treat the remote system as not
implementing CIDVV.</t>
      </section>
      <section anchor="failure-and-restart-behavior">
        <name>Failure and Restart Behavior</name>
        <t>CIDVV platforms rely on short-lived state. Upon restart or loss of
state, implementations SHOULD continue accepting new call deposits
but MUST treat all verification requests as unsuccessful until sufficient
state has been rebuilt.</t>
        <t>Implementations SHOULD return a non-success response (e.g., 4xx,
5xx, or 6xx). A 603 (Decline) response is commonly used to indicate
that verification could not be performed.</t>
        <t>Implementations SHOULD fail closed (treating requests as unverified)
rather than risk false-positive validation.</t>
      </section>
      <section anchor="prefix-preservation">
        <name>Prefix Preservation</name>
        <t>SIP intermediaries and SBCs that support CIDVV SHOULD preserve the
Calling Party Number digits used for CIDVV signaling, including the
leading "100" or "101" prefix, across trusted interfaces unless local
policy explicitly rejects the call.</t>
        <t>CIDVV does not rely on Type-of-Number (TON) preservation and assumes
that intermediate networks may normalize or reinterpret numbering
format.</t>
      </section>
      <section anchor="interaction-with-call-analytics-and-fraud-detection">
        <name>Interaction with Call Analytics and Fraud Detection</name>
        <t>CIDVV signaling calls use Calling Party Number values that may appear
anomalous to call analytics, labeling, and fraud detection systems.</t>
        <t>Systems that support such analytics SHOULD recognize CIDVV signaling
prefixes (e.g., "100" and "101") and treat such calls as protocol
signaling rather than ordinary subscriber traffic.</t>
        <t>CIDVV signaling calls are not intended to be presented to end users
and SHOULD NOT be labeled or blocked as malicious traffic when
processed within cooperating networks.</t>
        <t>Failure to recognize CIDVV signaling may result in increased false
positives or suppression of verification attempts.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>CIDVV verification is probabilistic and based on reachability.
It does not provide cryptographic identity guarantees and is
intended to complement, not replace, mechanisms such as
STIR/SHAKEN.</t>
      <t>Its security properties derive from the inability of an attacker
to receive calls at the Asserted Caller-ID (the number being
vouched).</t>
      <t>CIDVV does not provide per-call correlation and instead validates
reachability within the Validity Window. This may result in multiple
calls being validated by a single successful vouch.</t>
      <t>The use of distinct response patterns across multiple verification
calls (e.g., "100" -&gt; 486 and "101" -&gt; 404) increases resistance to
false-positive validation arising from common network behaviors.</t>
      <section anchor="trust-model">
        <name>Trust Model</name>
        <t>CIDVV assumes that:
- The PSTN routes calls to the correct terminating service provider
  for a given telephone number.
- The terminating service provider has authoritative control over the
  number and can originate return calls.
- Intermediate networks may modify signaling but will generally
  preserve sufficient information to allow correlation of requests
  and responses.</t>
        <t>CIDVV does not assume that Caller-ID values are trustworthy; instead,
it verifies control through network reachability.</t>
      </section>
      <section anchor="replay-attacks">
        <name>Replay Attacks</name>
        <t>CIDVV uses short-lived state (typically on the order of seconds) to
correlate signaling exchanges. This limits the effectiveness of
replay attacks.</t>
        <t>Implementations MUST:
- Expire cached state quickly (e.g., within ~10 seconds)
- Reject verification attempts that do not match recent state</t>
        <t>Replay within the Validity Window remains theoretically possible but requires
precise timing and routing alignment (see Section <xref target="hash-function"/> for vetting tokens).</t>
      </section>
      <section anchor="spoofing-resistance">
        <name>Spoofing Resistance</name>
        <t>CIDVV prevents spoofing by requiring the party asserting a Caller-ID
to successfully receive and respond to a return call routed via the
PSTN. An attacker (Mallory) who does not control the corresponding
number cannot receive the verification call and therefore cannot
complete the vouching process.</t>
      </section>
      <section anchor="denial-of-service">
        <name>Denial of Service</name>
        <t>CIDVV introduces additional signaling traffic, which may be abused
for denial-of-service (DoS) purposes.</t>
        <t>Implementations MUST:
- Rate-limit CIDVV signaling requests
- Detect and suppress repeated unsuccessful attempts
- Bound resource usage for temporary state</t>
        <t>Implementations SHOULD:
- Apply per-source and per-destination limits
- Monitor for anomalous traffic patterns</t>
      </section>
      <section anchor="amplification-and-reflection">
        <name>Amplification and Reflection</name>
        <t>CIDVV generates return calls as part of its operation. Care MUST be
taken to ensure that this behavior cannot be exploited for
amplification or reflection attacks.</t>
        <t>Implementations SHOULD:
- Only initiate return calls in response to valid inbound attempts
- Limit the rate of outbound verification calls
- Avoid generating multiple responses for a single triggering event</t>
      </section>
      <section anchor="response-code-manipulation">
        <name>Response Code Manipulation</name>
        <t>CIDVV does not require specific SIP response codes to be preserved
end-to-end, but it does require that distinct rejection behaviors
(e.g., "busy" vs. "not found") remain distinguishable.</t>
        <t>Implementations MUST interpret responses based on behavioral class
(e.g., "Busy"-class vs. "Not Found"-class) rather than exact numeric values.</t>
      </section>
      <section anchor="data-privacy">
        <name>Data Privacy</name>
        <t>CIDVV exchanges inherently expose calling and called numbers within
signaling messages.</t>
        <t>Implementations SHOULD:
- Avoid storing telephone numbers in plaintext where possible
- Use derived values (e.g., cryptographic hashes) for temporary state
- Limit retention of any identifying data</t>
        <t>Temporary state MUST be short lived and automatically expired.</t>
      </section>
      <section anchor="hash-based-token-security-vetting">
        <name>Hash-Based Token Security (Vetting)</name>
        <t>Vetting operations use shared secrets and derived tokens.</t>
        <t>Implementations MUST:
- Use cryptographically secure hash functions (e.g., SHA-256)
- Protect shared secrets from disclosure
- Ensure tokens are valid only within the Validity Window</t>
        <t>Implementations SHOULD:
- Include sufficient entropy in derived tokens
- Avoid predictable or reusable values</t>
      </section>
      <section anchor="failure-modes">
        <name>Failure Modes</name>
        <t>CIDVV implementations MUST fail closed. If verification cannot be
completed due to:
- network errors
- state loss
- unexpected responses</t>
        <t>the result MUST be treated as unverified.</t>
      </section>
      <section anchor="interoperability-risks">
        <name>Interoperability Risks</name>
        <t>CIDVV operates across heterogeneous networks, including SIP and
SS7/TDM environments. Intermediate systems may:
- modify Calling Party Number values
- truncate digits
- alter signaling behavior</t>
        <t>These behaviors may cause verification to fail but MUST NOT result in
false-positive validation.</t>
      </section>
      <section anchor="residual-risk">
        <name>Residual Risk</name>
        <t>CIDVV improves resistance to Caller-ID spoofing but does not provide
absolute identity assurance. It reduces the effectiveness of spoofing
attacks rather than eliminating them and relies on probabilistic
verification based on reachability and response behavior, not
cryptographic identity binding.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <?line 1124?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank contributors to telephony security research and PSTN infrastructure development.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19eXMbR5bn//kpcumNaFINQKQs2TKn2zHUtea2daxIu6Nj
d2NUABJkjQpV6KoCKXjU89nnnXlUFUBQ7Y6ZjXVHzJgiq7LyeOfvHTkej02b
t4U7tc+zonD1+PyF/blaz67z8spm5dz+7NoWfz58fv7i55+PTDad1u4GHsd/
mlnWuquq3pzavFxUZl7NymwJg83rbNGO4X1XN1U5zpqP7nY8y+c3N+PjY9Os
p8u8afKqbDcrePr85eUrk6/qU9vW66Z9dHz83fEjM4exT+2j40ffjI+fjI+/
NbOqbFzZrJtTu8iKxhmYxmPz0W1uq3oO77rCra6rcjOyM1pLPh/ZZlVVC5j/
yL67uHxjzI0r1+7UWHuVt9fr6ak9+J9VUWzG76srWPylDOHGz6vlKis3D3nO
zcrNDuClAqbUtPDSdduumtOH/OdJVV893L7iyXW7LA5Mtm6vqxo/PYb/s7Bh
sI73E3smr9AvefdoMukf4BNZmf+StbBpp5bmLI/5OVuZMz3vlllenNoaH/nn
f8XH6UfdIzeZVUt6cFatyxYP8KeLdGoXE/vM1R/TmV20DnYw+cMXzqzBkaZf
NrV3sGu4v9HE3l3nRZGvot/Ld1b8hwkdyD+3145+mNXudvA7Y2AI84f/Bv//
B5fNgXAae9i0WU08cAs0Y786sksgUjt1tnGrrAaSmNvpxmZ2WmTlR1vksATg
ptKuG2fb67yxtbtyn2xbWaBEINT/bf9P+3//O3zqe4Pfs9m0aets1hoTeFDp
Ft6FdZQNDN/kV2W+yGdZ2dpVXU0Lt4TtiMjerHCes3WR1XAG2ayumgaeaGHE
eYWjEEPTL0o6rqwgTrGrrL1u7O21q53J564EibCxixo2FjjrY2OX2caWFS0Z
eTCHsytb/MRqVeRuPjHmEpcJ3L9ewl/s3MHUXbOnSBnZzBT51XV76/D/2xvg
XFwmztAu3ewayKtZwk5mLW5pYxvgo3Zc5Dew8bgpGWz5lXGf8Mkr+LsrZ9Uc
/obHhRt07Wgm+Ml3sEMb+2a9nAJ9woHAchZ5LYNnZiaPregx2GnY/pmDD9E+
wSG0NNpZ0yC9zsMCYQtoMRa3weGk4K8wfrVySCB6GNcO9h6IvXTVurEX5+9o
Py4uvn14+eK1KV3L+40Tr9YtfPyv67zGCZXuFs+8rWZVYd0n2H+Ung0wn4Uv
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
DcvaqXSooMAnZo3vlcOFWWi+Vs0Hnk2n0raq8ysK5mvqeyCak0A0w8GlLWRz
EpON5qQOJlCbKATPTLHDP9+bqvoSxw6SVmwcHMXo9v1d3cjRNeKOyQvB4cVU
RZfNI8c3pX8/SbOL/lURNAzJ+GpwwooLzZ8ShF7MY0xr9PNNsRXwZ4C6vL5L
XadtfrNRXxMJ5Xm1nFKVTEwZffmNOyCBXjajOyVgA/6qwao/wXEyRXKUERJI
R6u4EBHEhXK2I/tNSl+67SD2p21GM0ZtTajPpZd3XUZE4KpJ/c7kzJQ+R/bs
zYswUnc9W0bq0anvBbAbFdzqn2slarsdBMBsFHRxjSAA3gwkp14O9ZUk/fwA
50MZJRojGYZDMnuFpd8R26NuYnASXX2UO8lUvN0TI2vb/XbGGXyi6cBR0bNu
LrEtRQMY7wiDGgVL0HGjtKlxQFiUqOFLdxJoox/USBA/PP6eGJayu+kd/MXx
46Pds/LEPTyZUvCVLetF2biwqnxRDiS4CeorYNCrdbWWzWFL9QuQkjghQn3g
1NN+p9IRU1zymftd0zXxpbiXhLkA4NqkgiKPXHsINPqsmk7MuSA6PgbiQzgs
VrOkRm84DttL1zh4+D3WVjPlUX4BnZ14EAjx+CDEJM5yT90Udh00KKtriRQh
1U6AdAH38fA5RzY0Ih1VY4AKVU+rz+YD3245KQZ1XxO+zlE+UBdezwEZmsPU
cJIDwaJEfwo4glAsJ8mrjBKzQJp/SEKyUWUCm3WLNbhY3hlW7N+Jm7P8GSfM
JaRS9JN8nPOKs11or1eHz55j6mve5lQYPBSAkGnRUkWSDWbQSGUXaFOa2FDY
0JNcExXQMNWFFaOXa5auva7mBMKgKBO7uVh3w6U+3KamF5Oa8elSVPC57/L8
LLLWcPWPuDtDqJqewyANZBENZYOvm6mDgy2pzCpXyUgV8hwRqdZtxAptFL/3
hAsz+GlVaVcf3b/eEkd2i9zADxksULLr1f3Yixg14BkDynSxreSOIYHRwHI0
FIR82Ndu23nSpjyJ0n1LLd6v/e3UN97DCxHFRge2ImsY5n+ktYTiCptBF+I+
/ZsMR9CB2fJ2LYTPKlpdn9jY3JLkJpWXu/iZLXDmLrQQGebrbZ1RyClmeC8L
OFadaI4TrzlIGJw80pwpDoj/+px38ndzHmfbC7/dTV+8L3eS1EjjaH46aTQN
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
wgAA

-->

</rfc>
