Documentation menu
Integrate VoxaRTC
VoxaRTC is a Flutter package that implements the agora_rtc_engine API against a VoxaRTC endpoint. You change a dependency, an import and one line of configuration; your call sites, event handlers and token server stay as they are.
Quickstart
A working call in about ten minutes, from an empty Flutter app to two devices talking.
Migrate from Agora
The three edits an existing Agora app needs, plus the dependency conflict you will hit.
Tokens & auth
Keep your token server. What VoxaRTC verifies, and how roles map onto publish rights.
API compatibility
Which agora_rtc_engine calls are implemented, which are partial, and which throw.
The mental model
Everything your app already does with Agora keeps working because the package is the Agora API — the same classes, signatures, enums and error codes, mirroring agora_rtc_engine 6.6.3. There is exactly one non-Agora line in a migrated app: VoxaRtc.serverUrl, pointing at your VoxaRTC endpoint.
When you call joinChannel, the SDK presents your Agora-format token to that endpoint, which verifies it against your app certificate and returns a short-lived credential for the media session. Your app then streams directly to the media server — the endpoint is not in the media path.
What you provide
| Piece | What it is | Changes needed |
|---|---|---|
voxa_rtc_engine | Flutter package from pub.dev, the Agora API surface | Swap the dependency and the import |
| Your token server | Whatever already mints your Agora tokens | Point it at your VoxaRTC App ID and certificate — or import the Agora ones you already use, and change nothing |
| VoxaRTC endpoint | The service your app connects to | One line: VoxaRtc.serverUrl |
What is and is not ready
Tier-1 and Tier-2 APIs — channel lifecycle, roles, mute, camera, routing, rendering, reconnection, token renewal, volume indication, encoder configuration, dual-stream, screen share, preview and stats — are implemented and verified against golden transcripts recorded from the live Agora service.
Media player, spatial audio, channel media relay, raw frame observers and RTM are not implemented. They throw AgoraRtcException(-4, errNotSupported) rather than failing silently, so an app that depends on them fails loudly at the call site. See API compatibility for the full matrix.