Skip to content

Support prompt voice telephony bindings - #9804

Draft
JianW (v1212) wants to merge 4 commits into
Azure:mainfrom
v1212:users/wujia/prompt-voice-agent-telephony-bindings
Draft

Support prompt voice telephony bindings#9804
JianW (v1212) wants to merge 4 commits into
Azure:mainfrom
v1212:users/wujia/prompt-voice-agent-telephony-bindings

Conversation

@v1212

@v1212 JianW (v1212) commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds azure.yaml support for Foundry-side telephony bindings on prompt voice agents.
  • Keeps the user experience nearly unchanged: users still run azd ai agent init, azd provision, azd deploy, and azd down; no new command is introduced.
  • Limits telephony binding support to kind: prompt-voice; other agent types reject telephony configuration.

What changes for users

Users can optionally add phone-number bindings to an existing prompt voice agent service:

services:
  support-voice:
    host: azure.ai.agent
    kind: prompt-voice
    name: support-voice
    model:
      id: gpt-realtime
    telephony:
      bindings:
        - provider: acs
          identifier: "28:orgid:<resource-account-object-id>"
          connection: telephony-acs
        - provider: twilio
          identifier: "+14255550123"
          connection: telephony-twilio

Then they continue to use the normal lifecycle:

azd provision
azd deploy support-voice

Scope

  • This PR only creates Foundry-side telephony bindings after a prompt voice agent deploy succeeds.
  • It does not purchase phone numbers, create Teams/TPE resources, create Twilio numbers, bootstrap Event Grid auth apps, or automate cross-tenant/admin telephony setup.
  • Provider-side resources and project connections are prerequisites provided by the user/admin.
  • agent_version and arbitrary provider_config are intentionally not exposed because the current service contract does not support version-pinned bindings and unknown provider config fields are ignored.
  • This is a draft while the service team confirms the final telephony binding API contract, API version, and provider paths.

Validation

  • provider must be acs or twilio.
  • identifier and connection are required.
  • ACS identifiers support 28:orgid:<guid> for TPE or 4:+<E.164> for ACS-purchased numbers.
  • Twilio identifiers use +<E.164>.
  • telephony on non-prompt-voice services is rejected unless an explicit AGENT_DEFINITION_PATH override is routing the deploy to a different agent definition.

Implementation

  • Adds prompt voice telephony YAML models, schema, and inline azure.yaml round-trip support.
  • Adds telephony binding API models and agent-scoped create/get operations.
  • Runs binding creation after successful prompt voice deploy and agent version validation.
  • Existing bindings are treated as create-only: matching bindings are accepted; drift is reported as an error rather than silently ignored.
  • Adds tests for validation, round-trip, API request path/body, drift detection, and prompt-voice-only detection.

How to test

  1. Prepare or reuse a prompt voice azd project.
  2. Prepare provider-side telephony resources and a Foundry project connection (telephony-acs or telephony-twilio).
  3. Add telephony.bindings[] to the prompt voice service in azure.yaml.
  4. Run azd deploy <voice-service>.
  5. Verify the binding by calling the service telephony binding GET/list API or by placing an inbound test call through the configured provider.

Validation run

  • go test ./... -count=1
  • go build ./...
  • cspell lint 'extensions/**/*.go' 'extensions/**/*.md' --config ./.vscode/cspell.yaml --no-progress

Fixes #9803

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
22 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@github-actions github-actions Bot added the ext-agents azure.ai.agents extension label Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ext-agents azure.ai.agents extension

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support prompt voice agent telephony bindings in azure.yaml

2 participants