Skip to content

Add a Telephony section to the README - #846

Open
maksym-t-didww wants to merge 1 commit into
elevenlabs:mainfrom
maksym-t-didww:readme-telephony
Open

maksym-t-didww wants to merge 1 commit into
elevenlabs:mainfrom
maksym-t-didww:readme-telephony

Conversation

@maksym-t-didww

@maksym-t-didww maksym-t-didww commented Aug 13, 2026 •

Copy link
Copy Markdown

The README documents TTS, voices, streaming, ElevenAgents and Speech Engine, but not telephony — grep -i "twilio\|exotel\|sip\|phone" README.md returns nothing, even though conversational_ai.phone_numbers and conversational_ai.sip_trunk are both in the SDK.

reference.md lists the models, but it does not convey the two things that actually cost time when connecting a carrier:

  • inbound_trunk_config and outbound_trunk_config correspond to the two call directions, and you generally want both.
  • allowed_addresses (ACL) and credentials (digest) are alternative authentication modes, not two fields you have to fill in.

What the section adds

It sits between ## ElevenAgents and ## Speech Engine and covers:

  • Importing a number over SIP trunking — phone_numbers.create with PhoneNumbersCreateRequestBody_SipTrunk, both trunk configs, with comments marking which direction each one governs, plus the accepted transport / media_encryption / enabled_codecs values.
  • Placing an outbound call — sip_trunk.outbound_call.
  • Listing configured numbers — phone_numbers.list(provider="sip_trunk").
  • A closing note that the same methods exist on AsyncElevenLabs.

Verification

Every claim was checked against the generated models offline — no API calls, so nothing here needs a key:

Claim in the section How it was checked
The imports as written executed verbatim
The request body as written constructed; provider resolves to sip_trunk
create(request=...) inspect.signature → ['request', 'request_options']
outbound_call(agent_id, agent_phone_number_id, to_number) inspect.signature
list(provider="sip_trunk") TelephonyProvider → twilio, sip_trunk, exotel
phone_number.phone_number_id field on CreatePhoneNumberResponseModel
call.success, .conversation_id, .sip_call_id fields on SipTrunkOutboundCallResponse
number.phone_number_id, .label, .supports_outbound fields on PhoneNumbersListResponseItem_SipTrunk
transport accepts auto/udp/tcp/tls literal args of the annotation
media_encryption accepts disabled/allowed/required literal args of the annotation
enabled_codecs=[...] constructed on the outbound config
"also available on AsyncElevenLabs" all three are coroutine functions there
ACL without credentials is valid inbound config constructed with allowed_addresses only

Notes

Happy to trim or restructure. One paragraph names carriers — Twilio, Telnyx, DIDWW and Vonage — purely to say that each documents its own hostnames, authentication mode and codecs; drop the names if you would rather the README not list providers.

Disclosure: I work at DIDWW, one of the carriers named there. The section is not about DIDWW and the SDK needs no DIDWW-specific code — any carrier connects through the generic sip_trunk provider, which is precisely the point the README was missing.


Note

Low Risk
Documentation-only README change with no runtime or API behavior impact.

Overview
Adds a Telephony section to the README between ElevenAgents and Speech Engine, documenting conversational AI phone/SIP capabilities that were previously absent from the user-facing guide.

The section explains how Twilio/Exotel import differs from generic sip_trunk carriers, then walks through phone_numbers.create with PhoneNumbersCreateRequestBody_SipTrunk, separating inbound vs outbound trunk config and clarifying ACL (allowed_addresses) vs digest (credentials) as alternative auth modes. It documents accepted transport, media_encryption, and optional enabled_codecs, links to the SIP trunking guide, and includes examples for sip_trunk.outbound_call and phone_numbers.list(provider="sip_trunk"), plus a note that the same APIs exist on AsyncElevenLabs.

Reviewed by Cursor Bugbot for commit 0d481d6. Bugbot is set up for automated code reviews on this repo. Configure here.

The README covers TTS, voices, streaming, ElevenAgents and Speech Engine
but says nothing about phone calls, even though
conversational_ai.phone_numbers and conversational_ai.sip_trunk have been
in the SDK for a while. Anyone wiring up a carrier has to reconstruct the
flow from reference.md, which lists the models without conveying that
inbound_trunk_config and outbound_trunk_config correspond to the two call
directions, or that allowed_addresses and credentials are alternative
authentication modes rather than both being required.

The new section sits between ElevenAgents and Speech Engine and covers
importing a number over SIP trunking, placing an outbound call, and
listing configured numbers.

Every example was checked against the generated models offline: the
imports, the request-body construction, the create/outbound_call/list
signatures, the response attributes each snippet prints, the documented
transport and media_encryption values, and the claim that the same
methods exist on AsyncElevenLabs.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant