> Source: https://docs.virtuo.in/vio/telephony/sip-trunks > Bring your own carrier to Vio over a SIP trunk. Point your carrier or PBX at Vio for inbound, give Vio an outbound host, and attach your own DIDs. # SIP trunks (BYOC) **BYOC means "bring your own carrier." A SIP trunk connects your existing carrier or PBX to Vio so calls flow through Vio's agents while you keep your own phone numbers and your negotiated per-minute rates.** If you don't have a carrier to bring and just want to get live fast, import a [**Twilio number**](/vio/telephony/numbers) instead. ## How a SIP trunk works in Vio You connect **one trunk per carrier**. A trunk carries calls in two directions, and each direction is set up separately: | Direction | What Vio gives / needs | What it does | |---|---|---| | **Inbound** | Vio **issues you credentials**: a **host**, a **username**, and a **password**. | You point your carrier at Vio using them, so calls to your numbers reach your agent. | | **Outbound** | You give Vio your **outbound host** (where to send calls). | Vio dials through your carrier when running a campaign or a callback. | Once the trunk is connected, you **attach your DIDs** (your phone numbers) to it. An attached DID behaves just like an imported number: assign it an agent, and it's live. **A normal phone call is narrowband by nature.** The public phone network (PSTN) carries voice in a compressed, low-bandwidth format, so a call will never sound studio-HD on the line itself — this is true of every phone call, not a Vio limitation. Your agent still comes through clearly. Recordings stored in your [**Call logs**](/vio/call-logs) are captured at higher fidelity than the live phone audio. ## Connect a trunk ### Open the SIP Trunks view Select **SIP Trunks** in the sidebar and create a trunk for your carrier. Remember: **one trunk per carrier**. ### Set up inbound Vio issues you an inbound **host**, **username**, and **password**. In your carrier or PBX (for example **FreePBX**), configure a trunk that registers or sends calls to Vio using exactly those credentials. Inbound calls to your numbers now reach Vio. ### Set up outbound Enter your carrier's **outbound host** — the address Vio should send outgoing calls to. This lets Vio dial through your carrier for campaigns and callbacks. ### Attach your numbers (DIDs) Attach each DID you want Vio to handle to this trunk. Then assign an agent to each number in the [**Numbers**](/vio/telephony/numbers) view — unassigned numbers fall back to your default agent. ## Managing a trunk - **Rotate the inbound password.** If a credential is exposed or you rotate secrets on a schedule, generate a new inbound password on the trunk and update your carrier to match. - **Detach numbers before deleting.** A trunk with DIDs still attached can't be removed. Detach every number first, then delete the trunk — this prevents accidentally cutting off a live line. Keep your inbound **username and password** private. They authenticate calls into Vio; anyone who has them could send calls to your trunk. If you suspect they've leaked, **rotate the password** immediately. ## Frequently asked **Q. What does BYOC actually get me over importing Twilio?** You keep your existing phone numbers and your carrier's per-minute rates, and you can front Vio with a PBX you already run (like **FreePBX**). Twilio import is faster to set up; BYOC gives you continuity and control over telephony costs. **Q. Can one trunk carry both inbound and outbound?** Yes. A single trunk handles both directions — inbound via the credentials Vio issues you, outbound via the host you provide. You configure each side once. **Q. How many trunks do I need?** One per carrier. If all your numbers are with a single carrier, one trunk is enough. Add another trunk only when you bring a second, separate carrier. **Q. Why won't Vio let me delete my trunk?** Because numbers are still attached to it. **Detach the DIDs first**, then delete. This guard exists so you don't accidentally take a live line offline. ## Next step Attached your numbers? Assign agents in [**Phone numbers**](/vio/telephony/numbers), then start dialing with an [**Outbound campaign**](/vio/telephony/outbound-campaigns).