wavekat

Twilio

Twilio is a global communications platform with two SIP products. WaveKat Voice — and any other softphone that signs in with REGISTER — uses Programmable Voice + SIP Domains, not Elastic SIP Trunking. (Elastic SIP Trunking is for PBXes and SBCs; it explicitly doesn’t accept REGISTER from a softphone.)

What you’ll need from Twilio

If you don’t have a Twilio account yet, sign up and add a few dollars of credit. A SIP Domain + a phone number cost a few dollars a month minimum.

Inside the Twilio Console:

  1. Create a SIP Domain — Programmable Voice → SIP Domains → Create new SIP Domain. Pick a subdomain name (letters, digits, hyphens); Twilio appends .sip.twilio.com, so myco becomes myco.sip.twilio.com. That’s the domain you’ll point WaveKat Voice at.
  2. Enable registration on the domain — on the SIP Domain page, turn on “SIP Registration”. Without this, REGISTER requests are rejected.
  3. Create a Credential List — Programmable Voice → SIP → Credential Lists → Create. Add a credential with a username and a password you choose. (Both are distinct from your Twilio console login.)
  4. Map the Credential List to your SIP Domain — twice. On the SIP Domain page:
    • Credential Lists (Registration) → pick the list — authenticates the softphone’s REGISTER.
    • Credential Lists (Voice Authentication) → pick the same list — authenticates outbound INVITEs from the softphone.
  5. Buy a phone number (Phone Numbers → Manage → Buy a number) if you want to receive calls, then wire it to your softphone. The simplest approach: configure the number with a TwiML Bin whose body is:
    <Response>
      <Dial>
        <Sip>username@myco.sip.twilio.com</Sip>
      </Dial>
    </Response>
    Replace username and myco with your values. Inbound calls now ring the registered softphone.

Fields for WaveKat Voice

FieldValue
ProviderTwilio (in the dropdown)
Account nameAnything — e.g. Twilio main
UsernameThe credential username from step 3
Domainmyco.sip.twilio.comoverride the preset’s default sip.twilio.com. The domain is your account’s specific SIP Domain (the subdomain you picked in step 1), not the generic SIP host.
PasswordThe credential password from step 3

The Advanced fields can stay at the defaults: UDP, port 5060, 60-second refresh.

Test it

After saving, the green dot on your Twilio account chip on the WaveKat Voice Home screen confirms you’re registered. To verify two-way audio end-to-end:

  1. Call your own Twilio number from another phone — WaveKat Voice should ring.
  2. Or place an outbound call to a friend’s mobile and confirm they can hear you and you can hear them.

Twilio doesn’t publish an official echo test number. The community-circulated +14159929960 has historically worked but isn’t documented, so we don’t recommend relying on it. If you want a programmatic test, you can stand up a small <Say>/<Play> TwiML response and dial into a Twilio number that hits it.

Common gotchas

  • Domain wrong: the preset’s default sip.twilio.com doesn’t accept REGISTER on its own — you must use your account’s SIP Domain (<your-subdomain>.sip.twilio.com). Easy to miss.
  • 401 Unauthorized on sign-in: the Credential List isn’t mapped to the SIP Domain’s Registration slot (only mapping it to Voice Authentication isn’t enough), or you typed the password wrong. Re-check the SIP Domain’s settings page.
  • Outbound calls fail with 403 Forbidden: the Credential List isn’t mapped to the SIP Domain’s Voice Authentication slot. Map it to both.
  • Inbound calls don’t ring: your Twilio phone number isn’t wired to a TwiML Bin (or other handler) that dials the SIP endpoint. Step 5 above is the fix.

Pricing

Twilio’s pricing page is authoritative. As of writing: outbound to US is roughly $0.014/min, inbound is roughly $0.0085/min, a US local number is $1.15/month, and SIP Domain registration itself is free. Cheap for occasional use; less competitive than dedicated VoIP providers for high-volume calling.