Evalgent
Back to Blog
Voice AI Testing

AI Voice Agent Recording Consent: Test It, Don't Prompt It

Deepesh Jayal
14 min read
AI Voice Agent Recording Consent: Test It, Don't Prompt It
On this page

Last verified November 5, 2026. This post is engineering guidance, not legal advice. We opened the sources linked below; where a primary text was blocked, the post says so.

Your team built a voice agent inside a product, and it answers calls for your customers. Somewhere sits a line that says "this call may be recorded." Most teams put it in the prompt. That is the weak point: the line is a request to a language model, and the recorder does not wait for the model.

This post is for the Head of AI, PM or engineer who owns that agent. It treats AI voice agent recording consent as call recording consent you can prove, and as voice agent compliance testing that runs on every release. It sits beside our complete guide to AI voice agent testing. You get the legal baseline we could verify, the paths where consent breaks, a copyable scenario list and a timestamp check.

Term: A consent gate is the part of the call flow that blocks recording, and any data capture, until the disclosure audio has finished playing and the caller has not objected.

Why a prompt line is not a control

A prompt is a suggestion. The model usually follows it, and "usually" is the problem. A miss lands on every customer that deploys your agent. Four mechanisms break the line.

1. Recorder and agent run on different clocks. In many stacks recording starts when the room or trunk connects, not when the agent speaks. Our post on call recording in LiveKit and Pipecat covers where stereo recording starts. If it starts at connect, the first seconds are captured before any sentence plays.

2. Barge-in cuts the sentence. Callers talk over greetings. If the disclosure is the third sentence of the greeting and the caller interrupts at second two, the transcript can still show the full text, because the text was generated. The caller heard half of it.

3. A prompt change moves the sentence. A teammate shortens the greeting to cut latency. The disclosure moves or disappears. No test notices, because nothing crashed.

4. Other paths skip the greeting. A transferred call, a callback and a voicemail reach a different entry point. The disclosure was written for the main inbound path.

This matches why voice agents fail in production: the demo path works, and failures live in paths and audio nobody replays.

Two call timelines: the safe call finishes its disclosure at 6 seconds before recording starts at 7; the failing call records from 0 seconds and loses the disclosure at 4.

What the law says, as far as we could verify

Read this section as a map, not a ruling. Laws change, courts read them differently, and obligations depend on where each caller sits. Have counsel confirm anything you rely on. Statements are as of November 5, 2026.

Federal baseline: one party is enough

Under 18 U.S.C. § 2511(2)(d), it is not unlawful for a person who is not acting under color of law to intercept a call where that person is a party, or where one party has given prior consent. The exception does not apply if the interception is for a criminal or tortious purpose. We read this on Cornell LII. Intentional interception otherwise carries a fine or up to five years in prison under § 2511(4)(a).

Your agent is a party to the call it answers, so this federal wiretap law layer is the permissive one. State law is where teams get hurt.

Some states require all-party consent, often called two-party consent. We could open the text for three. This list is an example, not complete.

StateProvisionWhat the text saysWhere we read it
CaliforniaPenal Code 632(a)Bars recording a confidential communication "without the consent of all parties." First-violation fine up to $2,500 per violation or up to one year in jail, or both.Justia copy of the code
CaliforniaPenal Code 632.7Covers calls involving cellular or cordless phones, again "without the consent of all of the parties."Justia copy of the code
FloridaStat. § 934.03(2)(d)Interception is lawful when "all of the parties to the communication have given prior consent."Justia copy of the statute
WashingtonRCW 9.73.030Requires consent of all participants. An announcement "in any reasonably effective manner" can supply it, and the announcement must itself be recorded.Justia copy of the statute

Two caveats. The California legislature site blocked our fetch, so we read California through Justia's copy. A law-firm summary from Reed Smith lists more all-party states, including Illinois, Maryland, Massachusetts and Pennsylvania, and calls Michigan unsettled. We read the primary text for Illinois (720 ILCS 5/14-2), Maryland (CJP 10-402(c)(3)) and Pennsylvania (18 Pa.C.S. 5704(4)); each requires all parties' consent. Massachusetts (c.272 s.99) is framed around secret recording: it defines interception as a recording made without prior authority of all parties.

California's § 632(c) hinges on circumstances that "reasonably indicate" a party wants privacy. That is a fact question, so do not bet the product on it. Disclose and gate on every call.

The Washington wrinkle

In Washington, a recorded conversation must include the recorded announcement. Many teams read all-party consent as "no recording before consent." The two ideas pull apart.

