Skip to main content
Bring a number you already own at Twilio into Brilo in about fifteen minutes, so your agent answers it directly. Voice runs over a SIP trunk and needs only credentials scoped to that one trunk. SMS is optional and needs your Twilio account credentials, which Brilo encrypts at rest.
The voice setup, steps 1 to 7, is required. The SMS setup in step 8 is optional. Skip it if you only need voice calls.

Before you start

  • An active Twilio account that owns the phone number (DID) you want to import.
  • Voice Geographic Permissions enabled for the destinations you will dial. In the Twilio console: Voice, then Settings, then Geo Permissions.
  • For non-US numbers, such as AU +61 or UK +44, a Regulatory Bundle or Address attached to the DID. In the Twilio console: Phone Numbers, then Regulatory Compliance.
  • For SMS, which is optional: the number must be SMS capable in your country. US numbers also require A2P 10DLC Brand and Campaign registration, under Messaging, then Regulatory Compliance, before they can send.
  • Admin access to your Brilo workspace.

Steps

1

Start the Brilo import wizard

In your Brilo dashboard, go to Phone Numbers and click Import existing number, then Get Started.Brilo Import existing number modal with three-step explainerEnter your phone number in E.164 format, for example +12345678990, and select Twilio as the carrier. Click Next.Brilo wizard step 1, enter phone number and select Twilio as carrier
2

Copy your Origination URI

Brilo displays a unique Origination URI, which looks like sip:abc123.sip.livekit.cloud. This is the address Twilio sends inbound calls to.Copy it, because you paste it into Twilio in the next step. Keep this Brilo wizard tab open, since you come back to it in step 7.Brilo wizard step 2 showing Origination URI to copy
3

Create an Elastic SIP Trunk in Twilio

In a new browser tab, open the Twilio Console and go to Elastic SIP Trunking, then Trunks, then click Create new SIP Trunk. Give it a name such as Brilo.In the trunk’s General tab, set the following.Click Save.Twilio trunk General tab with Call Transfer, PSTN Transfer, and Transferor caller ID configured
4

Paste the Origination URI

Open the trunk’s Origination tab. Click Add new Origination URI and paste the URI you copied from Brilo in step 2. Use priority 10 and weight 10, then save.Twilio Origination URI configured with the value copied from Brilo
5

Configure Termination credentials

Open the trunk’s Termination tab. You create three things here: the Termination SIP URI, an optional regional URI, and a Credential List.Create the Termination SIP URI. In the Termination SIP URI box, type a unique subdomain prefix such as brilo-prod-acme. Twilio appends .pstn.twilio.com, giving you a full URI like brilo-prod-acme.pstn.twilio.com. The prefix must be globally unique across all Twilio customers, so if Twilio rejects your first choice, add a short random suffix such as brilo-prod-acme-9k2. Save the full URI, because you paste it into Brilo in step 7.
Non-US numbers, including AU, UK and EU: click Show Localized URIs and select the regional URI closest to your number, Sydney for AU or Dublin for UK and EU. Without this, all outbound traffic round trips through Twilio’s US region, adding 150 to 300ms of latency to every call.
Create a Credential List. Scroll down to Authentication. Leave IP Access Control Lists empty, because Brilo uses credential based authentication. In Credential Lists, click the + button to create a new list with a username and a long random password. Save both somewhere safe, because you paste them into Brilo in step 7.Save. Click Save at the bottom of the page.Twilio Termination SIP URI and Credential List configured
Never share your Twilio Account SID or Auth Token for the voice setup. The Credential List username and password are the only credentials Brilo needs here, and they authorise calls through this one trunk only.
6

Assign your number to the trunk

Inside your trunk, under Elastic SIP Trunking, then Trunks, then your trunk, click Numbers in the left sidebar. It is the same navigation where you clicked General, Termination and Origination.
  1. Click Add a number.
  2. Twilio shows the numbers in your account that are not already attached to another trunk. Select the DID you are importing.
  3. Click Add Selected and save.
Adding the DID to the trunk via the Numbers tab
If your DID does not appear in the list, it is already bound to another trunk, TwiML app or webhook. Go to Phone Numbers, then Manage, then Active Numbers, click the DID, and clear its current Voice Configuration, then return here.
7

Finish in Brilo

Switch back to the Brilo wizard tab and paste the three values you captured in Twilio:
  • Termination SIP URI, from step 5
  • Username, from your Credential List
  • Password, from your Credential List
Click Complete Setup.Brilo wizard step 3, outbound credentials filled inBrilo provisions the SIP trunks for your number in the background, which usually takes a few seconds. Once your number appears in your Phone Numbers list, it is ready to handle calls.
8

Enable SMS (optional)

Skip this step if you only need voice. To send and receive SMS on your imported number, complete the messaging step in the Brilo wizard before clicking Complete Setup.Toggle SMS on and paste your Twilio credentials. In the wizard’s Set up messaging step, switch Enable SMS on. Two fields appear:
  • Twilio Account SID, which starts with AC. Find it on your Twilio Console home page under Account Info, then Account SID.
  • Twilio Auth Token, also on the Twilio Console home page under Account Info, then Auth Token. Click the eye to reveal it.
