Repository navigation
didww-to-elevenlabs: import numbers without the plus, use the api.us MCP host, add live-agent transfers - #6
Conversation
…MCP host, add live-agent transfers
- import_number.py accepts E.164 with or without + and imports it without,
as the DIDWW trunk sends {DID}; new --media-encryption and --update
(PATCH an imported number's inbound credentials).
- ElevenLabs MCP at https://api.us.elevenlabs.io/v1/mcp: the api.elevenlabs.io
endpoint advertises that resource and Claude Code refuses to sign in.
- Transfer section per DIDWW's AI-to-Live Agent guide (SIP REFER, DIDWW
signaling IPs on the outbound trunk, outbound pair on the inbound trunk and
the ElevenLabs number, max_transfers, network protocol, sip_refer tool),
plus failure-map rows.
- didww-to-elevenlabs 1.1.1, didww-connect 1.0.3.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
CHANGELOG: the ElevenLabs entry stays on top, re-dated 2026-11-03 so the entries stay newest first. .well-known/agent-skills/ rebuilt with scripts/build_index.py for the didww-connect and didww-to-elevenlabs changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|



Three gaps in
didww-to-elevenlabs, all found while setting up a DIDWW number on an ElevenLabs agent with the skill. The fixes were confirmed by real inbound calls and a real live-agent transfer.Number format
scripts/import_number.pyonly accepted numbers with a leading+(\+[1-9]\d{6,14}). The DIDWW inbound trunk sends the called number as{DID}, without a plus, and DIDWW's ElevenLabs guide (Step 2: Enter Your Phone Number) says to import the number in E.164 without the+. The script now accepts either form and always imports the number without the plus. New--media-encryption disabled|allowed|requiredto match the DIDWW trunks; the default staysallowed, which used to be hardcoded. SKILL.md, the skill README anddocs/didww-to-elevenlabs.md(example command, IMPORTANT note, troubleshooting row) are updated to match.ElevenLabs MCP host
https://api.elevenlabs.io/v1/mcpreturns 401 with OAuth protected-resource metadata that says"resource": "https://api.us.elevenlabs.io/v1/mcp". Because that resource doesn't match the configured URL, Claude Code refuses to start sign-in ("Couldn't start sign-in for elevenlabs: Try again in a moment"). Checked with curl on 2026-10-27. Every reference now useshttps://api.us.elevenlabs.io/v1/mcp: the skill's SKILL.md and README, the docs page, and didww-connect'sreferences/panels-and-billing.md. The root README never contained this URL.Live-agent transfers
The skill's description said it covered transfers, but the flow had no transfer steps, and it told the agent to invent a separate digest pair for the inbound trunk, which breaks transfers. There is now a transfer section following AI-to-Live Agent call transfers:
max_transfersis 1 or more, andnetwork_protocol_prioritymatches the outbound trunk (e.g.force IPv4).transfer_to_numbertool usestransfer_type: sip_referwith asip_uridestination at the DIDWW outbound host, set throughagents_update_transfer_to_number_tool.import_number.py --update PHONE_NUMBER_IDswitches an imported number's inbound credentials (PATCH /v1/convai/phone-numbers/{id}withinbound_trunk_config.credentials). The password comes from an environment variable, so the outbound trunk's password never goes through the chat.phone_number_conflict.Versions and tests
didww-to-elevenlabs1.1.1.didww-connect1.0.3, because its shipped reference changed. A CHANGELOG entry covers both. Not published to npm.tests/test_import_number.pycovers the number format,--media-encryptionand--update. Newtests/test_skill_text.pyfails if anyclaude mcp add … elevenlabscommand goes back to the old host, or if the transfer facts drop out of SKILL.md.bash scripts/test.shpasses: elevenlabs 26/26 and 4/4, installers 90/90, all other skills unchanged.🤖 Generated with Claude Code