Skip to main content

Telephony

BYOC and SIP

Bringing your own carrier or trunk.

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:

PathWhat happens to the numberWho bills you for the numberTime to complete
PortOwnership transfers to FinnFinn5-15 business days, varies by country
SIP trunkStays with your current providerYour current providerSame 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.

  1. Go to Settings → Telephony Account → Add SIP Trunk.
  2. Enter your provider's SIP endpoint.
  3. Enter the credentials your provider issued for that endpoint.
  4. Declare the codecs your trunk supports.
  5. 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

  1. Go to Settings → Phone numbers → Port a Number.
  2. Upload the LOA (Letter of Authorization).
  3. Upload a recent bill from your current carrier.
  4. 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

SymptomLikely cause
Call connects, then 5-10 seconds of silenceCodec mismatch. Check the codec list on your trunk config against what your provider actually accepts.
Inbound calls reach the trunk but nothing answersNo Finn assigned to that DID, or a business-hours routing rule is active outside its window.
Outbound rejected by carrierFrom-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 worksCountry-specific KYC outstanding. Check Settings → Phone numbers → [Number] → Compliance Status.

For anything not covered here, see troubleshooting or support.