Your Twilio Account SID and Auth Token give access to your entire Twilio account. Brilo stores them encrypted at rest (AES-256-CBC) and uses them only for sending SMS from this number and verifying inbound webhooks. Treat them like a password and rotate them immediately if you suspect a leak.
Click Complete Setup. You do not need to open the Twilio Console for SMS. Brilo validates your credentials against Twilio, sets the inbound Messaging webhook on your Twilio number for you (SmsUrl becomes https://api.brilo.ai/twilio/webhook over POST), then encrypts and stores the credentials. If any of that fails, the wizard shows an inline error so you can correct it.
About overwriting existing webhooks: if your Twilio number previously pointed at a different SMS webhook, for example another integration, this setup replaces it. Re-attach the previous webhook only if you remove this number from Brilo later.

You will know it worked when

  • Your number appears in your Phone Numbers list in Brilo, ready to attach to an agent.
  • You call the number yourself and your agent answers. See Test your agent yourself.
  • If you completed step 8, a text sent to the number reaches your agent, and an SMS your agent sends arrives.

What you can do once the number is imported

If it did not work

The caller ID on the supervisor leg is not verified on your Twilio trunk. Make sure the DID you imported is the From number on the outbound leg. Brilo does this automatically for transfers that started as inbound calls, but for outbound campaigns, check the agent’s outbound number is the imported DID.
Two likely causes:
  1. Credential mismatch, error 32011. The Termination username and password you pasted into Brilo do not match the Credential List on your Twilio trunk. Re-enter them in the Brilo wizard, making sure there is no stray whitespace.
  2. Geographic Permissions block, error 13227 or 21215. Your Twilio account does not permit calls to the destination country. Enable it under Voice, then Settings, then Geo Permissions.
Either:
  1. The DID is not pointed at the SIP Trunk from step 6. Check Voice Configuration on the number.
  2. The Origination URI in step 4 has a typo. Confirm it matches what Brilo showed in step 2 exactly, including the sip: prefix.
Twilio requires a Regulatory Bundle for non-US DIDs. Open Phone Numbers, then Regulatory Compliance, and attach the appropriate bundle to your DID before importing.
The background registration job failed. Contact support@brilo.ai with your phone number and the team will investigate.
Brilo validates your Account SID and Auth Token against Twilio before saving. The most common causes:
  1. Typo or whitespace in the SID or token. Re-copy both directly from Account Info in the Twilio Console.
  2. Wrong account. Your Account SID starts with AC and is exactly 34 characters. If you use a Twilio sub-account, the SID and Auth Token must come from the same sub-account that owns the imported DID.
  3. Rotated Auth Token. If you recently regenerated your Auth Token in Twilio, use the new one.
Brilo sets the inbound webhook on your Twilio number automatically when you complete step 8. If inbound SMS still is not arriving, check in order:
  1. The webhook was actually configured. Open Phone Numbers, then Manage, then Active Numbers, then your DID, then Messaging Configuration. The A message comes in field should be https://api.brilo.ai/twilio/webhook over POST. If it is blank or wrong, re-run step 8 in the Brilo wizard.
  2. Signature validation is failing. Brilo verifies every inbound SMS against your stored Auth Token. If you rotated the Auth Token in Twilio after importing, re-enter it in the Brilo wizard so the stored value matches.
  3. The number is not SMS capable. Check your number’s Capabilities in the Twilio Console. If SMS is disabled, enable it. Some countries require regulatory steps first.
  4. The webhook was manually changed. If you or another tool overwrote SmsUrl after step 8, re-run step 8 to restore it.
The number is not enabled for SMS on your Twilio account. Open Phone Numbers, then Manage, then Active Numbers, click your DID, and confirm the Capabilities include SMS. Enable SMS if it is off. Some countries require regulatory approval first.
Your Twilio account does not have A2P 10DLC registration. US carriers require every business sender to register a Brand and Campaign with The Campaign Registry. Open Messaging, then Regulatory Compliance, then A2P 10DLC, and complete the registration. This is a Twilio account level requirement that Brilo cannot bypass.
Anything else: I cannot buy or change a number, or email support@brilo.ai with your phone number and where you got stuck.

FAQ

Yes. Brilo imports a Twilio number over an Elastic SIP Trunk, which takes about fifteen minutes and works on every plan. Voice and SMS are both supported, with SMS as an optional extra step during the import.
You need a Twilio account that owns the number and can create an Elastic SIP Trunk, which the standard pay as you go account can do. You keep paying Twilio for the number and its traffic, separately from your Brilo plan.
No, but the steps are more technical than the rest of Brilo, and you need admin access to the Twilio console. Budget fifteen minutes and follow the steps in order. See Do I need a developer.
For voice, only the Credential List username and password, which authorise calls through your one trunk. For SMS, your Account SID and Auth Token, encrypted at rest and used only to send from this number and verify inbound webhooks. Skip step 8 to avoid sharing them.
Calls keep reaching your existing Twilio setup until you point the DID at the new trunk in step 6. Do that step when you are ready to switch, then call the number yourself to confirm your agent answers before telling anyone.
The DID is already bound to another trunk, TwiML app or webhook, so Twilio hides it. Open Phone Numbers, then Manage, then Active Numbers, click the DID, and clear its current Voice Configuration, then return to step 6.
The number stays yours at Twilio, because importing never transfers ownership. Point the DID back at whatever answered before and calls return there. If you set up SMS, re-attach your previous messaging webhook as well.