Orange Meets is a demo application built using Cloudflare Calls. To build your own WebRTC application using Cloudflare Calls, get started in the Cloudflare Dashboard.
Simpler examples can be found here.
Go to the Cloudflare Calls dashboard and create an application.
Put these variables into .dev.vars
CALLS_APP_ID=<APP_ID_GOES_HERE>
CALLS_APP_SECRET=<SECRET_GOES_HERE>
SESSION_SECRET=<SECRET_GOES_HERE>
The following variables are optional:
MAX_WEBCAM_BITRATE
(default1200000
): the maximum bitrate for each meeting participant's webcam.MAX_WEBCAM_FRAMERATE
(default:24
): the maximum number of frames per second for each meeting participant's webcam.MAX_WEBCAM_QUALITY_LEVEL
(default1080
): the maximum resolution for each meeting participant's webcam, based on the smallest dimension (i.e. the default is 1080p).TRANSCRIPTION_ENDPOINT
: URL for your speech-to-text provider.TRANSCRIPTION_TOKEN
: authentication token for the transcription service.
To customise these variables, place replacement values in .dev.vars
(for development) and in the [vars]
section of wrangler.toml
(for the deployment).
npm install
npm run dev
Open up http://127.0.0.1:8787 and you should be ready to go!
Compile the TypeScript tests and run them with Node's built-in test runner:
npm test
This command builds the tests into dist-tests
using tsc -p tsconfig.test.json
and then executes them via node --test
.
- Make sure you've installed
wrangler
and are logged in by running:
wrangler login
-
Update
CALLS_APP_ID
inwrangler.toml
to use your own Calls App ID -
You will also need to set the tokens as secrets by running:
wrangler secret put CALLS_APP_SECRET
wrangler secret put SESSION_SECRET
or to programmatically set the secrets, run:
echo REPLACE_WITH_YOUR_SECRET | wrangler secret put CALLS_APP_SECRET
echo REPLACE_WITH_YOUR_SESSION_SECRET | wrangler secret put SESSION_SECRET
-
Optionally, you can also use Cloudflare's TURN Service by setting the
TURN_SERVICE_ID
variable inwrangler.toml
andTURN_SERVICE_TOKEN
secret usingwrangler secret put TURN_SERVICE_TOKEN
-
Also optionally, you can include
OPENAI_MODEL_ENDPOINT
andOPENAI_API_TOKEN
to use OpenAI's Realtime API with WebRTC to invite AI to join your meeting. -
If you want live transcription, set
TRANSCRIPTION_ENDPOINT
andTRANSCRIPTION_TOKEN
. -
Finally you can run the following to deploy:
npm run deploy