One option is to hold audio in a short buffer, play the disclosure, and commit the buffer, announcement included, only if the caller stays. If the caller objects, discard it. This is a design idea, not a compliance finding. Ask counsel.

AI disclosure phone calls: what we could verify

Three questions hide inside "do we have to say it's an AI."

The TCPA and AI voices. The FCC's declaratory ruling, FCC 24-17, was released February 8, 2024 per a Potomac Law review. The FCC's page for the ruling says the TCPA limits on "artificial or prerecorded voice" cover AI technologies that generate human voices, so such calls need the called party's prior express consent. That is consent to be called, not a rule that you announce "I am an AI." The ruling treats an AI voice as an artificial voice.

Identification on artificial-voice messages. 47 CFR § 64.1200(b)(1), read on Cornell LII, requires prerecorded messages to state the identity of the responsible business at the start. Whether and how it reaches your live conversational agent is a question for counsel.

State bot and AI laws. California's bot statute, Business and Professions Code § 17941, was summarized by a public-law copy as addressing bots that communicate "online" with intent to mislead about artificial identity, with a safe harbor if the bot discloses clearly and conspicuously. Its text is framed around online interaction for the purpose of incentivizing a sale or influencing an election vote, and we could not confirm it reaches phone calls. Utah Code § 13-75-103 (S.B. 226, 2025) requires a supplier using generative AI in a consumer transaction to disclose that the person is not talking to a human if the person asks in a clear and unambiguous request. A separate duty to disclose up front applies to people in regulated occupations when the interaction is high-risk. We read the enrolled bill; check its current status before relying on it.

Potomac Law also reports a July 2024 FCC proposal on AI-call disclosure. We could not confirm a final rule. As we read that proposal, it would cover outbound AI-generated calls only and exclude AI answering inbound calls.

The practical answer does not wait for the final reading. Say at the start that the caller is talking to an AI assistant and that the call is recorded. Then test that you said it.

Outbound adds opt-out rules

If your agent dials out, the right to stop calls matters too. FCC 26-67, released October 1, 2026, does not adopt a mandatory "revoke-all": a revocation made in response to an informational call can be treated as covering only that category of calls. It also lets callers designate an exclusive opt-out method (key-press or voice opt-out on a call, a "stop" text reply, or a designated website or number) if they disclose it clearly. It was published in the Federal Register on October 26, 2026 and takes effect November 25, 2026, per a Nixon Peabody alert and the notice. See our outbound voice agent testing plan, mortgage AI calls and real estate speed-to-lead.

A single greeting test tells you little. The disclosure must hold on every route into your system. Build the matrix before any scenario.

PathHow it breaksWhat to assert
Inbound, main numberBarge-in cuts the disclosure; recording starts at connectDisclosure audio ends before recording starts
Inbound, after-hours or overflowDifferent greeting template, disclosure missingSame disclosure text and order
Transfer to a humanRecording continues on the human leg; the human never hears the disclosureDisclosure repeated or consent carried across; recorder state logged
Callback or outboundAgent opens with the task, not the disclosureDisclosure within the first utterance after the person answers
Voicemail (detection guide)Agent reads a message with no disclosure, or records the machine's greetingA decided policy for recording messages left on machines, tested
DTMF or IVR front doorRecording starts in the IVR, before the agent existsRecorder start time compared to the first agent speech
Non-English callerDisclosure only in EnglishDisclosure in the caller's language

The transfer row deserves attention. A warm transfer is a topology change, as our guide to transfers in LiveKit and Pipecat shows: a new leg joins and the old one may leave. After a bridge, ask three questions. Is the recorder still running? Whose audio does it capture? Did the human get any signal that the caller already consented? Whether a second disclosure is required is a legal question. Whether recorder state is logged is an engineering one.

A consent gate flow. Disclosure plays first. A caller who stays continues to recording; a caller who objects gets a no-recording path, and silence is treated by a fixed rule.

Design the gate as a state machine

AI voice agent recording consent works best as states, not a sentence. Each transition emits a timestamped event.

1. CONNECTED. The call exists. Nothing is stored beyond a short buffer.

2. DISCLOSING. The disclosure audio plays. It should not be interruptible, if your stack supports marking an utterance that way.

3. AWAITING. The caller has heard it. Wait for a response or a fixed silence timeout.

4. CONSENTED. The caller stayed, agreed or continued. Recording commits and the agent proceeds.

5. DECLINED. The caller objected. Follow the refusal rule, below.

