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.