SIP Wire Reference
This page documents the wire-level contract behind SIP Trunking: every message your SBC or provider will see, taken from real production captures. Read the SIP Trunking page first for setup; come here when you are integrating a switch, reading a packet capture, or debugging a call.
On the wire you will only ever see five things from us: INVITE, ACK, CANCEL, BYE, and DTMF as RFC 2833/4733 telephone-event in RTP. We never send SIP REFER, re-INVITE hold, or SIP INFO. The AI agent itself is not a SIP endpoint; it joins the call behind our media edge and is invisible in SIP signalling.
Inbound call flow
Calls are answered as soon as the dialed number matches an imported number and an agent answers on it. The agent joins right after, so expect a fast 200 OK followed by a short lead-in (typically 1 to 3 seconds) of silent RTP from our side before the agent speaks. Keep sending RTP during this window.
Inbound rejections: a failed trunk authentication returns 403; a dialed number that matches no imported number, or a number no agent answers on, returns 404 or 486. An INVITE is never left unanswered, so a total timeout means your INVITE did not reach us (see Silence, no SIP response).
Outbound call flow
Outbound calls from your agent arrive at your termination host as a standard INVITE. If your trunk uses credential auth, expect the digest flow: we answer your 401/407 challenge with a second INVITE carrying the Authorization header, on the same Call-ID with the CSeq incremented.
How we handle your responses
A real INVITE
Captured from a production outbound call, with numbers, credentials, and hosts genericised. Expect this exact structure at your termination host.
Things worth noticing:
- The
Fromtag is our call ID (SCL_...). Quote it in any support ticket, since it is the key we use to pull the call’s logs and packet capture. - SDP offer order: G.722 first, then PCMU, PCMA, plus
telephone-event(payload type 101, events 0-16) for DTMF.ptimeis 20 ms. Your200 OKpicks the codec. - The
Allowheader advertises more methods than we use; the messages listed at the top of this page are the only ones you will actually receive. - SIP session timers are supported, and a
Session-Expiresrequirement in your200 OKis honored.
Transfers on the wire
When an agent transfers a call, we do not send SIP REFER, so your trunk needs no REFER support. Instead we place a second, independent outbound call over your outbound trunk (the one behind the agent’s configured transfer number) and bridge the audio:
Practical consequences:
- Leg B’s INVITE carries the header
X-Caller-IDwith the original caller’s number. The network caller ID (From) is the agent’s own number; surfaceX-Caller-IDon your side if you want the target to see who is being transferred. - A transferred call occupies two channels on the trunk for its full duration.
- The transfer target must be dialable on the trunk behind the agent’s transfer number.
- Every leg always ends with its own explicit
BYE(orCANCELif it never answered).
Timers
If your media stack suppresses RTP during silence, enable comfort noise or ask support to raise the media timeout on your trunk; otherwise quiet calls get torn down.
Debugging a call with support
Every call on our side has a full packet capture (SIP + RTP). To get a fast answer:
- Grab our call ID, the
tagon theFromheader of any INVITE we sent you (SCL_...). For inbound calls, it is on the messages we send back to you. - Capture your own side if you can (
tcpdump -i any -s0 -w sip.pcap 'port 5060 or port 5061 or portrange 10000-60000'). - Email
support@smallest.aiwith the call ID, your capture, the exactTo:and Request-URI of one failing INVITE, and the transport you configured.
Comparing your capture against ours settles almost every interop question in one pass. For self-diagnosis first, walk the troubleshooting section on the SIP Trunking page.
Region routing
Our SIP endpoint is global anycast: your INVITE lands in the region closest to where your provider sends it from. If your traffic is latency-sensitive and concentrated in one region (for example, India), region pinning is available; contact support.