What happens on refusal. Pick the rule before launch: continue without recording, offer a human on an unrecorded line, or end the call politely. Each has costs. Continuing unrecorded leaves no evidence for disputes. Ending the call may fail a customer who needs help. Whatever you pick, prove that no audio is kept after "no" and that the agent does not ask again in a loop.

Silence and ambiguity. "Hmm," "I guess" and cross-talk are not clean consent. Decide what counts, log which rule fired, and test it. If speech-to-text hears "no" as "now," the gate opens by mistake. That is an accuracy failure like those in STT entity accuracy for voice agents, so run refusal scenarios with accents and noise.

Evidence: timestamps from the media layer

A transcript shows what the model generated. The proof is when the audio finished playing and when the recorder started, on one clock. This is your audit log. Log these events per call, with seconds from call start and a leg id:

EventSource it should come from
`recording_started`The recorder or SIP layer, not the agent
`disclosure_playout_started`The audio output, not the LLM
`disclosure_playout_ended`The audio output, with completed or interrupted flag
`caller_response`STT result plus the rule that classified it
`transfer_bridged`The telephony layer
`recording_stopped`The recorder

Then assert on order. Here is a simplified check. Event names follow the table above and are not any vendor's API.

def check_consent_order(events, max_gap_s=0.0):
    """events: list of dicts {kind, t, leg, completed?}; t is seconds from call start."""
    by = {}
    for e in events:
        by.setdefault(e["kind"], []).append(e)

    rec = min((e["t"] for e in by.get("recording_started", [])), default=None)
    ended = [e for e in by.get("disclosure_playout_ended", []) if e.get("completed")]
    if not ended:
        return False, "disclosure never completed"
    end_t = min(e["t"] for e in ended)
    if rec is not None and rec + max_gap_s < end_t:
        return False, f"recording started {end_t - rec:.1f}s before disclosure ended"
    return True, "ok"

The `completed` flag catches barge-in, because an interrupted playout is not a delivered disclosure. Run the check on production calls too, not only in tests.

Illustrative math, with assumed numbers: an agent takes 1,000 calls a day and a regression breaks the order on 0.4% of them. That is four calls a day, about 120 a month, recorded before consent. Catching a 0.4% failure with 95% confidence takes roughly 750 runs, because 1 − 0.996^750 is about 0.95. If 1,000 runs show zero failures, the "rule of three" puts the 95% upper bound near 0.3%. These are worked examples, not measurements.

Evalgent evaluates from the audio, not only the transcript, so a disclosure that appears in the text but was cut off in the audio can be judged with evidence. Its custom metrics run on every call, which fits "disclosure completed before recording" as a per-call metric.

A path coverage grid with five call paths as rows and five failure injections as columns, with each cell marked pass, fail or not yet tested.

Failure injection: break the gate on purpose

Happy-path calls prove little. Try to break the gate.

  • Talk over the disclosure at 1 second and at the last word. Assert a completed playout or a repeat.
  • Say no in several ways, including in Spanish. Assert recording stops or never commits.
  • Stay silent past the timeout. Assert your chosen rule.
  • Add noise and accent. Assert the same outcomes.
  • Kill the recorder mid-call. Assert the agent stops capturing sensitive data or escalates, depending on your policy.
  • Ship a prompt edit that shortens the greeting. The suite must fail if the disclosure moves.

A simulator that sets accent, pace, interruption level, response delay, background noise and language makes these repeatable. Evalgent's simulator reaches your agent over phone, SIP or WebRTC, and covers English, Spanish, French, German and Hindi/Hinglish, so the same refusal script can run across callers and languages.

1. List every path. Walk your telephony config and product flows. Include overflow, after-hours, callback, transfer, voicemail and IVR front doors. Put each in the matrix.

2. Pick one recording disclosure script. Keep it short. For example: "This is an automated AI assistant, and this call is recorded." Get counsel to approve it, then version it.

3. Move the check out of the prompt. Put the disclosure in a fixed utterance triggered by code, with recording gated on its completion.

4. Emit the six events. Add the event table's timestamps from the media layer. Use one clock for the call.

5. Write the scenarios. Use the YAML below as a start. One scenario per path and failure.

6. Run the order check. Fail the build if any scenario has recording before a completed disclosure.

7. Run it on every change. Prompt edits, model swaps, telephony changes and recorder updates all trigger the suite. Set pass rates with metric thresholds.

8. Audit production. Sample live calls with the same check. Our production monitoring guide covers scoring live calls.

