method_id. The
IDL compiler writes the constants below into every SDK at build time.
These constants are the source of truth.
Method table
method_id is a CRC32-based hash of service_name, method name, and the
fully-qualified DTO names. It is stable across versions if none of those
three change. Do not fork the table. If you change anything,
regenerate the table from the IDL.
How to use
- Pick the method.
- Encode its request DTO as a serde envelope.
- Prepend the envelope header.
- Write the frame onto a fresh QUIC bidirectional stream.
StreamEvents and AudioFrame, it responds on a
server-initiated unidirectional stream.
Method semantics
Originate
Originate
Place a single outbound call. The gateway assigns a
call_sid if the
request omits one. Later state changes arrive as CallEvents on the
event stream that you subscribed to via StreamEvents.OriginateBulk / AbortBulk
OriginateBulk / AbortBulk
The bulk dialer. It reads phone numbers from
csv_url. It paces at
calls_per_second and caps at max_concurrent_calls. AbortBulk
cancels a campaign by campaign_id.Terminate
Terminate
Hang up an active call by
call_sid.StreamEvents
StreamEvents
Subscribe to call lifecycle events. The
client_id should be a stable
UUID per process. The gateway uses it to demux uni-streams across many
parallel SDK instances.SetInboundRouting
SetInboundRouting
Tell the gateway what to do with PSTN-originated calls that hit
trunk_id. The options are: reject, play and hangup, fire a webhook,
or hand off to the AI bridge.GetIncomingCalls / AnswerIncomingCall
GetIncomingCalls / AnswerIncomingCall
Poll incoming calls (per trunk). Answer one explicitly. Use these RPCs
when the SDK acts as a click-to-answer agent instead of letting
SetInboundRouting auto-handle the call.GetActiveBuckets / GetBucketCalls / ExecuteBucketAction
GetActiveBuckets / GetBucketCalls / ExecuteBucketAction
Operational cleanup tooling. A “bucket” is a server-side set of calls
that share an attribute that the gateway tracks for triage. Typical
buckets are parked-too-long, abandoned, or orphaned (no SDK heartbeat).
Use these RPCs to list stuck calls and act on them in bulk. The
intended
action is 0=hangup to clear them during ops incidents.
These RPCs are not a transfer or conferencing primitive. The
platform supports neither capability.ExecuteDialplan
ExecuteDialplan
Override the in-flight dialplan for a
call_sid: hang up, park,
music-on-hold, playback, unpark+bridge, answer, or open the AI
bidirectional stream.Barge
Barge
The platform’s AI-network unblocker. While the AI talks, the
gateway watches the inbound leg for the human caller’s voice
(energy / VAD / semantic detection, per trunk via
auto_bargein_mode).
When the human starts to speak, the gateway gates the AI’s outbound
audio within barge_in_patience_ms. The human is then heard
immediately. This RPC is the explicit handle to trigger or arm
barge-in for a call_sid. The per-call knobs auto_barge_in and
barge_in_patience_ms on OriginateRequest arm it automatically.
It is not the supervisor-injection feature found in legacy PBXs.AudioFrame
AudioFrame
Bidirectional audio. You write outbound frames on a client → server
uni-stream. Inbound frames arrive on a server → client uni-stream.
See Audio Frames.

