A2A vs IVR: phone menus for callers, tasks for agents
An IVR routes phone callers through prompts with keypad or speech input. A2A lets agents send a business structured tasks. How they differ and coexist.
An IVR (interactive voice response) system is for letting people who phone a business serve themselves, or reach the right queue, through recorded prompts, keypad presses and speech recognition. A2A (Agent2Agent) is for letting a software agent send a business’s agent a structured task over HTTPS and follow it to an outcome.
The two meet because callers are changing. AI agents now phone businesses on people’s behalf, and when they do, they have to navigate menus built for human ears. A2A gives those agents a route that skips the audio entirely.
Status as of September 26, 2026. IVR is a category of telephony application, not one protocol. The main open standards behind it are W3C’s VoiceXML 2.0 (Recommendation, March 16, 2004) and VoiceXML 2.1 (June 19, 2007), the Speech Recognition Grammar Specification 1.0 (March 16, 2004), and RFC 4733 for carrying keypad digits over IP networks (December 2006). Many IVRs today are built in vendor contact-center flow designers instead. A2A is a Linux Foundation project at protocol version 1.0; its latest release, v1.0.1, shipped on May 28, 2026.
What an IVR is for
An IVR answers the phone, plays prompts and collects input. VoiceXML describes the model most platforms follow: dialogs made of menus, which offer the caller a choice, and forms, which collect values such as an account number. Input arrives as DTMF (touch-tone) digits or as speech matched against a grammar. The IVR can play recorded or synthesized audio, record messages and transfer the call.
Vendor platforms wrap the same ideas in visual flow builders. Amazon Connect’s “Get customer input” block, for example, captures a caller’s response as DTMF or as speech handled by Amazon Lex, then branches the flow on the result.
A typical billing line:
- “For billing, press 2.” The caller presses 2.
- “Enter your account number, then press pound.” The caller keys in digits.
- “Say or enter the last four digits of the account holder’s phone number.” Verification.
- The IVR plays the balance or transfers the call to a person.
Every step exists to turn a person’s intent into a few structured values while the person listens. The menu itself is audio. Its structure lives inside the platform and is never published to callers.
What A2A is for
A2A replaces the listening with a contract. A business publishes an Agent Card, usually at /.well-known/agent-card.json, listing its skills, endpoints and the authentication it requires. A client agent sends a message with text and data parts, and the business’s agent creates a task that can complete, fail, be refused, or pause for more input or for authorization. The result comes back as an artifact.
The IVR menu above maps naturally onto skills. Illustrative excerpt of an Agent Card:
{
"skills": [
{
"id": "billing-balance",
"name": "Billing balance",
"description": "Returns the current balance and due date for an account the caller is authorized to access.",
"tags": ["billing", "balance"],
"examples": ["What is the balance on account 4417-2290?"],
"inputModes": ["text/plain", "application/json"],
"outputModes": ["text/plain", "application/json"]
},
{
"id": "payment-arrangement",
"name": "Payment arrangement",
"description": "Requests a payment plan for an overdue balance. May ask follow-up questions or hand the request to staff.",
"tags": ["billing", "payment plan"],
"examples": ["Set up a three-month plan for the overdue balance on account 4417-2290."],
"inputModes": ["text/plain", "application/json"],
"outputModes": ["text/plain", "application/json"]
}
]
}
The menu choice becomes a skill, the keyed-in digits become a data part, and the verification step becomes the authentication scheme in the card plus whatever authorization check the business runs, possibly using TASK_STATE_AUTH_REQUIRED.
Side by side
| IVR | A2A | |
|---|---|---|
| Purpose | Let phone callers serve themselves or reach the right queue | Let an agent send a business’s agent a structured task and track it |
| Layer | Voice application on the telephone network | Application protocol over HTTPS or gRPC |
| Who talks to whom | A caller (a person, or a voice agent acting like one) and the business’s phone system | A client agent and the business’s remote agent |
| Transport | Audio over the phone network or SIP and RTP; keypad input as DTMF tones or RFC 4733 events | JSON-RPC 2.0, gRPC or HTTP+JSON; streaming and webhook push |
| Discovery | A phone number printed on bills and websites; the menu is heard, not published | Agent Card at /.well-known/agent-card.json, registries or direct configuration |
| Auth | Caller ID, attested for the number on IP networks by STIR/SHAKEN, plus PINs or knowledge questions | Security schemes declared in the Agent Card: API key, HTTP auth, OAuth 2.0, OpenID Connect or mutual TLS |
| State | The call; it ends when either side hangs up | Tasks that outlive any connection; contextId groups related work |
| Governance and status | No single standard; W3C VoiceXML 2.1 (2007) and vendor flow languages | Linux Foundation project; version 1.0 (v1.0.1, May 28, 2026) |
When to use each
Keep the IVR for people. Customers keep calling, some depend on the phone, and the IVR is the front of the queue for human staff.
Offer A2A for callers that are software. When a customer’s agent wants a balance, a refund or an appointment, a structured task is faster to exchange and easier to verify than a phone call, and it leaves a record both sides can read. It also handles work that outlasts a call: the agent can register for push notifications and hear back when the task changes.
Using both
The IVR and the A2A agent should share one back end. The flows that look up balances or book appointments for the IVR can serve A2A skills too, so policies stay consistent across channels. Start with the handful of menu paths that carry most of your call volume, and publish them as skills.
Callers also have to find the A2A route. A2A discovery starts from a domain, while a person’s agent often starts from the phone number on a bill. A registry that maps phone numbers to agent endpoints closes that gap. Emissar is building one, called Resolve, and its status is In development. When two voice agents meet on a phone call covers the lookup-before-dialing pattern.
Common misconceptions
“A voice agent that can navigate IVRs solves the problem.” It completes the call, and every value still passes through speech synthesis, a phone codec and speech recognition. The business also learns nothing about which company’s agent is calling or for whom.
“Caller ID tells the business who is calling.” STIR/SHAKEN attestation lets a carrier vouch for the calling number. RFC 8588 defines full, partial and gateway levels of that attestation. None of them identifies the software placing the call or the person it represents.
“Touch-tone input makes an IVR machine-readable.” DTMF carries the digits a caller presses. The prompts that explain what each digit means are audio, and the menu’s structure stays inside the platform.
“Publishing an Agent Card means dropping the phone line.” The two entrances serve different callers, and adding one does not require retiring the other.
Questions
- Can an AI agent use an IVR today?
- Yes. A calling agent can listen to prompts, speak through text-to-speech and send keypad presses as DTMF tones or RTP telephone events, exactly as a phone does. It gets no machine-readable description of the menu, so it has to interpret the prompts as audio.
- Does A2A replace the IVR?
- No. People keep calling, and the IVR keeps serving them. A2A adds a separate entrance for software agents, usually backed by the same systems the IVR already uses.
Sources
- Voice Extensible Markup Language (VoiceXML) Version 2.0, W3C Recommendation, March 16, 2004 (accessed )
- Voice Extensible Markup Language (VoiceXML) 2.1, W3C Recommendation, June 19, 2007 (accessed )
- Speech Recognition Grammar Specification Version 1.0, W3C Recommendation, March 16, 2004 (accessed )
- RFC 4733: RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals (December 2006) (accessed )
- RFC 8588: PASSporT Extension for Signature-based Handling of Asserted information using toKENs (SHAKEN) (May 2019) (accessed )
- Combating Spoofed Robocalls with Caller ID Authentication (FCC) (accessed )
- Amazon Connect Administrator Guide: Get customer input flow block (accessed )
- A2A Protocol Specification (sections 3, 4.4, 7 and 8) (accessed )
- A2A protocol definition (a2a.proto): AgentSkill (accessed )
- Emissar Resolve (module page and status) (accessed )