Skip to content

didww-to-elevenlabs: import numbers without the plus, use the api.us MCP host, add live-agent transfers - #6

Open
MinReq wants to merge 2 commits into
didww:mainfrom
MinReq:fix/elevenlabs-number-format-mcp-host-transfers
Open

MinReq wants to merge 2 commits into
didww:mainfrom
MinReq:fix/elevenlabs-number-format-mcp-host-transfers

Conversation

@MinReq

@MinReq MinReq commented Oct 27, 2026

Copy link
Copy Markdown

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.py only 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|required to match the DIDWW trunks; the default stays allowed, which used to be hardcoded. SKILL.md, the skill README and docs/didww-to-elevenlabs.md (example command, IMPORTANT note, troubleshooting row) are updated to match.

ElevenLabs MCP host

https://api.elevenlabs.io/v1/mcp returns 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 uses https://api.us.elevenlabs.io/v1/mcp: the skill's SKILL.md and README, the docs page, and didww-connect's references/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:

  • Transfers are SIP REFER, and DIDWW places the new leg through the customer's outbound trunk, so that trunk's Allowed SIP IPs list DIDWW's seven inbound signaling IPs.
  • The DIDWW inbound trunk's Authorization and the ElevenLabs number's inbound credentials both use the outbound trunk's username and password.
  • max_transfers is 1 or more, and network_protocol_priority matches the outbound trunk (e.g. force IPv4).
  • The agent's transfer_to_number tool uses transfer_type: sip_refer with a sip_uri destination at the DIDWW outbound host, set through agents_update_transfer_to_number_tool.
  • When outbound calls or transfers are planned, the flow creates the outbound trunk first and uses its pair from the start.
  • New import_number.py --update PHONE_NUMBER_ID switches an imported number's inbound credentials (PATCH /v1/convai/phone-numbers/{id} with inbound_trunk_config.credentials). The password comes from an environment variable, so the outbound trunk's password never goes through the chat.
  • New failure-map rows for transfers, the MCP sign-in error and 409 phone_number_conflict.

Versions and tests

  • didww-to-elevenlabs 1.1.1. didww-connect 1.0.3, because its shipped reference changed. A CHANGELOG entry covers both. Not published to npm.
  • tests/test_import_number.py covers the number format, --media-encryption and --update. New tests/test_skill_text.py fails if any claude mcp add … elevenlabs command goes back to the old host, or if the transfer facts drop out of SKILL.md.
  • bash scripts/test.sh passes: elevenlabs 26/26 and 4/4, installers 90/90, all other skills unchanged.

🤖 Generated with Claude Code

…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>
@coderabbitai

coderabbitai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: dead623c-71b4-489a-899c-9355585e1d30
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.

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>
@sonarqubecloud

sonarqubecloud Bot commented Nov 3, 2026

Copy link
Copy Markdown

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