Skip to content
Back to skills

Didww To Elevenlabs

ASecurity

Connect a DIDWW phone number to an ElevenLabs voice agent over SIP, as automatically as both platforms allow. Use whenever the user wants an ElevenLabs agent (Agents Platform, Conversational AI) on a real phone number via DIDWW, mentions pairing DIDWW with ElevenLabs, importing a SIP trunk into ElevenLabs, sip.rtc.elevenlabs.io, or debugging calls between the two. Covers inbound, outbound, transfers and verification.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 2, 2026
ai-agentsgodebuggingapi

Works with

  • api
  • mcp

Security analysis

A100/100

Pro scans all 11 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add didww/ai --skill didww-to-elevenlabs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Didww To Elevenlabs?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Didww To Elevenlabs
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/didww-didww-to-elevenlabs/badge)](https://www.skillsdirectory.com/skills/didww-didww-to-elevenlabs)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: didww-to-elevenlabs
description: >
  Connect a DIDWW phone number to an ElevenLabs voice agent over SIP, as
  automatically as both platforms allow. Use whenever the user wants an
  ElevenLabs agent (Agents Platform, Conversational AI) on a real phone
  number via DIDWW, mentions pairing DIDWW with ElevenLabs, importing a
  SIP trunk into ElevenLabs, sip.rtc.elevenlabs.io, or debugging calls
  between the two. Covers inbound, outbound, transfers and verification.
---

# DIDWW to ElevenLabs

The connection is one trunk pair plus one number import. ElevenLabs runs
the agent; DIDWW carries the calls. Everything except one REST call is
automatable through OAuth MCPs, so prefer that path.

## Auth and automation map

| Side | Best path | Auth |
|---|---|---|
| DIDWW (trunks, DID, spend limits) | DIDWW MCP `https://api.didww.com/mcp` | OAuth, no keys |
| ElevenLabs agent create/config, number-to-agent assignment | ElevenLabs hosted MCP `https://api.elevenlabs.io/v1/mcp` | OAuth, no keys |
| ElevenLabs number IMPORT (the one gap: not in their MCP) | REST `POST /v1/convai/phone-numbers` via `scripts/import_number.py` | one `xi-api-key`, or a guided dashboard step |

If either MCP is missing, register it (`claude mcp add --scope user
--transport http didww https://api.didww.com/mcp`, same for elevenlabs)
and have the user authenticate once in `/mcp`.

## The flow

1. **Confirm in one message:** which DIDWW number (or country to buy one
   in), which agent (existing, or create from a described purpose), and
   the transfer destination if any.
2. **DIDWW side (MCP):** create the inbound SIP trunk with host
   `sip.rtc.elevenlabs.io`, port 5060, transport TCP (TLS supported;
   match media encryption on both sides), digest auth with an invented
   username/password pair (preferred over IP filtering: ElevenLabs egress
   IPs are distributed; static IPs are enterprise-only). Attach the DID.
   Create the outbound trunk, note its generated credentials and the
   region-nearest host (`fra.eu.out.didww.com`, `ams.eu.out.didww.com`,
   `nyc.us.out.didww.com`...). Set the 24h spend limit to 10 to 50 USD
   and honest channel caps; never leave defaults.
3. **Agent (ElevenLabs MCP):** create or select the agent, set voice,
   language and prompt.
4. **Import the number:** run `scripts/import_number.py` (or walk the
   dashboard's Import SIP Trunk form). Inbound auth is a
   `credentials` object that must match step 2's digest pair exactly;
   outbound address is the DIDWW host from step 2, hostname only, no
   `sip:` prefix, transport lowercase (`tcp` or `tls`), credentials from
   the outbound trunk. Then assign the agent to the number (MCP:
   `agents_update_phone_number`, or the script's `--agent` flag).
5. **Verify:** inbound call from a mobile, outbound call showing the DID
   as caller ID, transfer if configured. CDRs visible on the DIDWW side.

## Failure map for this exact pairing

- Inbound rejected or silent: digest mismatch between the DIDWW trunk and
  the import's inbound auth, or the number's plus sign differs from how
  it was imported.
- 488 or one-way audio: media encryption mismatch (SRTP on one side
  only).
- Outbound dead: `sip:` prefix or a port pasted into the Address field,
  or wrong region host.
- Everything works but money leaks: default spend limits were kept; go
  back to step 2.

## Panel map and money

ElevenLabs keys: `elevenlabs.io/app/settings/api-keys` (workspace keys:
profile icon, Workspace settings, Service Accounts); needed only for the
import script, everything else rides the OAuth MCP. Billing is
subscription tiers granting credits (Free includes 15 agent minutes,
Starter 6 USD, Creator 22 USD, Pro 99 USD); extra agent minutes about
0.08 USD, concurrency above the tier cap bills 2x, and LLM plus
telephony are billed on top. Warn that agent minutes drain the same
credit pool as TTS. DIDWW side: prepaid; top-up, Auto-charge and the
Low Balance Notification (OFF by default: switch it on) all live in
Billing, Payment Methods.

---

Built around [DIDWW](https://www.didww.com/?ref=didww-to-elevenlabs) SIP
trunking and ElevenLabs' published SIP interconnect; both sides' guidance
verified August 2026.

Files in this skill

  • .npmignore66 B
  • LICENSE1.1 KB
  • README.md1.3 KB
  • SKILL.md4.1 KB
  • bin/install.js3.6 KB
  • install.sh1 KB
  • package.json878 B
  • publish.sh450 B
  • scripts/import_number.py3 KB
  • test.sh488 B
  • tests/test_import_number.py3.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.