mirror of
https://github.com/cloudflare/cloudflare-docs.git
synced 2026-01-11 20:06:58 +00:00
docs(realtimekit): add concept page for Voice meetings (#27400)
This commit is contained in:
parent
26a9daf743
commit
0cee692eae
4 changed files with 90 additions and 35 deletions
|
|
@ -3,19 +3,23 @@ pcx_content_type: navigation
|
|||
title: FAQ
|
||||
slug: realtime/realtimekit/faq
|
||||
sidebar:
|
||||
order: 9
|
||||
order: 10
|
||||
---
|
||||
|
||||
import { Details } from "~/components";
|
||||
|
||||
<Details header="How can I generate the Cloudflare API Token?">
|
||||
|
||||
To use RealtimeKit APIs, you must have a [Cloudflare account](https://dash.cloudflare.com).
|
||||
|
||||
Follow the [Create API token guide](/fundamentals/api/get-started/create-token/) to create a new token via the [Cloudflare dashboard](https://dash.cloudflare.com/profile/api-tokens).
|
||||
When configuring permissions, ensure that **Realtime** / **Realtime Admin** permissions are selected.
|
||||
Configure any additional [access policies and restrictions](/fundamentals/api/reference/permissions/) as needed for your use case.
|
||||
|
||||
</Details>
|
||||
|
||||
### Meetings
|
||||
### Meetings
|
||||
|
||||
<Details header="Can I schedule meetings in advance with RealtimeKit?">
|
||||
|
||||
While RealtimeKit does not include a built-in scheduling system, you can implement the scheduling experience on top of it in your application.
|
||||
|
|
@ -30,29 +34,35 @@ A common approach is:
|
|||
</Details>
|
||||
|
||||
<Details header="How do I prevent participants from joining a meeting after a specific date or time?">
|
||||
You can disable the meeting at the required time by setting its status to `INACTIVE` using a `PATCH` request to the
|
||||
[Update Meeting](/api/resources/realtime_kit/subresources/meetings/methods/update_meeting_by_id/) endpoint.
|
||||
|
||||
This prevents participants from joining the meeting and prevents any new Sessions from starting.
|
||||
You can disable the meeting at the required time by setting its status to `INACTIVE` using a `PATCH` request to the
|
||||
[Update Meeting](/api/resources/realtime_kit/subresources/meetings/methods/update_meeting_by_id/) endpoint.
|
||||
|
||||
```bash
|
||||
This prevents participants from joining the meeting and prevents any new Sessions from starting.
|
||||
|
||||
```bash
|
||||
curl https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/realtime/kit/{APP_ID}/meetings/{MEETING_ID} \
|
||||
--request PATCH \
|
||||
--header "Authorization: Bearer <CLOUDFLARE_API_TOKEN>" \
|
||||
--header "Content-Type: application/json" \
|
||||
--data '{ "status": "INACTIVE" }'
|
||||
--request PATCH \
|
||||
--header "Authorization: Bearer <CLOUDFLARE_API_TOKEN>" \
|
||||
--header "Content-Type: application/json" \
|
||||
--data '{ "status": "INACTIVE" }'
|
||||
```
|
||||
|
||||
</Details>
|
||||
|
||||
### Participants
|
||||
|
||||
<Details header="How do I generate an auth token for a participant?">
|
||||
Your backend generates an authentication token by adding the user as a participant to a meeting with the [Add Participant](/api/resources/realtime_kit/subresources/meetings/methods/add_participant/) API endpoint.
|
||||
The API response includes a `token` field, which is the authentication token for that participant in that meeting.
|
||||
|
||||
If you need a new token for an existing participant after the previous token has expired, use the [Refresh Participant Token](/api/resources/realtime_kit/subresources/meetings/methods/refresh_participant_token/) endpoint.
|
||||
|
||||
For more details, see [Participant tokens](/realtime/realtimekit/concepts/participant/#participant-tokens).
|
||||
Your backend generates an authentication token by adding the user as a
|
||||
participant to a meeting with the [Add
|
||||
Participant](/api/resources/realtime_kit/subresources/meetings/methods/add_participant/)
|
||||
API endpoint. The API response includes a `token` field, which is the
|
||||
authentication token for that participant in that meeting. If you need a new
|
||||
token for an existing participant after the previous token has expired, use
|
||||
the [Refresh Participant
|
||||
Token](/api/resources/realtime_kit/subresources/meetings/methods/refresh_participant_token/)
|
||||
endpoint. For more details, see [Participant
|
||||
tokens](/realtime/realtimekit/concepts/participant/#participant-tokens).
|
||||
</Details>
|
||||
|
||||
<Details header="Can the same user join from multiple devices or browser tabs?">
|
||||
|
|
@ -64,9 +74,8 @@ curl https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/realtime/kit/{AP
|
|||
<Details header="How can I prevent a user from joining a meeting again?">
|
||||
Delete that user's participant for the meeting using the [Delete
|
||||
Participant](/api/resources/realtime_kit/subresources/meetings/methods/delete_meeting_participant/)
|
||||
API endpoint.
|
||||
|
||||
Once the participant is deleted and you stop issuing new tokens for them, they will no longer be able to join that meeting.
|
||||
API endpoint. Once the participant is deleted and you stop issuing new tokens
|
||||
for them, they will no longer be able to join that meeting.
|
||||
</Details>
|
||||
|
||||
<Details header="Can the same participant join multiple sessions of a meeting?">
|
||||
|
|
@ -91,19 +100,23 @@ curl https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/realtime/kit/{AP
|
|||
### Presets
|
||||
|
||||
<Details header="Do I need a new preset for every meeting or participant?">
|
||||
|
||||
Presets are **re-usable** set of rules and configurations that are defined at the App level. You can use the same preset for multiple participants.
|
||||
|
||||
|
||||
Read more about presets [here](/realtime/realtimekit/concepts/preset/).
|
||||
|
||||
</Details>
|
||||
|
||||
### Client Side SDKs
|
||||
|
||||
<Details header="How do I decide which SDK to select?">
|
||||
|
||||
RealtimeKit support all the popular frameworks for web and mobile platforms.
|
||||
|
||||
We **recommend using our UI Kits** For most use cases.
|
||||
|
||||
Please Note: When you use our UI Kit, you also get the core SDK with it, which can be used to build additional features based on your needs.
|
||||
We **recommend using our UI Kits** For most use cases.
|
||||
|
||||
Please Note: When you use our UI Kit, you also get the core SDK with it, which can be used to build additional features based on your needs.
|
||||
|
||||
For more information please refer to our [SDK Selection Guide](/realtime/realtimekit/sdk-selection/)
|
||||
|
||||
For more information please refer to our [SDK Selection Guide](/realtime/realtimekit/sdk-selection/)
|
||||
</Details>
|
||||
|
|
|
|||
|
|
@ -3,20 +3,20 @@ pcx_content_type: content
|
|||
title: Pricing
|
||||
slug: realtime/realtimekit/pricing
|
||||
sidebar:
|
||||
order: 10
|
||||
order: 11
|
||||
---
|
||||
|
||||
Cloudflare RealtimeKit is currently in Beta and is available at no cost during this period.
|
||||
|
||||
When RealtimeKit reaches general availability (GA), usage will be charged according to the pricing model below:
|
||||
|
||||
| Feature | Price |
|
||||
| --- | --- |
|
||||
| Audio/Video Participant | $0.002 / minute |
|
||||
| Audio-Only Participant | $0.0005 / minute |
|
||||
| Export (recording, RTMP or HLS streaming) | $0.010 / minute |
|
||||
| Export (recording, RTMP or HLS streaming, audio only) | $0.003 / minute |
|
||||
| Export (Raw RTP) into R2 | $0.0005 / minute |
|
||||
| Transcription (Real-time) | Standard model pricing via Workers AI |
|
||||
| Feature | Price |
|
||||
| ----------------------------------------------------- | ------------------------------------- |
|
||||
| Audio/Video Participant | $0.002 / minute |
|
||||
| Audio-Only Participant | $0.0005 / minute |
|
||||
| Export (recording, RTMP or HLS streaming) | $0.010 / minute |
|
||||
| Export (recording, RTMP or HLS streaming, audio only) | $0.003 / minute |
|
||||
| Export (Raw RTP) into R2 | $0.0005 / minute |
|
||||
| Transcription (Real-time) | Standard model pricing via Workers AI |
|
||||
|
||||
Whether a participant is an audio-only participant or an audio/video participant is determined by the `Meeting Type` of their [preset](/realtime/realtimekit/concepts/preset/).
|
||||
Whether a participant is an audio-only participant or an audio/video participant is determined by the `Meeting Type` of their [preset](/realtime/realtimekit/concepts/preset/).
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ title: REST API Reference
|
|||
slug: realtime/realtimekit/rest-api-reference
|
||||
external_link: /api/resources/realtime_kit/
|
||||
sidebar:
|
||||
order: 12
|
||||
order: 13
|
||||
badge:
|
||||
text: API
|
||||
variant: note
|
||||
|
|
|
|||
42
src/content/docs/realtime/realtimekit/voice-meetings.mdx
Normal file
42
src/content/docs/realtime/realtimekit/voice-meetings.mdx
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
title: Voice meetings
|
||||
pcx_content_type: concept
|
||||
slug: realtime/realtimekit/voice-meetings
|
||||
sidebar:
|
||||
order: 9
|
||||
---
|
||||
|
||||
RealtimeKit supports voice meetings, allowing you to build audio-only experiences such as audio rooms, support lines, or community hangouts.
|
||||
In these meetings, participants use their microphones and hear others, but cannot use their camera. Voice meetings reduce bandwidth requirements and focus on audio communication.
|
||||
|
||||
## How voice meetings work
|
||||
|
||||
A participant’s meeting experience is determined by the **Preset** applied to that participant.
|
||||
To run a voice meeting, ensure all participants join with a Preset that has meeting type set to `Voice`.
|
||||
|
||||
For details on Presets and how to configure them, refer to [Preset](/realtime/realtimekit/concepts/preset/).
|
||||
|
||||
## Pricing
|
||||
|
||||
When a participant joins with a `Voice` meeting type Preset, they are considered an **Audio-Only Participant** for billing. This is different from the billing for Audio/Video Participants.
|
||||
|
||||
For detailed pricing information, refer to [Pricing](/realtime/realtimekit/pricing/).
|
||||
|
||||
## Building voice experiences
|
||||
|
||||
You can build voice meeting experiences using either the UI Kit or the Core SDK.
|
||||
|
||||
### UI Kit
|
||||
|
||||
UI Kit provides a pre-built meeting experience with customization options.
|
||||
|
||||
When participants join with a `Voice` meeting type Preset, UI Kit automatically renders a voice-only interface.
|
||||
You can use the default meeting UI or build your own UI using UI Kit components.
|
||||
|
||||
To get started, refer to [Build using UI Kit](/realtime/realtimekit/ui-kit/).
|
||||
|
||||
### Core SDK
|
||||
|
||||
Core SDK provides full control to build custom audio-only interfaces. Video-related APIs are non-functional for participants with `Voice` type Presets.
|
||||
|
||||
To get started, refer to [Build using Core SDK](/realtime/realtimekit/core/).
|
||||
Loading…
Add table
Reference in a new issue