Concepts

The core primitives — numbers, calls, wallet, workspaces, webhooks, and WebRTC — and how they fit together.

Browser Calling with WebRTCSautikit supports browser calling via short-lived SIP tokens minted server-side. The token carries workspace identity, is verified by the SIP gateway, and attributes call billing to your KES wallet.CallsEvery phone call in Sautikit is a call record with a direction (inbound or outbound), a sequence of lifecycle states, and an optional recording. Cost is debited at hangup based on answered duration.Phone NumbersA phone number in Sautikit moves through a defined lifecycle from available inventory to an active workspace assignment. Each number gets its own SIP credentials and routing config.Voice Actions DSLVoice Actions are the JSON DSL Sautikit uses to control call flow. Your voice_callback_url returns a JSON array of verbs; the platform executes them in order against the live call.Wallet and BillingSautikit uses a prepaid wallet model denominated in KES. Every charge (call cost, number rental) creates an immutable ledger entry. Calls and rentals are blocked when the wallet reaches zero.WebhooksSautikit webhooks deliver signed JSON payloads to your HTTPS endpoint. Delivery is at-least-once with an 8-attempt exponential backoff schedule. Verify the HMAC-SHA256 signature on every request.WorkspacesA workspace is the billing and access boundary in Sautikit. Numbers, wallet, API keys, and call records belong to one workspace. Members hold an owner or member role granted via email invitation.