Network Working Group R. Anderson Internet-Draft S. Berkson Intended status: Informational Jolly Roger Telephone Company Expires: 21 January 2027 P. Askew 20 July 2026 Caller-ID Vouching and Vetting (CIDVV) draft-anderson-askew-cidvv-01 Abstract Caller-ID spoofing remains a significant problem in telephony, particularly across inter-domain and international call paths where identity frameworks may not yet be fully deployed. This document defines *Caller-ID Vouching and Vetting (CIDVV)*, a lightweight verification mechanism that lets the called party ask a simple question: "Will the party responsible for this number vouch for this call right now?" CIDVV uses short-lived signaling exchanges encoded within the Calling Party Number to confirm that the calling party controls the Asserted Caller-ID. It 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. CIDVV is complementary to STIR/SHAKEN and other identity frameworks. It provides an incrementally deployable tool that can operate across call paths where a complete cryptographic attestation signal is not available to the terminating side, while being designed to tolerate common forms of intermediate network modification. By requiring demonstrable real-time control of the Asserted Caller- ID, CIDVV strengthens resistance to spoofing in a practical, low- overhead manner. About This Document This note is to be removed before publishing as an RFC. Anderson, et al. Expires 21 January 2027 [Page 1] Internet-Draft CIDVV July 2026 The latest revision of this draft can be found at https://cidvv.org/ draft-anderson-askew-cidvv.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft- anderson-askew-cidvv/. Source for this draft and an issue tracker can be found at https://github.com/Jolly-Roger-Telephone-Company/cidvv-spec. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. 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." This Internet-Draft will expire on 21 January 2027. Copyright Notice Copyright (c) 2026 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 (https://trustee.ietf.org/ license-info) 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 Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1. Motivation and Advantages . . . . . . . . . . . . . . . . 7 2.2. Related Work and Prior Dialback Mechanisms . . . . . . . 9 2.3. Design Principles . . . . . . . . . . . . . . . . . . . . 11 2.4. Simple Overview . . . . . . . . . . . . . . . . . . . . . 11 2.4.1. Vouching Operation (Primary Use Case) . . . . . . . . 12 Anderson, et al. Expires 21 January 2027 [Page 2] Internet-Draft CIDVV July 2026 2.4.2. Vetting Operation . . . . . . . . . . . . . . . . . . 13 2.5. CIDVV Mechanisms . . . . . . . . . . . . . . . . . . . . 14 2.5.1. Vouching Mechanism . . . . . . . . . . . . . . . . . 14 2.5.2. Vetting Mechanism . . . . . . . . . . . . . . . . . . 14 2.5.3. Token Computation Algorithm (Normative) . . . . . . . 15 2.5.4. Detailed Vouching Procedure . . . . . . . . . . . . . 17 2.5.5. Detailed Vetting Procedure . . . . . . . . . . . . . 18 2.5.6. Signaling Prefixes and Call Types . . . . . . . . . . 21 2.6. Response Semantics . . . . . . . . . . . . . . . . . . . 21 2.6.1. Phase 1 Verification ("100" Prefix) . . . . . . . . . 22 2.6.2. Phase 2 Verification ("101" Prefix) . . . . . . . . . 22 2.6.3. Vouch Success Response Requirements . . . . . . . . . 22 3. Protocol Operation . . . . . . . . . . . . . . . . . . . . . 22 3.1. Vouching Procedure . . . . . . . . . . . . . . . . . . . 22 3.1.1. Phase 1 Verification ("100") . . . . . . . . . . . . 23 3.1.2. Phase 2 Verification ("101") . . . . . . . . . . . . 24 3.1.3. Combined Phase Behavior (Required for Vouch Success) . . . . . . . . . . . . . . . . . . . . . . 24 3.1.4. Vouch Call Timers . . . . . . . . . . . . . . . . . . 24 3.2. Correlation Model . . . . . . . . . . . . . . . . . . . . 25 3.3. State Storage and Multi-Tenant Isolation . . . . . . . . 25 3.4. Vetting Procedure . . . . . . . . . . . . . . . . . . . . 26 4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.1. Successful Vouch Call Flow . . . . . . . . . . . . . . . 27 4.1.1. Successful Vouch Step-by-Step Description . . . . . . 29 4.2. Unsuccessful Vouch . . . . . . . . . . . . . . . . . . . 30 4.3. Vetting a Caller-ID Number . . . . . . . . . . . . . . . 31 4.3.1. First Vetting Call (Wake) using known Vetting number as Caller-ID . . . . . . . . . . . . . . . . . . . . . . 31 4.3.2. Second Vetting Call using Recognize Token as Caller-ID . . . . . . . . . . . . . . . . . . . . . . 31 4.3.3. Third Vetting Call (Auth) using Auth Token as Caller-ID . . . . . . . . . . . . . . . . . . . . . . 32 4.3.4. Successful Caller-ID Vetting Flow . . . . . . . . . . 32 5. Deployment Considerations . . . . . . . . . . . . . . . . . . 35 5.1. Behavior of Non-CIDVV Systems . . . . . . . . . . . . . . 35 5.2. Handling of CIDVV Signaling Calls . . . . . . . . . . . . 35 5.3. Carrier Incentives and SBC Policies . . . . . . . . . . . 36 5.4. Signaling Load and Operational Telemetry . . . . . . . . 37 5.5. Response Variability . . . . . . . . . . . . . . . . . . 38 5.6. Short-Term State Management . . . . . . . . . . . . . . . 38 5.7. International and Cross-Border Operation . . . . . . . . 38 6. Operational Considerations . . . . . . . . . . . . . . . . . 38 6.1. Protocol Operation - Vouching . . . . . . . . . . . . . . 38 6.2. Failure and Restart Behavior . . . . . . . . . . . . . . 39 6.3. Number Normalization . . . . . . . . . . . . . . . . . . 39 6.4. Prefix Preservation . . . . . . . . . . . . . . . . . . . 39 6.5. Interaction with Call Analytics and Fraud Detection . . . 40 Anderson, et al. Expires 21 January 2027 [Page 3] Internet-Draft CIDVV July 2026 6.6. Edge Cases and Special Handling . . . . . . . . . . . . . 40 6.6.1. Multiple Simultaneous Calls from the Same Caller-ID (Fan-Out) . . . . . . . . . . . . . . . . . . . . . . 40 6.6.2. Forwarded, Translated, and Mapped Numbers . . . . . . 41 6.6.3. Call Forwarding / Diversion . . . . . . . . . . . . . 42 7. Security Considerations . . . . . . . . . . . . . . . . . . . 43 7.1. Trust Model . . . . . . . . . . . . . . . . . . . . . . . 44 7.2. Replay and Ride-Along Attacks . . . . . . . . . . . . . . 44 7.3. Spoofing Resistance . . . . . . . . . . . . . . . . . . . 45 7.4. Denial of Service . . . . . . . . . . . . . . . . . . . . 46 7.5. Amplification and Reflection . . . . . . . . . . . . . . 47 7.6. Response Code Manipulation . . . . . . . . . . . . . . . 48 7.7. Data Privacy . . . . . . . . . . . . . . . . . . . . . . 48 7.8. Token and Shared-Secret Security (Vetting) . . . . . . . 48 7.9. Failure Modes . . . . . . . . . . . . . . . . . . . . . . 49 7.10. Interoperability Risks . . . . . . . . . . . . . . . . . 50 7.11. Residual Risk . . . . . . . . . . . . . . . . . . . . . . 50 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 50 9. Informative References . . . . . . . . . . . . . . . . . . . 50 Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 51 Appendix B. Appendix: Changes from Previous Version . . . . . . 51 B.1. Changes since draft-anderson-askew-cidvv-00 (May 2026) . 51 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 52 1. Introduction CIDVV supports two closely related functions: *Vouching* (real-time verification that the party responsible for the Asserted Caller-ID vouches for a specific call) and *Vetting* (confirmation that a number is controlled by its expected owner, useful for branding, trust programs, and registries). The primary focus of this document is the vouching mechanism, which directly addresses Caller-ID spoofing for individual calls. Caller-ID spoofing remains a widespread problem in modern telephony. Fraudulent and nuisance callers frequently impersonate legitimate numbers, eroding trust and complicating call screening for recipients. At the signaling layer, legitimate Caller-ID use and malicious impersonation can appear identical. Originating networks routinely assert a Caller-ID on behalf of a calling party, but intermediate carriers and terminating networks generally cannot infer the *intent* behind that assertion from ordinary PSTN signaling alone. Without a reliable identity signal, the network may be unable to distinguish legitimate use from malicious impersonation. Anderson, et al. Expires 21 January 2027 [Page 4] Internet-Draft CIDVV July 2026 This document defines *Caller-ID Vouching and Vetting (CIDVV)*, a lightweight, incrementally deployable mechanism that allows the called party, or a platform acting on its behalf, to ask a simple real-time question: "Will the party responsible for this number vouch for this call right now?" CIDVV verifies Caller-ID control through network reachability rather than relying solely on asserted identity. It requires that a party asserting a Caller-ID demonstrate control of that number by being able to receive a short return signaling call within a brief Validity Window. 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 requires no new SIP headers, protocol extensions, response codes, or changes to SS7 signaling. It is designed to function across mixed SIP and TDM networks, including international paths. *CIDVV is complementary to STIR/SHAKEN* and other identity frameworks. It provides an additional reachability-based verification signal in environments where a complete cryptographic attestation signal is not available to the terminating side, while being designed to tolerate common signaling modifications by intermediate networks. It intentionally uses distinct failure- response behaviors as part of its signaling mechanism and does not require universal adoption to deliver benefit. The mechanism leverages two key elements of the existing telephone ecosystem: * *Authoritative PSTN routing*: Calls to a telephone number are generally routed to the provider, service, or party responsible for that number. CIDVV uses this existing routing behavior to test whether the party responsible for an Asserted Caller-ID can receive and respond to a return verification call. * *Calling Party Number encoding*: CIDVV carries its signaling state in compact numeric values placed in the Calling Party Number. The prefixes "100" and "101" identify CIDVV verification calls while preserving ordinary routing to the Asserted Caller-ID. CIDVV operates entirely within standard PSTN routing behavior and requires no media exchange. While it does not provide absolute identity assurance, it delivers strong, real-time evidence of Caller- ID control in a practical and low-overhead manner. Anderson, et al. Expires 21 January 2027 [Page 5] Internet-Draft CIDVV July 2026 2. Terminology * *Caller-ID*: The telephone number presented to the called party (what the end user sees). * *Asserted Caller-ID*: The Caller-ID value that is being vouched or vetted by this protocol. This is the number whose control the calling party claims, and it is used for state management, token computation, and correlation. * *Calling Party Number*: The value carried in the signaling protocol (e.g., SIP From header or ISUP Calling Party Number parameter). In many deployments this is the same as the Caller-ID presented to the called party, but the signaling value and user- visible Caller-ID are not always identical. * *Alice*: An example participant in CIDVV flows. In vouching flows, Alice is the calling party asserting a Caller-ID. In vetting flows, Alice is the verifier of Bob's number. * *Bob*: An example participant in CIDVV flows. In vouching flows, Bob is the called party whose platform requests a vouch. In vetting flows, Bob is the number owner whose number is being vetted. * *CIDVV Platform*: A system that implements the vouching and vetting procedures defined in this document. * *CIDVV-aware Network Element*: A network element (typically an SBC or proxy) that recognizes CIDVV signaling prefixes ("100" and "101") in the Calling Party Number and routes those calls to a CIDVV platform. In some deployments, it may also forward initial INVITEs for new dialogs to a CIDVV platform and handle local responses that allow the original call to continue. * *Vouch*: 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. * *Vet* (or *Vetting*): The process by which a CIDVV platform confirms that a party controls a telephone number via the three- call challenge-response sequence. Vetting may be performed on behalf of third parties such as Caller-ID branding services, Vetting Agents, law enforcement agencies, trade organizations, or enterprise trust programs. Anderson, et al. Expires 21 January 2027 [Page 6] Internet-Draft CIDVV July 2026 * *Vouching Call*: A short signaling call used in the CIDVV protocol. CIDVV defines *Phase 1* ("100" prefix) and *Phase 2* ("101" prefix) verification calls. * *Phase 1 Vouch* ("100" prefix): The initial Vouch verification step. Expected response behavior is a Busy-class response (e.g., SIP *486 Busy Here*). * *Phase 2 Vouch* ("101" prefix): The secondary Vouch step. Expected response behavior is a Rejection-class response (e.g., SIP *603 Decline*). * *Successful Vouch*: Requires *both Phase 1 and Phase 2* to complete with the expected behaviors within the Validity Window. * *Verification Not Performed*: A condition where verification could not be completed due to system or network conditions. * *Validity Window*: The time interval during which the originating CIDVV platform will accept and correlate a vouch attempt (return call) from the called party. This is typically on the order of 10-30 seconds. * *Unsuccessful Vouch*: A verification result indicating that the vouch did not complete successfully, including cases involving missing state, unexpected response behavior, timeout, altered signaling, or incomplete verification phases. * *Vouch-Call Timeout*: A local timer used by the platform that initiates a Phase 1 or Phase 2 verification call to limit how long it waits for a response. This is typically 3-6 seconds for domestic calls and longer (e.g., 8-20 seconds) for international calls. It is distinct from the Validity Window. 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. 2.1. Motivation and Advantages CIDVV was designed in response to practical constraints observed in real-world telephony deployments. Earlier design alternatives included carrying verification data in Real-Time Text (RTT), media, SIP headers, or SDP bodies. These approaches were not selected because they either required media-path establishment, depended on SIP-specific behavior, or were likely to be removed, rewritten, or Anderson, et al. Expires 21 January 2027 [Page 7] Internet-Draft CIDVV July 2026 ignored by back-to-back user agents, gateways, or interworking functions in mixed SIP, SS7/TDM, and ISDN environments. CIDVV instead carries short-lived verification state in the Calling Party Number and uses distinguishable non-success response behaviors as the verification signal. This design favors information elements and response semantics that are commonly preserved across heterogeneous telephone networks, including inter-provider and international paths. The result is a mechanism that can be deployed incrementally without defining new SIP headers, new SIP response codes, new media behavior, or new SS7/ISDN protocol elements. CIDVV is not intended to replace STIR/SHAKEN. STIR/SHAKEN provides important cryptographic caller identity assurance and remains a key part of the telephone identity ecosystem. CIDVV adds a complementary reachability-based signal: whether the party responsible for the Asserted Caller-ID can receive and correctly respond to verification calls for this call attempt within the Validity Window. The primary advantages of CIDVV are: * *Uses existing telephony behavior*: CIDVV relies on existing call routing, Calling Party Number delivery, and non-success response behavior rather than new protocol extensions. * *Provides reachability-based anti-spoofing evidence*: A successful vouch gives strong evidence that a party controlling the Asserted Caller-ID is participating in the call attempt during the Validity Window. * *Works across mixed network environments*: CIDVV is designed for SIP, SS7/TDM, ISDN, and interworking environments, including paths where SIP-specific identity information may not survive end-to- end. * *Requires no media exchange*: Verification calls are short signaling-only exchanges and are not intended to establish media. * *Supports incremental deployment*: CIDVV can be implemented by enterprises, service providers, or third-party CIDVV platforms. Universal deployment is not required for cooperating parties to obtain benefit. * *Provides operational visibility*: Number owners and their providers can gain telemetry about attempted use of their numbers in suspicious or spoofed calling scenarios. Anderson, et al. Expires 21 January 2027 [Page 8] Internet-Draft CIDVV July 2026 * *Supports flexible operational models*: CIDVV can be deployed by the originating provider, terminating provider, enterprise SBCs, hosted platforms, or third-party services, depending on local policy and routing arrangements. By avoiding dependence on centralized authorities or end-to-end SIP feature preservation, CIDVV lowers the barrier to deployment while providing a practical additional tool for detecting and reducing Caller-ID spoofing. 2.2. Related Work and Prior Dialback Mechanisms CIDVV is related to prior work on telephone-number authorization, dialback authentication, and out-of-band caller-identity verification. The STIR framework defines mechanisms for signing and verifying telephone calling-party information. STIR and STIR/SHAKEN are important parts of the telephone identity ecosystem, and CIDVV is not a replacement for them. CIDVV provides a complementary signal based on reachability. It asks whether the party reached through ordinary telephone routing for the Asserted Caller-ID will vouch for a specific call attempt within a short Validity Window. This signal can be useful where a terminating platform does not have a complete or usable cryptographic attestation signal for a particular call path, or where such information is not available across the full path. It can also be used alongside STIR verification results, call analytics, traceback processes, reputation systems, and local call-handling policy. Prior STIR-related work has also considered callback-based verification. For example, [I-D.rosenberg-stir-callback] describes a callback mechanism intended to help bootstrap telephone-number validation for STIR. That approach relies on STIR-specific mechanisms, SIP behavior, certificate handling, and new SIP response codes. CIDVV differs by avoiding new SIP headers, new SIP response codes, media establishment, and end-to-end SIP dependencies. CIDVV instead carries compact state in the Calling Party Number and uses distinguishable non-success response behavior as the verification signal. Caller ID Verification (CIV) [I-D.hao-civ] is another related dialback mechanism. CIV uses a reverse verification call and a challenge-response exchange involving DTMF. CIDVV differs from CIV by avoiding media and DTMF entirely. CIDVV verification calls are signaling-only and are expected to terminate with non-success responses. This avoids the operational cost, complexity, and delay Anderson, et al. Expires 21 January 2027 [Page 9] Internet-Draft CIDVV July 2026 of establishing media paths solely for verification, especially at terminating platforms that may need to evaluate large volumes of inbound calls. This design is intended to improve deployability across heterogeneous SIP, SS7/TDM, ISDN, and international interworking environments where media behavior, SIP extensions, or end-to-end signaling features may not be reliably preserved. STIR out-of-band work, including [RFC8816] and [RFC9888], addresses delivery of PASSporT objects outside the ordinary SIP signaling path. CIDVV addresses a different part of the problem space. It does not transport PASSporTs and does not attempt to prove legal ownership or all delegated rights to use a telephone number. Instead, CIDVV provides a real-time reachability signal tied to a specific call attempt. Number-routing asymmetry remains an important deployment consideration. In many real-world deployments, the party authorized to use a number, the provider from which the number is obtained, the originating service provider, and the platform that receives calls for that number may be different entities. CIDVV does not eliminate this operational reality. Rather, it requires the responsible party, provider, enterprise SBC, or delegated CIDVV platform to participate in the vouching process and maintain the state needed to answer verification calls correctly. Delegated or authorized use of an Asserted Caller-ID, such as an enterprise application, healthcare calling service, contact-center platform, or contracted calling provider, can be supported when that service is integrated with the responsible CIDVV platform for the Asserted Caller-ID. For example, the delegated service, the enterprise, the enterprise's provider, or another authorized platform can deposit the short-lived call state needed for vouching. If no such state is deposited, CIDVV does not determine whether the call is malicious; it only indicates that the responsible platform did not vouch for that specific call attempt. Like other dialback mechanisms, CIDVV needs to address reflection and amplification risk. CIDVV treats this as both a deployment and security consideration: each verification event is bounded and signaling-only, while both initiating deployments and the party responsible for an Asserted Caller-ID need controls appropriate to their roles. Section Signaling Load and Operational Telemetry (Section 5.4) and Section Amplification and Reflection (Section 7.5) discuss these issues in more detail. Anderson, et al. Expires 21 January 2027 [Page 10] Internet-Draft CIDVV July 2026 2.3. Design Principles CIDVV was designed with the following core principles: * *Maximal compatibility with existing infrastructure*: The protocol must work across SIP, SS7/TDM, ISDN, and mixed networks - including international paths - without requiring changes to signaling protocols, new headers, response codes, or media support. * *Resilience to intermediate network behavior*: Intermediate networks may normalize, truncate, or otherwise modify signaling information. Therefore, all protocol state is encoded in a compact numeric form within the Calling Party Number field, which has the highest chance of surviving end-to-end. * *Use of existing failure semantics*: CIDVV relies on distinguishable classes of non-success response behavior (e.g., Busy-class vs. Rejection-class behavior) rather than requiring specific end-to-end response codes. * *Minimal new infrastructure*: No persistent identity infrastructure or central authorities are required. Vouching requires no cryptographic key management, and vetting can use locally configured shared secrets. * *Incremental deployability*: The protocol provides benefit even with partial adoption and is designed to coexist cleanly with STIR/SHAKEN and other identity solutions. * *Practical and low-overhead operation*: Verification uses very short signaling-only calls with no media exchange, keeping network impact minimal while still providing strong real-time evidence of number control. These principles ensure CIDVV can be deployed quickly and broadly while delivering meaningful protection against Caller-ID spoofing today. 2.4. Simple Overview CIDVV defines two related operations: * *Vouching* - Allows the called party (or their provider) to verify in real time whether the party responsible for the Asserted Caller-ID vouches for _this specific call_. Anderson, et al. Expires 21 January 2027 [Page 11] Internet-Draft CIDVV July 2026 * *Vetting* - Allows confirmation that a telephone number is under the control of its expected owner. This is useful for Caller-ID branding services, enterprise trust programs, industry registries, and similar applications. 2.4.1. Vouching Operation (Primary Use Case) When Alice wants to place a call to Bob while asserting a particular Caller-ID: 1. Alice places a normal call to Bob using the Asserted Caller-ID. Alice's CIDVV platform is notified of the outbound call attempt. 2. Bob's CIDVV platform intercepts the incoming call before ringing Bob's phone. 3. Bob's platform initiates *two short signaling-only verification calls* back to Alice's Asserted Caller-ID (these may be performed in parallel): * *Phase 1* verification call using Calling Party Number prefix "100". * *Phase 2* verification call using Calling Party Number prefix "101". 4. Alice's CIDVV platform recognizes the special prefixes on the incoming verification calls and responds with the expected non- success response behavior for each phase. This provides evidence that it controls the Asserted Caller-ID *and* that Alice has an active call in progress to Bob. 5. Bob's CIDVV platform evaluates the verification result. If both Phase 1 and Phase 2 succeed within the Validity Window, the vouch is successful. If either phase fails, times out, or produces an unexpected response, the vouch is unsuccessful or indeterminate. The handling of the original call is implementation-specific; the platform may allow the call, label it, route it differently, send it to voicemail, or reject it according to local policy. The two verification calls use *reachability testing* to confirm that Alice (or her service provider) genuinely controls the Asserted Caller-ID she is presenting for this specific call. Anderson, et al. Expires 21 January 2027 [Page 12] Internet-Draft CIDVV July 2026 2.4.2. Vetting Operation Vetting allows a party (Alice) to confirm that another party (Bob) controls a specific telephone number. It is particularly useful for Caller-ID branding services, trust programs, and registries. Vetting uses a three-call challenge-response sequence consisting of a *Wake Call*, *Recognize Call*, and *Auth Call*, all protected by a pre-shared secret. The sequence is designed to prevent an attacker from goading the number owner into placing return calls (e.g., by spoofing well-known vetting numbers). When Alice wants to vet that Bob controls a particular telephone number: 1. Alice and Bob share a secret (e.g., a passphrase such as "elephant"). 2. Alice initiates a *Wake Call* to Bob using the 101 prefix and an agreed vetting Caller-ID. 3. Bob's platform recognizes the vetting Caller-ID, computes a short-lived Recognize Token, and responds to the Wake Call with SIP *603 Decline*. 4. Alice's platform computes the same Recognize Token and sends a *Recognize Call* using the Recognize Token in the Calling Party Number. 5. Bob's platform verifies the Recognize Token, proving that Alice knows the shared secret. Bob then responds to the Recognize Call with SIP *486 Busy Here* and initiates an *Auth Call* using an Auth Token. 6. Alice's platform verifies the Auth Token, proving that Bob knows the shared secret, and responds to the Auth Call with SIP *486 Busy Here*. 7. After Alice verifies the Auth Token and Bob receives the expected SIP *486 Busy Here* response to the Auth Call, both sides consider the vetting successful. This design ensures that the initial Wake Call reveals nothing useful to an attacker, while the subsequent Recognize and Auth steps provide mutual authentication between parties that share the secret. All calls remain short signaling-only exchanges with no media. Anderson, et al. Expires 21 January 2027 [Page 13] Internet-Draft CIDVV July 2026 *Note*: The shared secret and token exchange details are defined in Section Token Computation Algorithm (Section 2.5.3). 2.5. CIDVV Mechanisms 2.5.1. Vouching Mechanism CIDVV uses two distinct signaling prefixes in the Calling Party Number for vouching: * *"100"* - Phase 1 Verification Call * *"101"* - Phase 2 Verification Call A successful *Vouch* requires *both* Phase 1 and Phase 2 to complete with their expected responses within the Validity Window. The two phases MAY be performed in any order or in parallel. *Expected behaviors*: * *Phase 1* ("100" prefix): MUST receive a Busy-class response (e.g., SIP *486 Busy Here*). * *Phase 2* ("101" prefix): MUST receive a Rejection-class response (e.g., SIP *603 Decline*). If either phase fails to produce the expected response within the vouch-call timeout (or is missing, altered, or inconsistent), the entire vouch MUST be treated as unsuccessful or indeterminate. 2.5.2. Vetting Mechanism CIDVV uses a three-step handshake for vetting. All calls use the 101 prefix in the Calling Party Number. * *Wake Call* (Alice -> Bob): Alice initiates using her vetting Caller-ID. * *Recognize Call* (Alice -> Bob): Alice uses the 101 prefix followed by the Recognize Token as the Calling Party Number. * *Auth Call* (Bob -> Alice): Bob uses the 101 prefix followed by the Auth Token as the Calling Party Number. A successful *Vet* requires all three steps to complete successfully within the Validity Window. Anderson, et al. Expires 21 January 2027 [Page 14] Internet-Draft CIDVV July 2026 The *Recognize Call* serves as critical anti-goading protection. Bob's platform will only initiate the final Auth Call if it has recently received a valid Wake Call _and_ the Recognize Token matches what it computed. This prevents an attacker from tricking Bob's platform into calling Alice. Both sides independently compute the short-lived Recognize Token and Auth Token from the shared secret and the two telephone numbers involved. The tokens are valid only within the Validity Window. 2.5.3. Token Computation Algorithm (Normative) CIDVV vetting uses two derived numeric tokens: * *Recognize Token*: Computed by Alice and verified by Bob. * *Auth Token*: Computed by Bob and verified by Alice. Both tokens are computed using the same processing steps, but with different input ordering. This prevents the Recognize Token and Auth Token from being interchangeable. 1. Normalize both telephone numbers to E.164 digit strings with no leading "+" and no punctuation, as defined in Section Number Normalization (Section 6.3). 2. For the *Recognize Token*, concatenate the following values as UTF-8 bytes: normalized-calling-number || "|" || normalized-called-number || "|" || shared-secret In this context, normalized-calling-number is Alice's vetting Caller-ID and normalized-called-number is Bob's number being vetted. 3. For the *Auth Token*, concatenate the following values as UTF-8 bytes: shared-secret || "|" || normalized-called-number || "|" || normalized-calling-number 4. Compute the SHA-256 digest of the concatenated bytes. 5. Take the first 8 hexadecimal characters of the digest. 6. Convert that 8-character hexadecimal string to a decimal integer. Anderson, et al. Expires 21 January 2027 [Page 15] Internet-Draft CIDVV July 2026 7. Left-pad the decimal value with zeros to 10 digits if needed, then prepend the digit "1" to produce an 11-digit token. *Example (for illustration only)* * Alice vetting Caller-ID: +12125550100 * Bob's number: +19495550199 * Shared secret: elephant Recognize Token input: 12125550100|19495550199|elephant Auth Token input: elephant|19495550199|12125550100 Recognize Token calculation: * SHA-256 digest begins with: b86a096e * First 8 hexadecimal characters: b86a096e * Decimal value: 3093956974 * 10-digit decimal value: 3093956974 * Final 11-digit Recognize Token: 13093956974 Auth Token calculation: * SHA-256 digest begins with: 9f6b0648 * First 8 hexadecimal characters: 9f6b0648 * Decimal value: 2674591304 * 10-digit decimal value: 2674591304 * Final 11-digit Auth Token: 12674591304 The resulting Recognize Token and Auth Token differ because the input ordering is different. Anderson, et al. Expires 21 January 2027 [Page 16] Internet-Draft CIDVV July 2026 Implementations MUST use identical normalization, input ordering, digest processing, decimal conversion, zero-padding, and prefixing on both sides of the vetting exchange. Tokens are valid only within the Validity Window or, for multivetting, within the refreshed Validity Window. Hosted or multi-tenant CIDVV services MUST ensure that shared secrets, configuration, token state, and cached vetting state are scoped to the appropriate customer or tenant. A tenant-specific value MAY be included as an additional token-computation input only when both sides of the vetting relationship are explicitly configured to use the same value. Otherwise, tenant isolation MUST be enforced by provisioning, storage, and access-control boundaries rather than by changing the token algorithm. 2.5.4. Detailed Vouching Procedure When Alice wants to place a call to Bob using her Asserted Caller-ID, the following steps are performed: 1. Alice's CIDVV platform is notified of her outbound call attempt to Bob using her Asserted Caller-ID. The notification mechanism is implementation-specific. For example, Alice's SBC or gateway might send an INVITE to the CIDVV platform before advancing the original call toward the PSTN, or the platform might be notified through an API, routing policy, STIR signing workflow, or other local mechanism. Upon receiving this notification, Alice's CIDVV platform records the attempted call state for the Validity Window so that it can respond to subsequent Phase 1 and Phase 2 verification calls. 2. Bob's CIDVV platform intercepts the incoming call from Alice and holds it (does not yet alert Bob's phone). 3. Bob's CIDVV platform initiates two short verification calls back to Alice (in either order or in parallel): a. One verification call with Calling Party Number prefixed by +100. b. One verification call with Calling Party Number prefixed by +101. Both calls are directed to Alice's Asserted Caller-ID. Anderson, et al. Expires 21 January 2027 [Page 17] Internet-Draft CIDVV July 2026 4. A CIDVV-aware network element serving Alice's Asserted Caller-ID recognizes the +100 or +101 prefix in the Calling Party Number and routes the verification call to Alice's CIDVV platform. 5. Alice's CIDVV platform receives each verification call and performs the following actions: a. For the call with +100 prefix: Looks up the cached call state and responds with SIP *486 Busy Here* if matching state exists. b. For the call with +101 prefix: Responds with SIP *603 Decline* for vouching purposes, unless the call corresponds to an active vetting procedure as described in Section Vetting Procedure (Section 3.4). 6. Bob's CIDVV platform evaluates the responses to both verification calls. 7. If both verification calls receive the expected responses (SIP *486 Busy Here* for +100 and SIP *603 Decline* for +101) within the Validity Window, Bob's CIDVV platform: a. Considers the vouching successful. b. Applies local call-handling policy to the original call. 8. If either verification call fails to receive the correct response, times out, or does not complete within the Validity Window, Bob's CIDVV platform: a. Considers the vouching unsuccessful or indeterminate. b. May take any of the following actions on the original call (implementation-specific): * Reject the call (e.g., with SIP *603 Decline*). * Route the call to Bob's voicemail. * Allow the original call to continue with an indication that the Caller-ID was not verified (e.g., "Unverified Caller-ID"). 2.5.5. Detailed Vetting Procedure When Alice wants to confirm that Bob controls a particular telephone number, the following protocol is used: 1. Alice and Bob share a secret (e.g., "elephant"). Anderson, et al. Expires 21 January 2027 [Page 18] Internet-Draft CIDVV July 2026 2. Alice and Bob agree on the Caller-ID that Alice will use to vet Bob's number. 3. Alice's CIDVV platform initiates a "Wake Call" to Bob's number using a Calling Party Number consisting of the 101 prefix followed by Alice's agreed vetting Caller-ID. 4. Bob's CIDVV platform performs the following actions: a. Intercepts the incoming call. b. Recognizes Alice's vetting Caller-ID and identifies this as a "Wake Call". c. Computes a short-lived "Recognize Token" derived from Alice's number + Bob's number + the shared secret (example: 13093956974). d. Stores this token temporarily in memory. e. Responds with SIP *603 Decline*. f. Considers this a successful "Wake Call" from Alice to Bob (step 1 of 3). The Wake Call alone does not authenticate Alice and does not cause Bob's platform to initiate an Auth Call. Alice's vetting Caller-ID may be known or reused across multiple vetting relationships, so Bob's platform waits for a valid Recognize Call proving knowledge of the shared secret before placing any return call to Alice. This prevents an attacker from spoofing Alice's vetting Caller-ID in a Wake Call in order to goad Bob's platform into calling Alice. 5. Alice's CIDVV platform performs the following actions upon receiving SIP *603 Decline*: a. Considers Bob's CIDVV platform "Awake". b. Independently calculates the same "Recognize Token" (example: 13093956974). c. Calculates an "Auth Token" using the Auth Token input ordering defined in Section Token Computation Algorithm (Section 2.5.3) (example: 12674591304). d. Stores the Auth Token temporarily in memory. Anderson, et al. Expires 21 January 2027 [Page 19] Internet-Draft CIDVV July 2026 e. Initiates a "Recognize Call" (step 2 of 3) to Bob using the Recognize Token as the Caller-ID, prefixed with +101 (example: +10113093956974). 6. Bob's CIDVV platform performs the following actions upon receiving the Recognize Call: a. Intercepts the call. b. Verifies that the received Caller-ID matches the previously stored Recognize Token. c. Considers this a successful "Recognize Call" from Alice to Bob (step 2 of 3). d. Treats Alice's CIDVV platform as authenticated for this vetting exchange. e. Responds with SIP *486 Busy Here*. f. Computes the corresponding "Auth Token" (example: 12674591304). g. Initiates an "Auth Call" (step 3 of 3) to Alice using the Auth Token as the Caller-ID, prefixed with +101 (example: +10112674591304). 7. Alice's CIDVV platform performs the following actions upon receiving the Auth Call: a. Intercepts the call. b. Verifies that the received Caller-ID matches the previously stored Auth Token. c. Considers this a successful "Auth Call" from Bob to Alice (step 3 of 3). d. Treats Bob's CIDVV platform as authenticated for this vetting exchange. e. Responds with SIP *486 Busy Here*. f. Considers the vetting procedure complete and successful. 8. Bob's CIDVV platform receives SIP *486 Busy Here* from Alice and also considers the vetting procedure successful. Anderson, et al. Expires 21 January 2027 [Page 20] Internet-Draft CIDVV July 2026 Only a party that can receive calls for Bob's number and that knows the shared secret can complete the expected token and response sequence. 2.5.6. Signaling Prefixes and Call Types CIDVV uses the following special prefixes in the Calling Party Number: +========+===========+===========+==================+=============+ | Prefix | Call Type | Direction | Purpose | Expected | | | | | | Response | | | | | | (by callee) | +========+===========+===========+==================+=============+ | +100 | Vouch | Bob -> | Vouching | 486 Busy | | | Phase 1 | Alice | verification | Here | | | | | (Phase 1) | | +--------+-----------+-----------+------------------+-------------+ | +101 | Vouch | Bob -> | Vouching | 603 Decline | | | Phase 2 | Alice | verification | | | | | | (Phase 2) | | +--------+-----------+-----------+------------------+-------------+ | +101 | Wake Call | Alice -> | Initiate vetting | 603 Decline | | | | Bob | and trigger | | | | | | token generation | | +--------+-----------+-----------+------------------+-------------+ | +101 | Recognize | Alice -> | Alice proves | 486 Busy | | | Call | Bob | knowledge of | Here | | | | | shared secret | | +--------+-----------+-----------+------------------+-------------+ | +101 | Auth Call | Bob -> | Bob proves | 486 Busy | | | | Alice | knowledge of | Here | | | | | shared secret | | +--------+-----------+-----------+------------------+-------------+ Table 1 *Note:* All vetting-related calls use the +101 prefix. Context is determined by the Caller-ID used (vetting Caller-ID vs. token value) and the current state maintained by the CIDVV platform. 2.6. Response Semantics 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. Rejection-class) rather than exact numeric values. Anderson, et al. Expires 21 January 2027 [Page 21] Internet-Draft CIDVV July 2026 Implementations SHOULD use SIP *486 Busy Here* and SIP *603 Decline* as the canonical representations of these behaviors where possible. For calls with the "101" prefix, a CIDVV platform normally responds with a Rejection-class response, such as SIP *603 Decline*. The platform responds with a Busy-class response, such as SIP *486 Busy Here*, only when the "101" call matches an active vetting token- confirmation step. CIDVV requires that these response behaviors remain distinguishable across the signaling path. Environments that cannot preserve this distinction may not support CIDVV vouching. 2.6.1. Phase 1 Verification ("100" Prefix) A call using the "100" prefix is the *Phase 1* verification call. It succeeds only if it receives a Busy-class response (e.g., SIP *486 Busy Here*). 2.6.2. Phase 2 Verification ("101" Prefix) A call using the "101" prefix is the *Phase 2* verification call. It succeeds only if it receives a Rejection-class response, with SIP *603 Decline* as the canonical example. 2.6.3. Vouch Success Response Requirements A successful vouch requires both Phase 1 and Phase 2 to complete with their expected behaviors within the Validity Window. Implementations MUST NOT treat a single phase as sufficient for a successful vouch. If either phase fails, is missing, altered, delayed, or inconsistent, the vouch result MUST be treated as unsuccessful or indeterminate. Vetting success is defined separately by the Wake, Recognize, and Auth procedure in Section Vetting Procedure (Section 3.4). 3. Protocol Operation 3.1. Vouching Procedure In this procedure, Alice places a call to Bob using an Asserted Caller-ID. Bob's CIDVV platform uses the vouching procedure to determine whether the party responsible for Alice's Asserted Caller- ID will vouch for this specific call attempt. The result of the vouching procedure is a verification signal; handling of the original call is implementation-specific. Anderson, et al. Expires 21 January 2027 [Page 22] Internet-Draft CIDVV July 2026 The following subsections define the required behavior for vouching. Alice initiates a call to Bob using her Asserted Caller-ID. Alice's CIDVV platform receives a notification of an attempted call from Alice to Bob using Alice's Asserted Caller-ID. The notification mechanism is implementation-specific. For example, Alice's SBC or gateway might send an INVITE to the CIDVV platform before advancing the original call toward the PSTN. Upon receiving this notification, Alice's CIDVV platform MUST cache the attempted call using the tuple: (Asserted Caller-ID, Called Number) for the Validity Window. The response used for this local notification is outside the inter- domain CIDVV verification exchange. Implementations MAY use any local behavior that allows Alice's SBC or gateway to continue routing the original call toward Bob. When Bob's CIDVV platform receives the original call, it holds the call and initiates two short signaling-only verification calls toward Alice's Asserted Caller-ID. These calls MAY be performed in either order or in parallel. 3.1.1. Phase 1 Verification ("100") Bob's CIDVV platform constructs a verification Calling Party Number by prefixing "100" to the rightmost 12 digits of Bob's called number after number normalization. It then initiates a verification call toward Alice's Asserted Caller-ID using that value as the Calling Party Number. When Alice's SBC receives a call with a Calling Party Number beginning with "100", it MUST route the call to Alice's CIDVV platform. Upon receiving the Phase 1 verification call, Alice's CIDVV platform MUST determine whether the call matches cached state for the Asserted Caller-ID that received the verification call and the called-number value encoded in the verification Calling Party Number. If a matching cache entry exists within the Validity Window, Alice's CIDVV platform MUST respond to the Phase 1 verification call with a Busy-class response, such as SIP *486 Busy Here*. Anderson, et al. Expires 21 January 2027 [Page 23] Internet-Draft CIDVV July 2026 If no matching cache entry exists, Alice's CIDVV platform MUST NOT respond with a Busy-class response for the Phase 1 verification call. It MAY respond with a Rejection-class response, such as SIP *603 Decline*. 3.1.2. Phase 2 Verification ("101") Bob's CIDVV-aware element initiates a second verification call using a Calling Party Number constructed by prefixing "101" to the same 12-digit payload used for Phase 1. When Alice's SBC receives a call with a Calling Party Number beginning with "101", it MUST route the call to Alice's CIDVV platform. For vouching purposes, Alice's CIDVV platform does not need to perform a vouching cache lookup for the Phase 2 call. Unless the call corresponds to an active vetting procedure, Alice's CIDVV platform MUST respond to the Phase 2 verification call with a Rejection-class response, such as SIP *603 Decline*. A Phase 2 verification call does not, by itself, prove that Alice has an active call in progress to Bob. Phase 2 is used together with Phase 1 to distinguish a CIDVV-aware platform from ordinary network behavior and to reduce false-positive vouches. A "101" call that corresponds to an active vetting procedure is handled according to Section Vetting Procedure (Section 3.4). 3.1.3. Combined Phase Behavior (Required for Vouch Success) A successful vouch requires both Phase 1 and Phase 2 to complete with their expected behaviors within the Validity Window. Implementations MUST NOT treat a single phase as sufficient for a successful vouch. If either phase fails, is missing, altered, delayed, or inconsistent, the vouch result MUST be treated as unsuccessful or indeterminate. Vetting success is defined separately by the Wake, Recognize, and Auth procedure in Section Vetting Procedure (Section 3.4). 3.1.4. Vouch Call Timers The Validity Window controls how long cached vouching state remains valid at the originating CIDVV platform. Anderson, et al. Expires 21 January 2027 [Page 24] Internet-Draft CIDVV July 2026 Independently, the platform that initiates a Phase 1 or Phase 2 verification call SHOULD implement a configurable local timer that controls how long it waits for a signaling response to that verification call. A default timeout of 3-6 seconds is reasonable for domestic calls. For international destinations, longer timeouts (typically 8-20 seconds) are recommended to accommodate higher Post-Dial Delay (PDD). The two vouch calls (Phase 1 and Phase 2) may be initiated sequentially or simultaneously. 3.2. Correlation Model 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. A successful vouch indicates that at least one matching call attempt occurred during the Validity Window. It does not prove a one-to-one correspondence between a specific original call leg and a specific verification call. When multiple calls with the same Asserted Caller-ID and called number occur within the Validity Window, implementations MAY treat the tuple as active state rather than requiring strict one-to-one correlation. This case is discussed further in Section Multiple Simultaneous Calls from the Same Caller-ID (Section 6.6.1). 3.3. State Storage and Multi-Tenant Isolation CIDVV implementations maintain short-lived state for vouching and vetting. The representation of that state is implementation-specific and is not carried on the wire. For vouching, implementations commonly store state associated with the Asserted Caller-ID, the called number, and the Validity Window. For vetting, implementations store temporary state associated with the Wake, Recognize, and Auth steps, including any pending Recognize Token or Auth Token. Implementations MAY use hashes, derived keys, database keys, in- memory objects, or other local mechanisms for state storage. These internal storage keys MUST NOT alter the externally visible token computation defined in Section Token Computation Algorithm (Section 2.5.3). Anderson, et al. Expires 21 January 2027 [Page 25] Internet-Draft CIDVV July 2026 All temporary state MUST expire automatically. Loss of state, expiration of state, or inability to retrieve state MUST cause the corresponding vouching or vetting operation to fail closed. CIDVV platforms that operate on behalf of multiple independent customers MUST ensure that all vouching and vetting state is scoped per customer or tenant. This prevents unrelated customers from interacting through shared state, identical telephone-number tuples, identical token values, or misconfigured shared secrets. Implementations MAY use separate storage, partitioning, customer- specific configuration, tenant identifiers, or access-control boundaries to achieve this isolation. 3.4. Vetting Procedure Vetting a remote number requires three separate calls (distinct SIP dialogs) using a pre-agreed shared secret. The process confirms that the *called party (Bob)* controls the target telephone number and possesses the correct shared secret. In the examples below, Alice is the verifier who initiates the vetting procedure for Bob's number. Before vetting begins, Alice and Bob agree on a shared secret, Alice's vetting Caller-ID, and a Validity Window. Alice places a Wake Call to Bob using a Calling Party Number consisting of the "101" prefix followed by Alice's agreed vetting Caller-ID. When Bob's CIDVV platform receives the Wake Call, it removes the "101" prefix and verifies that the resulting Caller-ID is expected for the current vetting attempt. Bob's platform MUST compute the Recognize Token using the algorithm defined in Section Token Computation Algorithm (Section 2.5.3) and store the resulting token for the Validity Window. It then responds to the Wake Call with SIP *603 Decline*. Alice computes the same Recognize Token and places a Recognize Call to Bob using a Calling Party Number consisting of the "101" prefix followed by the Recognize Token. When Bob's CIDVV platform receives the Recognize Call, it removes the "101" prefix and compares the remaining numeric value to the recently cached Recognize Token. Anderson, et al. Expires 21 January 2027 [Page 26] Internet-Draft CIDVV July 2026 If the Recognize Token matches, Bob's CIDVV platform MUST respond to the Recognize Call with SIP *486 Busy Here*. Alice's platform treats this response as a successful Recognize. Bob's CIDVV platform then computes the Auth Token using the algorithm defined in Section Token Computation Algorithm (Section 2.5.3) and places an Auth Call to Alice using a Calling Party Number consisting of the "101" prefix followed by the Auth Token. When Alice's CIDVV platform receives the Auth Call, it removes the "101" prefix and compares the remaining numeric value to the expected Auth Token. If the Auth Token matches, Alice's CIDVV platform MUST respond to the Auth Call with SIP *486 Busy Here*. Bob's platform treats this response as a successful Auth. Any other response, timeout, token mismatch, expired cache entry, or unexpected Caller-ID MUST be treated as an unsuccessful vet. 4. Examples 4.1. Successful Vouch Call Flow The following diagram shows a successful vouch. Anderson, et al. Expires 21 January 2027 [Page 27] Internet-Draft CIDVV July 2026 Alice CIDVV_A SBC_A PSTN SBC_B CIDVV_B Bob |----- INVITE ----->| | | | | | |<-INVITE-| | | | | | |- 404 -->| | | | | | | |-INVITE->| | | | | | | |-INVITE->| | | | | | | |-INVITE->| | | | | | |<- +100 -| | | | | |<- +100 -| | | | | |<- +100 -| | | | | |<- +100 -| | | | | | |- 486 -->| | | | | | | |- 486 -->| | | | | | | |- 486 -->| | | | | | | |- 486 -->| | | | | | |<- +101 -| | | | | |<- +101 -| | | | | |<- +101 -| | | | | |<- +101 -| | | | | | |- 603 -->| | | | | | | |- 603 -->| | | | | | | |- 603 -->| | | | | | | |- 603 -->| | | | | | |<- 302 --| | | | | | |----- INVITE ----->| Figure 1: Example Successful Vouch In the diagram: * "404" is only an example of how Alice's CIDVV platform might respond to a local notification from Alice's SBC or gateway. The response used for this local notification is implementation- specific and is not part of the inter-domain CIDVV verification exchange. * "+100" represents a verification call whose Calling Party Number begins with the prefix "100" (or "+100") followed by Bob's called number. * "+101" represents a verification call whose Calling Party Number begins with the prefix "101" (or "+101") followed by Bob's called number. * "302" is only an example of call advancement after a successful vouch. CIDVV does not require use of SIP 302; implementations may use any local method to continue, redirect, or otherwise handle the original call. Anderson, et al. Expires 21 January 2027 [Page 28] Internet-Draft CIDVV July 2026 4.1.1. Successful Vouch Step-by-Step Description 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. Note that the two verification calls (Phase 1 and Phase 2) MAY be performed in either order or in parallel. 1. The originating user (Alice, Asserted Caller-ID +12125550100) initiates a call to Bob (+19495550199). 2. The call is routed from Alice's User Agent to her SBC, which forwards it to the originating CIDVV platform (CIDVV_A). 3. *CIDVV_A*: * Caches the call attempt using the tuple (Calling: 12125550100, Called: 19495550199) for the Validity Window. * Releases the local notification leg using implementation- specific behavior, such as a SIP final response, so that the original call can continue toward Bob. 4. After the local notification leg is released, Alice's SBC or gateway continues routing the original call toward the PSTN using Alice's original Caller-ID. 5. The call reaches Bob's SBC via the PSTN. Because this is a new dialog (initial INVITE), Bob's *CIDVV-aware SBC* forwards the call to the terminating CIDVV platform (CIDVV_B). 6. *CIDVV_B* initiates Phase 1 and Phase 2 verification calls toward Alice's number (+12125550100): * Phase 1: Caller-ID = +10019495550199 * Phase 2: Caller-ID = +10119495550199 7. Each verification call arrives at Alice's SBC via the PSTN. 8. *Alice's SBC* detects the leading +100 or +101 prefix and routes the call to CIDVV_A. 9. *CIDVV_A*: Anderson, et al. Expires 21 January 2027 [Page 29] Internet-Draft CIDVV July 2026 * For a +100 prefix: Looks up the cached tuple for the Validity Window and responds with SIP *486 Busy Here* if matching state exists. * For a +101 prefix: Responds with SIP *603 Decline* for vouching purposes unless the call corresponds to an active token-confirmation step. 10. *CIDVV_B* receives the expected responses for both phases. Once both Phase 1 and Phase 2 have succeeded, it considers the combined result a *Successful Vouch*. 11. *CIDVV_B* determines the vouch result and applies its local call-handling policy. If the call is to be advanced, CIDVV_B may release or redirect the held call using implementation- specific behavior, such as returning SIP *302 Moved Temporarily* to Bob's SBC. 12. Bob's SBC or serving network element advances the original call according to that local behavior, for example by routing the call to Bob's User Agent. 13. Bob's telephone rings. This mechanism allows Bob's CIDVV platform to verify Alice's Asserted Caller-ID before deciding how to handle the original call. 4.2. Unsuccessful Vouch A successful vouch requires both verification phases to complete with the expected response behavior within the Validity Window. If either phase fails, times out, produces an unexpected response, or cannot be completed, the vouch MUST be treated as unsuccessful or indeterminate. An implementation MAY stop the verification procedure early after any phase has already failed. For example: * If the Phase 1 verification call using the "100" prefix does not result in a Busy-class response, such as SIP *486 Busy Here*, the vouch MUST fail. The implementation MAY omit the Phase 2 verification call. * If the Phase 1 verification succeeds but the Phase 2 verification call using the "101" prefix does not result in a Rejection-class response, such as SIP *603 Decline*, the vouch MUST fail. Anderson, et al. Expires 21 January 2027 [Page 30] Internet-Draft CIDVV July 2026 Implementations MUST fail closed. Any ambiguity, unexpected response, timeout, provisional response, successful response, media establishment, or other verification-call progression MUST result in an unsuccessful or indeterminate outcome. 4.3. Vetting a Caller-ID Number Vetting uses three independent verification calls that form a challenge-response sequence. For clarity, the calls are shown separately, but together they constitute a single vetting operation. 4.3.1. First Vetting Call (Wake) using known Vetting number as Caller- ID CIDVV_A SBC_A PSTN SBC_B CIDVV_B | | | | | |-- WAKE101 ->| | | | | |-- WAKE101 ->| | | | | |-- WAKE101 ->| | | | | |-- WAKE101 ->| | | | | | | | | |<--- 603 ----| | | |<--- 603 ----| | | |<--- 603 ----| | | |<--- 603 ----| | | | | | | | | Figure 2: Wake vetting call with 101 - Bob creates Recognize Token and responds with SIP 603 Decline 4.3.2. Second Vetting Call using Recognize Token as Caller-ID CIDVV_A SBC_A PSTN SBC_B CIDVV_B | | | | | |-- RECG101 ->| | | | | |-- RECG101 ->| | | | | |-- RECG101 ->| | | | | |-- RECG101 ->| | | | | | | | | |<--- 486 ----| | | |<--- 486 ----| | | |<--- 486 ----| | | |<--- 486 ----| | | | | | | | | Figure 3: Recognize Call (101 prefix) - Alice proves knowledge of the shared secret using the Recognize Token Anderson, et al. Expires 21 January 2027 [Page 31] Internet-Draft CIDVV July 2026 4.3.3. Third Vetting Call (Auth) using Auth Token as Caller-ID CIDVV_A SBC_A PSTN SBC_B CIDVV_B | | | | | | | | |<- AUTH101 --| | | |<- AUTH101 --| | | |<- AUTH101 --| | | |<- AUTH101 --| | | | | | | | | |---- 486 --->| | | | | |---- 486 --->| | | | | |---- 486 --->| | | | | |---- 486 --->| | | | | | Figure 4: Auth Call (101 prefix) - Bob proves knowledge of the shared secret using the Auth Token 4.3.4. Successful Caller-ID Vetting Flow Vetting a remote number requires three separate calls (distinct SIP dialogs) that together form a single challenge-response operation protected by a pre-agreed shared secret. The process confirms that the called party (Bob) controls the target telephone number and possesses the correct shared secret. 1. Alice and Bob agree on a shared secret (e.g., elephant) and Alice's vetting Caller-ID (e.g., +12125550100). 2. Both parties configure their CIDVV platforms with the shared secret, Alice's vetting Caller-ID, and an optional authorization lifetime (e.g., "one week"). This allows the number owner (Bob) to limit how long the vetting authorization remains active. 3. Alice's CIDVV platform (CIDVV_A) initiates the *Wake Call* to Bob's number (+19495550199) with Caller-ID +10112125550100. 4. Bob's SBC, gateway, or other CIDVV-aware network element recognizes the 101 prefix in the Calling Party Number and routes the call to CIDVV_B. 5. *CIDVV_B*: * Strips the 101 prefix to recover Alice's vetting Caller-ID. * Recognizes it as a pre-agreed vetting number. * Computes the Recognize Token. Anderson, et al. Expires 21 January 2027 [Page 32] Internet-Draft CIDVV July 2026 * Caches the token for the Validity Window. * Responds with SIP *603 Decline*. 6. CIDVV_A receives SIP *603 Decline* and computes the same Recognize Token. 7. CIDVV_A immediately places the *Recognize Call* to Bob using Caller-ID +101 followed by the Recognize Token (e.g., +10113093956974). 8. Bob's SBC, gateway, or other CIDVV-aware network element recognizes the 101 prefix in the Calling Party Number and routes the call to CIDVV_B. 9. *CIDVV_B*: * Strips the 101 prefix. * Verifies the token matches the cached value. * Responds with SIP *486 Busy Here*. 10. CIDVV_A receives SIP *486 Busy Here* and computes the Auth Token. 11. *CIDVV_B*: * Computes the Auth Token. * Initiates the *Auth Call* to Alice's vetting Caller-ID using Caller-ID +101 followed by the Auth Token (e.g., +10112674591304). 12. Alice's SBC, gateway, or other CIDVV-aware network element recognizes the 101 prefix in the Calling Party Number and routes the call to CIDVV_A. 13. *CIDVV_A*: * Strips the 101 prefix. * Verifies the Auth Token. * Responds with SIP *486 Busy Here*. * Declares the vetting successful. Anderson, et al. Expires 21 January 2027 [Page 33] Internet-Draft CIDVV July 2026 14. CIDVV_B receives SIP *486 Busy Here* and also declares the vetting successful. All calls are short signaling-only exchanges. The entire operation MUST complete within the Validity Window. 4.3.4.1. Multi-Number Vetting Optimization (Multivetting) To reduce signaling load when vetting multiple numbers controlled by the same party (Bob), a single Wake call MAY establish shared state. Subsequent Recognize/Auth pairs for additional numbers can then proceed, with the Validity Window refreshed after each successful individual vet. In this optimization: 1. Alice performs *one Wake Call* to any of Bob's numbers (or a designated primary vetting number) using her pre-agreed vetting Caller-ID prefixed with +101. CIDVV_B creates and caches a session context (tied to Alice's vetting Caller-ID + shared secret). 2. For each number to vet (including the first if desired): * Alice sends the *Recognize Call* using the per-number Recognize Token. * *CIDVV_B* verifies the token against the current call (using calling number, called number, and the shared secret) and responds with SIP *486 Busy Here* if successful. * The per-number *Auth Call* proceeds as in the base flow. * Upon successful completion of each individual vet, including the expected SIP *486 Busy Here* responses, both sides refresh/restart the Validity Window for the ongoing session. Implementations SHOULD enforce a configurable maximum session lifetime for a multivetting operation, independent of per-vet Validity Window refreshes. This optimization is *OPTIONAL*. Implementations MUST support the base three-call-per-number sequence. Multivetting requires Bob's platform to maintain per-Alice session state. The Wake call establishes "Bob is awake and shares the secret"; Recognize/Auth pairs confirm per-number control. Anderson, et al. Expires 21 January 2027 [Page 34] Internet-Draft CIDVV July 2026 All other requirements, including token computation as defined in Section Token Computation Algorithm (Section 2.5.3), per-vet failure handling, and state isolation as described in Section State Storage and Multi-Tenant Isolation (Section 3.3), remain unchanged. *Rationale*: This balances efficiency for bulk vetting (e.g., enterprise portfolios or service-provider batch validation) with strong per-number security properties and operational flexibility. 4.3.4.2. Vetting Failure Cases A vetting attempt may fail for the following reasons: * Bob does not have a participating CIDVV platform; Alice's platform may not receive the expected SIP *603 Decline* response to the Wake Call or the expected SIP *486 Busy Here* response to the Recognize Call, and Bob will not initiate a valid Auth Call back to Alice. * The shared secret, Alice's vetting Caller-ID, or Validity Window does not match; the three-call sequence will not produce the expected SIP 603 + SIP 486 + SIP 486 response pattern. * Network or policy restrictions prevent one or more calls from reaching the remote CIDVV platform. In all such cases, the vetting attempt MUST be treated as unsuccessful. This three-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. 5. Deployment Considerations 5.1. Behavior of Non-CIDVV Systems Systems that do not implement CIDVV are not expected to recognize the CIDVV signaling prefixes. Such systems will typically process these calls as ordinary calls and may return a wide range of responses. CIDVV implementations MUST treat any response that does not match the expected protocol behavior as indicating a non-participating system. 5.2. Handling of CIDVV Signaling Calls Networks and SBCs that recognize CIDVV signaling SHOULD prevent calls with Calling Party Numbers beginning with "100", "101", "+100", or "+101" from being presented to ordinary end users. Anderson, et al. Expires 21 January 2027 [Page 35] Internet-Draft CIDVV July 2026 When a responsible CIDVV platform is available, such calls SHOULD be routed to that platform for protocol handling. Intermediate networks SHOULD NOT generate successful CIDVV responses on behalf of a CIDVV platform unless explicitly configured to do so by the responsible administrative domain. CIDVV signaling calls SHOULD result in a non-success response, commonly SIP *486 Busy Here* or SIP *603 Decline*, and MUST NOT establish media. Call analytics, labeling, and fraud detection systems SHOULD recognize these prefixes and treat the calls as protocol signaling rather than ordinary subscriber traffic. 5.3. Carrier Incentives and SBC Policies CIDVV signaling calls are short-lived and do not require media exchange. They represent a small incremental signaling load compared with the network cost of fraudulent, spoofed, and nuisance calling. Carriers and service providers benefit when call participants can produce stronger evidence of Caller-ID control. Such signals can support fraud analytics, traceback, branded-calling programs, customer reputation systems, and local call-handling policy without requiring intermediate carriers to make a final identity determination for every call. Within the responsible administrative domain for a destination number, an SBC, proxy, or other CIDVV-aware network element SHOULD recognize calls where the Calling Party Number begins with +100, +101, 100, or 101 and route such calls to the appropriate CIDVV platform when one is available. If no responsible CIDVV platform is available, the call SHOULD NOT be presented to an ordinary end user. Intermediate networks SHOULD NOT block, rewrite, or specially rate- limit CIDVV signaling calls solely because the Calling Party Number contains a CIDVV prefix. Intermediate networks SHOULD NOT synthesize responses that would be interpreted as successful CIDVV behavior unless explicitly configured to do so by the responsible administrative domain. Anderson, et al. Expires 21 January 2027 [Page 36] Internet-Draft CIDVV July 2026 CIDVV signaling calls MUST NOT establish media. If a CIDVV signaling call would otherwise result in media establishment, the responsible network element SHOULD terminate the attempt with a non-success response in a way that does not create a false-positive CIDVV verification result. 5.4. Signaling Load and Operational Telemetry CIDVV introduces additional signaling traffic, but verification calls are short signaling-only exchanges and are not intended to establish media. This makes the verification load materially different from completing and carrying media for fraudulent, spoofed, or nuisance calls. In many deployments, rejecting or classifying unwanted calls at the signaling layer is preferable to allowing those calls to progress far enough to consume media resources, alert users, enter contact-center queues, or trigger downstream fraud-handling workflows. CIDVV gives terminating platforms an additional real-time signal that can be used before applying local call-handling policy. CIDVV verification traffic can also provide operational telemetry to the party responsible for an Asserted Caller-ID. If a telephone number is widely spoofed, verification attempts for that number are routed toward the responsible platform. This allows the responsible enterprise, service provider, or delegated CIDVV operator to observe attempted misuse of the number and identify patterns that may otherwise be difficult to see from ordinary inbound or outbound call records alone. CIDVV telemetry is not, by itself, a complete traceback mechanism and does not necessarily identify every provider in the original call path. However, it can provide high-quality traceback leads, including the Asserted Caller-ID being misused, the called-number payload associated with the verification attempt, timestamps, response outcomes, and recurring misuse patterns. Where permitted by law and applicable industry procedures, this telemetry can be used to support traceback requests, regulatory referrals, fraud investigations, customer notifications, and mitigation actions. Deployments that store or process CIDVV telemetry need to treat it as call signaling data and apply appropriate privacy, security, retention, and access-control policies. Operators should minimize retained data, limit use to operational, security, fraud-prevention, compliance, and debugging purposes, and avoid retaining CIDVV telemetry longer than necessary for those purposes. Anderson, et al. Expires 21 January 2027 [Page 37] Internet-Draft CIDVV July 2026 CIDVV-aware SBCs and CIDVV platforms still need appropriate protections against excessive signaling volume. Deployments SHOULD apply rate limits, source filtering, anomaly detection, concurrency limits, and capacity planning appropriate to their traffic profile. Because CIDVV is incrementally deployable and does not require a coordinated flag day, participating networks can introduce these controls as deployment grows. 5.5. Response Variability Implementations SHOULD interpret responses based on behavioral class (e.g., Busy-class behavior such as SIP *486 Busy Here* versus Rejection-class behavior such as SIP *603 Decline*) rather than relying on exact numeric values. Intermediate networks may translate or modify response codes, so behavioral class is the preferred signal. 5.6. Short-Term State Management CIDVV relies on short-lived state for the (Calling Number, Called Number) tuple, valid only for the Validity Window. Implementations MUST expire this state automatically after the Validity Window. State used for CIDVV verification MUST be scoped so that unrelated calls, customers, tenants, or administrative domains cannot satisfy each other's verification requests. 5.7. International and Cross-Border Operation International calls often experience higher Post-Dial Delay. Vouching call timeouts SHOULD be adaptive: 3-6 seconds is appropriate for domestic calls, while 8-20 seconds or more may be needed for international destinations based on observed PDD. Implementations SHOULD choose verification-call timing and retry behavior based on observed network conditions, especially on international routes. 6. Operational Considerations 6.1. Protocol Operation - Vouching If a vouching call results in a provisional response (e.g., 180 Ringing) or a successful response (200 OK), the platform that initiated the verification call SHOULD immediately cancel the call and treat the remote system as not implementing CIDVV. Anderson, et al. Expires 21 January 2027 [Page 38] Internet-Draft CIDVV July 2026 6.2. Failure and Restart Behavior CIDVV platforms rely on short-lived state. Upon restart or loss of state, implementations SHOULD continue accepting new call deposits, but MUST treat verification requests as unsuccessful until fresh matching state has been deposited. Implementations SHOULD fail closed rather than risk false-positive validation. When verification cannot be performed, implementations SHOULD return a non-success response, such as a 4xx, 5xx, or 6xx response. SIP *603 Decline* is commonly used for this purpose. 6.3. Number Normalization All telephone numbers used in CIDVV operations (for caching, token generation, comparison, etc.) MUST be normalized to a plain digit string in E.164 format *without any leading "+" sign*. CIDVV encodes signaling information in the Calling Party Number. Because some PSTN and ISDN signaling environments limit the Calling Party Number to 15 digits, CIDVV values that would exceed this limit are truncated as specified below. 1. Remove any leading "+" or other punctuation characters (parentheses, dashes, spaces, etc.). 2. Use the full E.164 representation: country code followed by the national significant number. 3. No padding is performed. If truncation is required to stay within the 15-digit limit for the Calling Party Number field, always remove leading digits, preserving the rightmost digits. The leading + sign may be present in SIP signaling or user-facing displays. It MUST be stripped before any CIDVV processing, tuple storage, comparison, or token computation. 6.4. Prefix Preservation Because CIDVV signaling is carried entirely in the *Calling Party Number* (using the +100 and +101 prefixes), it is critical that these prefixes survive network traversal. SIP intermediaries, SBCs, and PSTN gateways *SHOULD* preserve the full Calling Party Number, including the leading 100 or 101 prefix, when forwarding CIDVV signaling calls across trusted interfaces. Anderson, et al. Expires 21 January 2027 [Page 39] Internet-Draft CIDVV July 2026 If a network element cannot preserve the prefix, it SHOULD respond with a non-success response, such as SIP *603 Decline*, rather than forwarding a modified version that would break the protocol. 6.5. Interaction with Call Analytics and Fraud Detection CIDVV signaling calls use Calling Party Number values that may appear anomalous to call analytics, labeling, and fraud detection systems. 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. 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. Failure to recognize CIDVV signaling may result in increased false positives or suppression of verification attempts. 6.6. Edge Cases and Special Handling 6.6.1. Multiple Simultaneous Calls from the Same Caller-ID (Fan-Out) In some scenarios, multiple calls may legitimately originate from the same Asserted Caller-ID to the same called number within a short period of time (e.g., an office full of people calling a radio contest to be the "100th caller", a call center, or a political phone bank). In such cases, the originating CIDVV platform *MAY* switch to "multi- call" mode for that (Asserted Caller-ID, Called Number) tuple: * Instead of enforcing strict one-to-one correlation, the platform treats the tuple as active for the Validity Window. * Each new outbound call for that tuple restarts or extends the expiration timer. * The platform keeps the tuple active for the Validity Window, allowing multiple parallel or closely spaced calls to be vouched successfully. This "multi-call" mode is an implementation-specific optimization. Platforms that do not support it MAY reject, rate-limit, or treat as indeterminate excessive concurrent calls from the same number. Anderson, et al. Expires 21 January 2027 [Page 40] Internet-Draft CIDVV July 2026 6.6.2. Forwarded, Translated, and Mapped Numbers CIDVV operations depend on the number that the calling party attempted to reach. In some deployments, that number is not the same number on which the CIDVV platform ultimately receives the call. Examples include toll-free translation, DID forwarding, call forwarding, burner numbers, and other number-mapping services. In these cases, the CIDVV platform receiving the call needs reliable knowledge of the original called number, or a bounded configured set of possible original called numbers, in order to perform CIDVV successfully. 6.6.2.1. Vouching Mapped Numbers If Alice calls 18005550199 and the call is delivered to Bob's CIDVV platform on 19495550199, Alice's CIDVV platform will have cached the tuple: (Alice's Asserted Caller-ID, 18005550199) In that case, Bob's CIDVV platform needs to perform the vouching procedure using 18005550199 as the called-number value encoded in the Phase 1 and Phase 2 verification Calling Party Numbers. A vouching attempt using 19495550199 may fail because Alice's CIDVV platform has no matching cached state for 19495550199. If Bob's CIDVV platform has reliable knowledge of the original called number, it SHOULD use that number for vouching. If Bob's platform has a small configured set of possible original called numbers that may have delivered the call, it MAY attempt vouching against multiple candidate called numbers, subject to local rate limits and timeout policy. If the original called number is not known, and the candidate set is not bounded or reliable, Bob's CIDVV platform SHOULD treat the vouching result as unavailable or indeterminate rather than attempting to vouch using an unrelated receiving number. Local policy may then allow, label, bypass, route differently, reject, or otherwise handle the original call. Anderson, et al. Expires 21 January 2027 [Page 41] Internet-Draft CIDVV July 2026 6.6.2.2. Vetting Mapped Numbers Mapped or translated numbers can also affect vetting because the number Alice attempts to vet may differ from the number on which Bob's CIDVV platform receives the Wake Call. For example, Alice may attempt to vet Bob's toll-free number 18005550199, but the Wake Call may be translated and delivered to Bob's CIDVV platform on DID 19495550199. Vetting tokens are computed using the number being vetted, not necessarily the number on which the Wake Call is ultimately received. If Bob's CIDVV platform has reliable knowledge of the original called number 18005550199, it SHOULD compute the Recognize Token and Auth Token using 18005550199 as the called-number input. If Bob's CIDVV platform receives the Wake Call on 19495550199 and has a bounded, configured mapping from 19495550199 to one or more possible public numbers, it MAY compute and temporarily cache candidate Recognize Tokens and Auth Tokens for those mapped numbers. When Alice sends the Recognize Call, Bob's CIDVV platform matches the received token against the cached candidate Recognize Tokens. The matched candidate identifies which called number Alice is attempting to vet. Bob then uses the corresponding Auth Token for that same called number when placing the Auth Call back to Alice. If no candidate Recognize Token matches, the vetting attempt MUST fail. Candidate-token generation for mapped numbers SHOULD be limited to a small, configured, authoritative set of mappings. Implementations SHOULD NOT generate tokens for an unbounded set of possible forwarded, translated, or indirectly mapped numbers. 6.6.3. Call Forwarding / Diversion When the called party (Bob) has forwarded the call to a different destination, the terminating CIDVV platform at the forwarded destination may be the platform that performs the vouching procedure. In this case, the terminating CIDVV platform SHOULD use the original called number (Bob's number), when available from diversion or redirection information (e.g., SIP Diversion header or ISDN Redirecting Number field), as the called-number value encoded in the Calling Party Number of the return vouch calls. Anderson, et al. Expires 21 January 2027 [Page 42] Internet-Draft CIDVV July 2026 The return vouch calls are still directed to Alice's Asserted Caller- ID. However, their Calling Party Numbers encode Bob's original called number, for example: * Phase 1: +100 followed by Bob's number. * Phase 2: +101 followed by Bob's number. Alice's CIDVV platform can then correlate the verification calls with the cached state for Alice's original call to Bob. The terminating CIDVV platform is responsible for performing the vouch on behalf of the forwarded call destination. 7. Security Considerations CIDVV verification is probabilistic and based on reachability rather than cryptographic identity. It is intended to complement, not replace, mechanisms such as STIR/SHAKEN. *Important Limitation* CIDVV specifically addresses Caller-ID spoofing and impersonation. It does *not* prevent all forms of telephone fraud. Callers who use numbers they legitimately control can still obtain successful vouches, even if the calls themselves are fraudulent, abusive, or unwanted. Similarly, a malicious or compromised CIDVV platform, carrier, or service provider could incorrectly vouch for calls using numbers under its control. However, this does not allow that platform to vouch for arbitrary third-party numbers unless it can also receive verification calls for those numbers. The scope of the failure is therefore limited to the numbers and routing authority controlled by that platform or provider. These cases are outside the scope of the spoofing protection CIDVV provides. CIDVV's security properties derive primarily from the difficulty a spoofing caller faces in receiving calls at the Asserted Caller-ID, which is the number being vouched. CIDVV validates reachability within a short Validity Window rather than providing strict per-call correlation. As a result, a successful vouch indicates that at least one matching call attempt occurred within the Validity Window, not necessarily that a specific verification call maps one-to-one to a specific original call leg. Anderson, et al. Expires 21 January 2027 [Page 43] Internet-Draft CIDVV July 2026 The use of distinct response patterns across the two verification calls -- Phase 1 with the "100" prefix expecting a Busy-class response, and Phase 2 with the "101" prefix expecting a Rejection- class response -- increases resistance to false-positive validation caused by common network behaviors. 7.1. Trust Model CIDVV assumes that: * The PSTN routes calls for a telephone number to the responsible service provider, administrative domain, or platform serving that number. * A CIDVV platform acting for the Asserted Caller-ID can receive verification calls directed to that Caller-ID and route them to the appropriate CIDVV processing function. * A CIDVV platform performing vouching for the called party can originate short return signaling calls toward the Asserted Caller- ID. * Intermediate networks may modify signaling but will generally preserve sufficient information to allow correlation of requests and responses. * CIDVV verification traffic related to attempted use of a telephone number as an Asserted Caller-ID is routed toward the party responsible for that number. CIDVV does not assume that Caller-ID values are trustworthy; instead, it verifies control through network reachability. 7.2. Replay and Ride-Along Attacks CIDVV relies on short-lived state to correlate signaling exchanges. This significantly limits the window for replay and ride-along attacks. *Replay Attacks* A party that observes a successful verification exchange cannot effectively replay it after the cached state expires. Implementations *MUST* expire cached state quickly. A recommended default is *10 seconds*, although longer values (e.g., 15-30 seconds) *MAY* be used for international or high-latency routes. Anderson, et al. Expires 21 January 2027 [Page 44] Internet-Draft CIDVV July 2026 Implementations *MUST* reject verification attempts that do not match recent, valid cached state. *Ride-Along Attacks* A ride-along attack is limited to the same correlation tuple used for vouching: the Asserted Caller-ID, the called number, and the Validity Window. A successful vouch for one called number does not allow a caller to vouch calls to other destinations, and a successful vouch for one Asserted Caller-ID value does not apply to other Asserted Caller-ID values. A spoofing caller might attempt to place an additional call using the same Asserted Caller-ID to the same called number while matching cached state is still valid. Because the originating CIDVV platform controls how long cached state remains valid, implementers have flexibility in mitigation: * An implementation *MAY* delete or expire the cached state immediately after successfully processing the Phase 1 ("100") verification call and responding with a Busy-class response. * An implementation *MAY* keep the cached state active for the Validity Window to support legitimate parallel or closely spaced calls from the same Asserted Caller-ID to the same called number. The choice of when to expire or delete state is left to the implementer, as it involves a trade-off between reducing ride-along opportunities and supporting legitimate simultaneous-call or fan-out behavior. 7.3. Spoofing Resistance CIDVV improves resistance to spoofing by requiring the party asserting a Caller-ID to successfully receive and respond to a return call routed via the PSTN. If a caller attempts to impersonate Alice's Caller-ID without being able to receive calls for Alice's number, the verification call will normally be routed to the party responsible for Alice's number rather than to the impersonating caller. As a result, the impersonating caller cannot complete the vouching process under normal routing conditions. Anderson, et al. Expires 21 January 2027 [Page 45] Internet-Draft CIDVV July 2026 7.4. Denial of Service CIDVV introduces additional signaling traffic, and deployments need to account for the possibility of excessive or malicious verification attempts. Because CIDVV vouching traffic is related to ordinary call traffic, high call volumes may legitimately produce high verification volumes. CIDVV can also expose useful telemetry about telephone-number usage. For example, if a widely spoofed enterprise number is asserted on many calls, CIDVV verification attempts may cause the responsible enterprise or service provider to receive a large volume of return verification calls. This traffic can help identify spoofing activity, but it can also create operational load on the CIDVV platform and serving network. Denial-of-service protection is therefore a deployment responsibility shared by CIDVV platforms, SBCs, proxies, gateways, and other responsible network elements. Deployments SHOULD apply appropriate ingress controls at the SBC, proxy, or other network edge, including rate limits, source filtering, anomaly detection, and protection against repeated invalid or abusive signaling patterns. Such controls SHOULD be designed so that high-volume legitimate enterprise traffic and high-volume spoofing telemetry can be observed without overwhelming the CIDVV platform. CIDVV platforms MUST bound resource usage for temporary state. For example, implementations MUST limit the number of concurrent cache entries, expire old entries automatically, and avoid retaining state beyond the Validity Window except where explicitly required by local policy. CIDVV platforms SHOULD fail closed under resource exhaustion. If a platform cannot safely allocate state or process a verification request, it SHOULD treat the verification as unsuccessful or indeterminate rather than returning a response that could create a false-positive vouch. Deployments SHOULD monitor CIDVV signaling volume and error patterns, especially repeated unsuccessful attempts, unexpected response patterns, traffic inconsistent with normal call volume, or sudden increases in verification traffic for particular Asserted Caller-ID values. Anderson, et al. Expires 21 January 2027 [Page 46] Internet-Draft CIDVV July 2026 7.5. Amplification and Reflection Like other dialback mechanisms, CIDVV creates reflection risk because a call using a spoofed Asserted Caller-ID can cause verification traffic to be directed toward the party responsible for that number. CIDVV does not eliminate this risk. Instead, it is designed to keep each verification event bounded: vouching normally generates only two short signaling-only verification calls, those calls are expected to terminate with non-success responses, and they MUST NOT establish media. Deployments that initiate CIDVV verification calls SHOULD limit their own contribution to reflection traffic through local policy, including rate limits, concurrency limits, retry limits, suppression of repeated failed attempts, and bounded candidate sets for mapped or forwarded numbers. These controls reduce the amount of verification traffic generated by any single terminating deployment, but they do not by themselves protect a number owner whose Caller-ID is being spoofed across many independent terminating networks. The party responsible for an Asserted Caller-ID therefore also needs ingress protections at its SBC, proxy, or CIDVV platform. Such protections can include recognition of CIDVV prefixes, routing CIDVV signaling calls away from ordinary users, rate limiting, source filtering, anomaly detection, capacity planning, and summarization or sampling of telemetry during high-volume spoofing events. Incremental deployment also affects this risk model. CIDVV does not require a coordinated flag day, so verification traffic is expected to grow gradually as additional terminating platforms deploy the protocol. Enterprises and service providers whose numbers are frequently spoofed may begin seeing CIDVV verification attempts before they fully participate in CIDVV themselves. This creates an incentive to recognize CIDVV prefixes, route such traffic to an appropriate platform, apply ingress controls, and use the resulting telemetry for spoofing detection and mitigation. CIDVV verification traffic can provide useful telemetry about attempted misuse of a number, but deployments need to treat that telemetry path as an operational interface that may receive abusive or high-volume traffic. These mitigations do not remove all reflection risk, but they are intended to keep CIDVV signaling bounded, non-media-bearing, observable, and manageable during incremental deployment. Anderson, et al. Expires 21 January 2027 [Page 47] Internet-Draft CIDVV July 2026 7.6. Response Code Manipulation CIDVV does not require specific SIP response codes to be preserved end-to-end, but it does require that distinct response behaviors (e.g., Busy-class vs. Rejection-class behavior) remain distinguishable. Implementations MUST interpret responses based on behavioral class (e.g., Busy-class vs. Rejection-class) rather than exact numeric values. Intermediate networks and gateways SHOULD NOT translate, synthesize, or normalize responses in a way that causes an unsuccessful CIDVV response to be interpreted as successful CIDVV behavior. 7.7. Data Privacy CIDVV uses telephone numbers and related call metadata as part of normal signaling behavior. CIDVV may also create operational telemetry about attempted use of telephone numbers as Asserted Caller-ID values, including successful and unsuccessful verification attempts. Deployments SHOULD handle CIDVV signaling records, verification logs, and related telemetry according to their normal privacy, security, retention, and access-control policies for call signaling data. In jurisdictions with data-protection requirements, CIDVV telemetry may constitute personal data or communications metadata. Deployments are expected to process such telemetry under an appropriate legal basis and with suitable purpose limitation, minimization, retention, access-control, and security safeguards. Implementations SHOULD minimize retention of CIDVV telemetry where practical. Temporary state used for CIDVV verification MUST be short lived and automatically expired. Where operationally practical, access to CIDVV logs and telemetry SHOULD be limited to systems and personnel responsible for operations, security, fraud prevention, debugging, or compliance. 7.8. Token and Shared-Secret Security (Vetting) The security of the vetting mechanism depends on the shared secret and the derived Recognize and Auth Tokens. Tokens MUST be computed as specified in Section Token Computation Algorithm (Section 2.5.3). Anderson, et al. Expires 21 January 2027 [Page 48] Internet-Draft CIDVV July 2026 Shared secrets used for vetting MAY be long-lived configuration values. For example, a vetting agent and a number owner might retain the same shared secret in order to perform periodic or recurring vetting of the same customer numbers. Implementations MUST protect shared secrets from disclosure. If a shared secret is disclosed, a third party may be able to complete vetting challenges for the vetting relationships and numbers covered by that secret. Disclosure of a vetting shared secret does not, by itself, allow the third party to successfully vouch for calls, because vouching also requires reachability and valid call state for the Asserted Caller-ID. Recognize and Auth Tokens MUST be valid only within the Validity Window and MUST be automatically expired. Implementations SHOULD use sufficiently long and random shared secrets. Deployments SHOULD scope shared secrets to the appropriate customer, tenant, number owner, or vetting relationship, and SHOULD support rotation or revocation if a secret is suspected to be disclosed. 7.9. Failure Modes CIDVV implementations MUST fail closed. If verification cannot be completed due to network errors, state loss, synchronization delay, resource exhaustion, or unexpected responses, the result MUST be treated as unverified or indeterminate rather than successful. CIDVV platforms commonly rely on short-lived state with automatic expiration. After a restart or loss of temporary state, the platform MAY continue accepting new call notifications, but it MUST NOT successfully verify calls until fresh matching state has been deposited. During this recovery interval, legitimate calls may fail to receive a successful vouch, but calls without matching state will not be falsely vouched. Distributed CIDVV deployments may include multiple ingress points, geographically diverse SBCs, or replicated state stores. If a verification call reaches a CIDVV processing node before the relevant call state has been replicated to that node, the verification MUST fail closed. Anderson, et al. Expires 21 January 2027 [Page 49] Internet-Draft CIDVV July 2026 Deployments that use distributed state SHOULD ensure that call- deposit state is available to all CIDVV nodes that may receive subsequent verification calls within the Validity Window. Implementations MAY delay advancing the original call briefly, use synchronous replication, use sticky routing, or apply other local mechanisms to reduce the chance that a valid verification call arrives before matching state is available. 7.10. Interoperability Risks CIDVV operates across heterogeneous networks, including SIP and SS7/ TDM environments. Intermediate systems may modify Calling Party Number values, truncate digits, alter response codes, or otherwise change signaling behavior. These behaviors may cause verification to fail. Implementations MUST treat ambiguous, altered, missing, or inconsistent signaling as unsuccessful or indeterminate rather than allowing false-positive validation. Deployments SHOULD test CIDVV behavior across the specific carriers, gateways, SBCs, and interworking paths used in their environment, especially where Calling Party Number preservation, digit truncation, or response-class translation may occur. 7.11. Residual Risk CIDVV improves resistance to Caller-ID spoofing but does not provide absolute identity assurance. It reduces the effectiveness of spoofing by testing reachability and response behavior for the Asserted Caller-ID within a short Validity Window. CIDVV does not prove the intent, legitimacy, or trustworthiness of the caller. A caller using a number it legitimately controls may still place fraudulent, abusive, or unwanted calls and receive successful vouches for that number. CIDVV should therefore be treated as one verification signal among multiple inputs to call-handling, fraud-prevention, analytics, reputation, or policy systems. 8. IANA Considerations This document has no IANA actions. 9. Informative References Anderson, et al. Expires 21 January 2027 [Page 50] Internet-Draft CIDVV July 2026 [I-D.hao-civ] Hao, F., Thomas, B., Smith, S., Azad, M. A., and S. Wang, "Caller ID Verification In Heterogeneous Telecommunication Networks", Work in Progress, Internet-Draft, draft-hao- civ-03, 17 June 2026, . [I-D.rosenberg-stir-callback] Rosenberg, J. and C. F. Jennings, "Bootstrapping STIR Deployments with Self-Signed Certs and Callbacks", Work in Progress, Internet-Draft, draft-rosenberg-stir-callback- 00, 1 March 2018, . [RFC8816] Rescorla, E. and J. Peterson, "Secure Telephone Identity Revisited (STIR) Out-of-Band Architecture and Use Cases", RFC 8816, DOI 10.17487/RFC8816, February 2021, . [RFC9888] Peterson, J., "Out-of-Band Secure Telephone Identity Revisited (STIR) for Service Providers", RFC 9888, DOI 10.17487/RFC9888, June 2026, . Appendix A. Acknowledgments The authors thank contributors to telephony security research and PSTN infrastructure development. Appendix B. Appendix: Changes from Previous Version RFC Editor: Please remove this section before publication as an RFC. B.1. Changes since draft-anderson-askew-cidvv-00 (May 2026) * Minor editorial improvements and clarifications throughout the document. * Made both Vouching calls required and renamed them as "Phase 1" and "Phase 2" for clarity. * Updated termination handling so that Busy-class and Rejection- class responses, with canonical SIP *486 Busy Here* and SIP *603 Decline* behavior, are used for CIDVV verification signaling. * Added a third call to the Vetting process to ensure Alice and Bob each trust that the other possesses the shared secret. Anderson, et al. Expires 21 January 2027 [Page 51] Internet-Draft CIDVV July 2026 * Added optional Multi-Number Vetting optimization. * Added Related Work, Signaling Load, Operational Telemetry, Amplication, and Reflection sections. * Added this "Changes from Previous Version" appendix to support long-term document maintenance across multiple revisions. * Improved Abstract, Introduction, and call flow. Authors' Addresses Roger Anderson Jolly Roger Telephone Company United States of America Email: roger@jollyrogertelephone.com Steven Berkson Jolly Roger Telephone Company United States of America Email: steveb@jollyrogertelephone.com Phillip Askew United States of America Email: phillip.askew@theaskewcrew.com Anderson, et al. Expires 21 January 2027 [Page 52]