Skip to content

HTTP API Reference ​

Public Health ​

MethodPathDescription
GET/healthzDrachtio connection health and active SIP call count.
GET/readyzReadiness for new work; 503 during drain or Drachtio disconnection.

Adapter Routing ​

These routes use the configured HTTP bearer authentication. Configure bearer mode when exposing them to a transport adapter. They never call an application webhook or fallback router.

MethodPathDescription
GET/routing/statusAdmission/drain state, process tag, route count and media catalog revision/expiry/eligible count/reload error.
POST/routing/lookupSide-effect-free route match; body {destinationUri, destinationUser?}, response {matched, acceptNew, tag?}.

Lookup bodies are limited to 16 KiB. URI/user lengths are bounded to 2048/256 characters. A match retains matched=true during drain or dependency loss but returns acceptNew=false without a tag. See cross-cluster deployment.

Calls ​

MethodPathDescription
GET/callsList active SIP calls.
GET/calls/:callIdGet one SIP call.
POST/callsCreate outbound SIP call.
POST/calls/:callId/reinviteSend SIP re-INVITE.
POST/calls/:callId/byeSend SIP BYE.

Sessions ​

MethodPathDescription
GET/sessionsList media sessions.
GET/sessions/:sessionIdGet one media or SIP session.
POST/sessionsCreate media session.
DELETE/sessions/:sessionIdDelete media session or hang up SIP session.

WebRTC And RTP ​

MethodPathDescription
POST/sessions/:sessionId/webrtc/offersCreate WebRTC offer.
POST/sessions/:sessionId/webrtc/from-offerCreate WebRTC answer from offer.
POST/endpoints/:endpointId/webrtc/answerAccept WebRTC answer.
POST/endpoints/:endpointId/webrtc/offer-answerAccept WebRTC offer and return answer.
POST/endpoints/:endpointId/webrtc/ice-restartCreate ICE restart offer.
POST/sessions/:sessionId/rtp/offersCreate RTP offer.
POST/sessions/:sessionId/rtp/from-offerCreate RTP answer from offer.
POST/endpoints/:endpointId/rtp/answerAccept RTP answer.
POST/endpoints/:endpointId/rtp/reinviteRenegotiate RTP endpoint.

Media ​

MethodPathDescription
POST/sessions/:sessionId/media/playPlay media source.
POST/sessions/:sessionId/media/bridgeBridge two sessions.
POST/media/bridges/:endpointId/unbridgeRemove bridge endpoint.
DELETE/media/bridges/:endpointIdRemove bridge endpoint.
POST/sessions/:sessionId/media/gatherGather DTMF digits.
POST/sessions/:sessionId/media/play-and-gatherPlay prompt and gather digits.
POST/sessions/:sessionId/media/leave-messageWait for silence and play message.
POST/media/endpoints/:endpointId/dtmfInject DTMF.
POST/media/endpoints/:endpointId/directionUpdate endpoint direction.
DELETE/media/endpoints/:endpointIdStop and delete endpoint.

Recordings ​

MethodPathDescription
POST/sessions/:sessionId/recordingsStart recording.
POST/recordings/:recordingId/stopStop recording.
GET/recordingsList recordings across backends. Best for diagnostics and recovery; production archival should use deterministic filenames plus the backendId returned by recording commands.
GET/recordings/:backendIdList recordings for one backend.
GET/recordings/:backendId/*Stream one recording.
POST/recordings/mergeStream ordered merged PCAP.
DELETE/recordings/:backendId/*Delete one recording.

Decoded audio is not served by this API. Use rtpbridge pcap2audio for PCAP-to-WAV conversion: https://zyno-io.github.io/rtpbridge/protocol/recording.html#decoding-pcap2audio.

Process ​

MethodPathDescription
POST/drainBegin bounded graceful shutdown; returns 202 and uses normal command-route authentication.
POST/terminateAlias for /drain.

Released by Zyno Consulting.