What BYOC means here
Bringing your own carrier (BYOC) means the phone number stays with your existing provider, and Finn connects to that provider over a SIP trunk. Finn handles the media and the agent logic. Your carrier handles the PSTN leg and continues to bill you for it.
There are two distinct paths, and they are not interchangeable:
| Path | What happens to the number | Who bills you for the number | Time to complete |
|---|---|---|---|
| Port | Ownership transfers to Finn | Finn | 5-15 business days, varies by country |
| SIP trunk | Stays with your current provider | Your current provider | Same day, once the trunk is configured |
Port when you want to leave your old provider. SIP trunk when you have an existing telephony investment (a PBX, a negotiated carrier rate, a regulatory registration you cannot move) and want to keep it. SIP trunking is aimed at enterprise setups for that reason.
If you have no existing carrier, do neither. Buy a number in the dashboard instead. See phone numbers.
Adding a SIP trunk
This is a dashboard operation. There is no public API endpoint for creating or editing trunks.
- Go to Settings → Telephony Account → Add SIP Trunk.
- Enter your provider's SIP endpoint.
- Enter the credentials your provider issued for that endpoint.
- Declare the codecs your trunk supports.
- Save, then configure inbound routing so a specific Finn answers calls arriving on a specific DID.
Step 5 is the one people skip. A trunk that is connected but unrouted accepts the call and then has nothing to answer it with. Configure routing before you send real traffic. See inbound routing.
Porting a number instead
- Go to Settings → Phone numbers → Port a Number.
- Upload the LOA (Letter of Authorization).
- Upload a recent bill from your current carrier.
- Submit.
Porting takes 5-15 business days depending on country. Do not release the number at your old provider while a port is in flight. Do not treat a port as a rollback plan either, since reversing it means porting again at the same timescale.
Codecs
Codec negotiation is where most new trunks fail, and it fails quietly. A call that connects but opens with 5-10 seconds of silence is almost always a codec mismatch between what your trunk advertises and what it actually accepts. The call is up, so nothing errors, and the caller hears nothing while the agent's first utterance goes nowhere.
Declare only codecs your trunk genuinely supports. If you list a codec your provider rejects at media time, you get the silent-open behavior rather than a clean failure.
Compliance does not travel with the trunk
A SIP trunk moves call routing. It does not move regulatory registration. Whatever your number needed before, it still needs.
- US and Canada outbound — calls must be STIR/SHAKEN attested, and high-volume numbers must be CNAM-registered or they will be labeled "SPAM LIKELY" and answer rates will collapse. Finn performs the attestation signing once the number is registered under Settings → Phone numbers → [Number] → Caller ID Registration.
- India — commercial calling requires DLT registration under Settings → Compliance → India DLT, and calling hours are 9 AM to 9 PM.
- Two-party consent states — recording disclosure is still your obligation on trunked calls. See recording consent.
Regulated countries may require KYC or business verification. That requirement attaches to the number and the destination, not to how the call reaches Finn.
Concurrency
Your trunk has a channel limit set by your carrier. Finn's concurrency limit is separate. The effective ceiling is the lower of the two, and exceeding the carrier's channel count produces carrier-side rejections that Finn cannot retry around. Confirm your trunk's channel count with your provider before scaling a campaign. See concurrency.
For high-volume outbound, a single DID is not viable regardless of trunk capacity. Use a number pool. See phone numbers and outbound campaigns.
Troubleshooting
| Symptom | Likely cause |
|---|---|
| Call connects, then 5-10 seconds of silence | Codec mismatch. Check the codec list on your trunk config against what your provider actually accepts. |
| Inbound calls reach the trunk but nothing answers | No Finn assigned to that DID, or a business-hours routing rule is active outside its window. |
| Outbound rejected by carrier | From-number not registered for the destination country, or not STIR/SHAKEN attested. |
| All US calls show "Scam Likely" | CNAM not registered. Submit registration and wait out carrier review. |
| One country fails, another works | Country-specific KYC outstanding. Check Settings → Phone numbers → [Number] → Compliance Status. |
For anything not covered here, see troubleshooting or support.