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:
- Create a SIP Domain — Programmable Voice → SIP Domains → Create new SIP Domain. Pick a subdomain name (letters, digits, hyphens); Twilio appends
.sip.twilio.com, somycobecomesmyco.sip.twilio.com. That’s the domain you’ll point WaveKat Voice at. - Enable registration on the domain — on the SIP Domain page, turn on “SIP Registration”. Without this, REGISTER requests are rejected.
- Create a Credential List — Programmable Voice → SIP → Credential Lists → Create. Add a credential with a
usernameand apasswordyou choose. (Both are distinct from your Twilio console login.) - 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.
- 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:
Replace<Response> <Dial> <Sip>username@myco.sip.twilio.com</Sip> </Dial> </Response>usernameandmycowith your values. Inbound calls now ring the registered softphone.
Fields for WaveKat Voice
| Field | Value |
|---|---|
| Provider | Twilio (in the dropdown) |
| Account name | Anything — e.g. Twilio main |
| Username | The credential username from step 3 |
| Domain | myco.sip.twilio.com — override 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. |
| Password | The 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:
- Call your own Twilio number from another phone — WaveKat Voice should ring.
- 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.comdoesn’t accept REGISTER on its own — you must use your account’s SIP Domain (<your-subdomain>.sip.twilio.com). Easy to miss. 401 Unauthorizedon 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.