RTC channel management
"RTC channels" in app details manages standalone audio/video channels, separate from the one-to-one and group calls under "Audio/video". For integrating them in your service, see the channel overview.
Requirements
Channels need all of the following:
- The app has turned on the audio/video policy.
- The platform's global channel switch is on, and channels haven't been turned off for this app specifically.
- Under the new billing model, the app has a positive audio/video minutes balance; before the switch-over, the plan's audio/video permission applies. Topping up another app, or topping up this app's plan funds, can't replace the audio/video balance.
The global switch, per-app switches and channel count limits are managed by the platform. Turning a channel switch off refuses creating channels, joining them and issuing tickets; sessions already in a channel can still send heartbeats, renew credentials and leave as the rules allow. But if the app becomes read-only, the policy is turned off, or media admission conditions are no longer met, renewal isn't guaranteed. To end a channel right away, click "Close" and wait for media cleanup to finish.
Permissions and actions
| Action | developer | admin / owner |
|---|---|---|
| Look up channels, sessions, active bans, stats and usage corrections | Yes | Yes |
| Create, edit and close channels, issue tickets, remove, ban and unban members | No | Yes |
Write actions also need console authentication and are written to the operation log; for the matching APIs, see Channel management, and which buttons actually show depends on the current page. The console can't collect a media token for joining on a user's behalf.
Looking up and acting
- Filter channels by status (
open,closing,closed) and see each one's name, media type, capacity, seats taken and recent media online state. - Open a channel's details to see current sessions; filter by
leftfor sessions that already ended. Sessions are kept for 90 days. - "Remove" ends a member's current session, and they can join again later; "Ban" revokes their unused tickets and starts removing them, and they can't join again.
- Unbanning must use the latest ban version, so an old request can't lift a newer ban; unbanning doesn't restore earlier tickets.
- After closing, the status first becomes
closing, meaning no new joins and cleanup not finished; once cleanup finishes it becomesclosed, and the channel can't be reopened.
media_state unknown or media_connected null means it isn't known yet whether the media is online, not that it's offline. seat_count includes reserved seats and seats still leaving, so the length of the member list or the online count can't stand in for the number of seats taken.
Stats and corrections
Daily stats are final, provisional, or not yet summarized; not yet summarized can't be treated as 0. Usage corrections show the proposed version, confirmed version, confirmed and target usage, and the registration voucher; confirmed means billing has accepted the correction, not that it's been billed or settled. See Usage and corrections.
In the platform admin, "Audio/video → RTC channel overview" gives a cross-app overview and the global channel switch; super admins can change the global switch directly after verifying their identity again, and the setting survives restarts. A single app's switch is under "IM data → Audio/video calls". In the cross-app overview you can find channels by tenant, app and status, then open the app details to act on them. The tenant console only shows your own apps.
Reconciling daily stats and the balance
The stats on this page describe channel participation, finalization and historical corrections. The new billing model converts based on the total video resolution each receiver actually receives, and channels and calls share the app's monthly standard minutes balance; seconds in a video channel without received video count as audio, rather than always using the video multiplier because the channel's media type is video. See Audio/video billing.