Copyable scenario list, simplified:

- id: inbound_main_clean
  path: inbound_main
  caller: {accent: us_general, pace: normal, noise: none}
  expect: {disclosure_completed: true, recording_after_disclosure: true}

- id: inbound_bargein_early
  path: inbound_main
  caller: {interrupt_at_s: 1.0}
  expect: {disclosure_completed_or_repeated: true, recording_after_disclosure: true}

- id: inbound_refuses
  path: inbound_main
  caller: {says: "No, don't record me"}
  expect: {recording_committed: false, no_argument: true, refusal_rule_applied: true}

- id: transfer_to_human
  path: transfer_warm
  expect: {recorder_state_logged: true, consent_signal_passed: true}

- id: after_hours_overflow
  path: inbound_overflow
  expect: {same_disclosure_text: true, recording_after_disclosure: true}

- id: callback_outbound
  path: callback
  expect: {disclosure_in_first_utterance: true}

- id: voicemail_left
  path: outbound_voicemail
  expect: {message_policy_followed: true}

- id: spanish_caller
  path: inbound_main
  caller: {language: es}
  expect: {disclosure_language: es, recording_after_disclosure: true}

Retention, deletion and what a customer will ask

Customers will ask how long audio lives. We did not verify any state's retention rule from primary text, so we state none. Set retention with counsel and your contracts, then test the mechanism.

A deletion test has three steps. Create a call with a known phrase. Request deletion. Confirm the audio, transcript and derived records are gone. The risk is the forgotten copy: transcripts in an analytics tool, audio cached by a vendor, text in a log line. See PII leakage detection and the compliance audit for US buyers on where copies hide, and regulated voice agent policy test cases and collections testing for sector rules.

Go-live and production monitoring

Run the disclosure scenarios on each new customer's number, in their configuration. Our go-live checklist for every new customer's AI phone agent is the place to add them. A disclosure that passes on your demo line can fail on a customer's trunk with a different greeting template. Then keep watching: Evalgent's production call monitoring takes customers' recordings, transcribes them, maps them to scenarios and judges them, flagging policy failures and PII leakage with fix recommendations. Aim it at "disclosure, then recording."

Frequently asked questions

Often yes in practice. Federal law permits recording with one party's consent, and your agent is a party. But states such as California, Florida and Washington require all parties to consent, per the statute text we read. Callers can be anywhere, so most teams disclose and gate every call. Confirm with counsel.

One-party consent lets a person who is on the call record it. Two-party, or all-party, consent requires every participant to agree. For a voice agent, the practical difference is whether the caller's agreement must come first. Teams serving callers in many states usually follow the stricter rule everywhere.

Does an AI voice agent have to say it is an AI?

It depends on the call and the state. The FCC ruled that AI-generated voices count as artificial voices under the TCPA, which requires consent for covered calls. State laws, such as Utah's, add disclosure duties in some situations. We could not confirm one rule covering all calls. The safe design is to disclose at the start.

When should the recording disclosure play on an AI phone call?

Before recording is committed and before the agent collects anything sensitive. In practice, make it the first utterance after the call connects, play it to completion, and log when it ended. Washington's statute adds that the announcement itself must be recorded, so ask counsel how to handle the buffer.

What should an AI voice agent do if the caller refuses recording?

Follow a rule chosen in advance: continue without recording, offer a human on an unrecorded line, or end the call politely. Whichever you pick, test that no audio is retained after the refusal, that the agent does not push back, and that the choice is logged with a timestamp.

Is a transferred call still recorded after a handoff to a human?

Only if your recorder keeps running on the bridged leg, so check. A transfer adds a new participant and may change what the recorder captures. Log recorder state at the bridge, and ask counsel whether the human leg needs its own notice. Our transfer guide covers the telephony side.

How do you test that an AI voice agent played the recording disclosure?

Compare audio-layer events, not the transcript. Log when disclosure playout ended and whether it completed, then assert it precedes recording start. Inject interruptions, refusals and noise. Run the check on sampled production calls too.

How long should an AI voice agent keep call recordings?

We did not verify a single retention rule, and it varies by state, industry and contract. Set a period with counsel, write it into customer terms, and test that deletion removes audio, transcripts and derived records. Treat retention as a configurable, per-customer setting.

The bottom line

AI voice agent recording consent that lives only in the prompt is a hope, not a control. Make it a gated sequence with timestamps from the media layer, and test every path, refusal and interruption before the next prompt change ships.

Related Articles