Trunks
SIP routes between Voylo and your systems — inbound (calls to your agent) and outbound (calls your systems place).
A trunk is a SIP route. Manage both kinds at /app/trunks.
Inbound trunks
An inbound trunk is where a number's calls go: an ordered list of SIP destinations — your voice AI agent (Vapi, Retell, ElevenLabs, LiveKit, OpenAI Realtime, Pipecat) or any custom SIP endpoint. Voylo dials them in order with health-aware failover.
- Destinations — each a SIP URI with a label; the first reachable one that answers wins.
- Failover triggers — fail over on SIP 5xx, no-answer after N ms, or high setup latency.
- Health — Voylo qualifies each destination (OPTIONS) and skips ones that are down, so callers don't wait through dead legs. Live status is on the Monitor page.
Attach a number to an inbound trunk from the number's Destination card.
Outbound trunks
An outbound trunk lets your systems place calls out through Voylo. Voylo gives the trunk a unique SIP URI + credentials; your platform registers/authenticates to it and sends calls, egressing with one of your numbers as the caller ID.
- Voylo endpoint — a unique SIP URI + username/password per trunk (rotate any time).
- Allowed source IPs — restrict which hosts may use the trunk.
- Caller-ID rules — which of your numbers a call may present as From; an optional default; and advanced per-prefix routing (e.g. dial
+20…from your Egypt number).
How egress chooses the caller ID
On an outbound call, Voylo picks the egress number in order: an advanced routing rule whose destination prefix matches, then the From header if it's an allowed number, then the trunk's default caller-ID. If none apply, the call is rejected.
Health monitoring
Both directions are monitored — inbound destination reachability and outbound registration status — and surfaced on /app/monitor with recent events.