media server logo
Dokumentationsnavigation ein- oder ausblenden
Callaba-Startseite

Videoanrufe

Verwenden Sie Videoanrufe, um browserbasierte WebRTC-Räume für entfernte Gäste, Panels, Webinare und Audioanrufe zu erstellen. Steuern Sie Teilnehmerberechtigungen und geben Sie sichere Join-Token aus.

FunktionVideoraum im Browser erstellen

Geeignet, wennRemote-Gäste benötigen einen WebRTC-Raum im Browser und sichere Teilnehmer-Token.

Anderes Modul verwenden, wennVerwenden Sie RTMP- oder SRT-Server für Encoder-Contribution und ein nachgelagertes Modul für Aufzeichnung oder NDI-Ausgabe.

1Raum erstellen2Beitritts-Token ausgeben3Im Browser beitreten
POST /api/conferences/create
11 Endpunkte

Voraussetzungen

Verwenden Sie x-access-token für Methoden zur Raumkonfiguration und Lifecycle-Steuerung. Führen Sie diese API-Aufrufe ausschließlich im Backend aus. Für den Beitritt im Browser werden die dokumentierte Raumabfrage und das dabei ausgegebene Teilnehmer-Token verwendet.

Funktionen

  • create, update, getAll, getCount und getById verwalten Räume.
  • start und stop steuern die Verfügbarkeit eines Raums.
  • findLKRoomNameById löst den aktiven Raumnamen und unterstützte Raumflags auf.
  • createToken gibt ein Teilnehmer-Beitritts-Token aus.
  • updateGlobalConfiguration ändert instanzweite WebSocket- und TURN-Konnektivität.
  • remove löscht einen Raum.

Beispiel-Workflow

  1. Erstellen Sie einen Raum mit Medientyp, Teilnehmerlimit, Webinar, Chat, Bildschirmfreigabe und Aufzeichnungseinstellungen.
  2. Starten Sie den Raum, bevor die Mitwirkenden ankommen.
  3. Lösen Sie den aktiven Raumnamen mit findLKRoomNameById.
  4. Geben Sie ein Teilnehmer-Token in der Nähe der Beitrittszeit aus.
  5. Treten Sie im Browser mit dem ermittelten Raumnamen und dem Token bei.

Typische Anwendungsfälle

  • Bringen Sie einen Remote-Interview-Gast in eine Live-Produktion.
  • Führen Sie ein Webinar mit eingeschränktem Publikumsverhalten durch.
  • Erstellen Sie einen Audio-Briefing-Raum mit geringer Bandbreite für Außendienstteams.

Einschränkungen und Fehlerbehebung

Geben Sie keine Token zur Raumsteuerung im Browsercode aus. Erzeugen Sie Teilnehmer-Token nur für autorisierte Benutzer und möglichst kurz vor dem vorgesehenen Beitritt. TURN, sichere WebSocket-Verbindungen, Firewall-Regeln, Browserberechtigungen und die Teilnehmerkapazität können den Beitritt beeinflussen.

Nächste Schritte

Verwenden Sie den Raum oder einen einzelnen Teilnehmer als Eingabe für einen NDI-Adapter, eine Aufzeichnung oder einen anderen unterstützten Ausgabe-Workflow.

REST-Lösungsrezept

Einen Browser-Video-Raum mit Teilnehmer-Token bereitstellen

Erstellen und starten Sie den verwalteten Raum und stellen Sie anschließend ein Teilnehmer-Token für den öffentlichen Beitritt aus, ohne das Management-Token offenzulegen.

  1. Raum erstellenLegen Sie Raumidentität, Teilnehmerregeln, Medienoptionen und Anfangsstatus fest.POST /api/conferences/create
  2. Raum startenStarten Sie den verwalteten Raum, bevor Sie Zugangsdaten an Teilnehmer senden.POST /api/conferences/start
  3. Teilnehmer-Token ausstellenErstellen Sie das Browser-Token über einen vertrauenswürdigen Anwendungsdienst.POST /api/conferences-public/createToken

Bewahren Sie das Management-Token in einem vertrauenswürdigen Backend auf. Stellen Sie Teilnehmer-Tokens nur mit benötigter Raumidentität und Berechtigung aus.

POST
/api/conferences/create
API-Token erforderlich

Erstellt einen neuen verwalteten Videoanrufraum in Callaba Engine.

Die Methode legt das Raumobjekt an, das der Browser für den Beitritt benötigt. Der Request-Body beschreibt Raumrichtlinien statt Transportdetails: Medienmodus, Teilnehmerzahl, Webinar-Einschränkungen, Chat, Bildschirmfreigabe, Aufzeichnung und den anfänglichen Aktivstatus.

Voreingestellte Beispiele decken typische Muster ab: Teamräume, Webinar-Räume, reine Audioräume und aufgezeichnete Räume mit sprecherorientierter Ausgabe.

Typische Anwendungsfälle

  • Erstellen Sie einen stabilen Raum im Browser für Sprecher und Gäste.
  • Bereiten Sie einen Webinar-Raum vor, bevor die Veranstaltung beginnt.
  • Definieren Sie einen aufgezeichneten Raum mit dem benötigten Compositing-Layout.
Standard-Teamraum

Verwenden Sie dies, wenn ein kleines oder mittleres Team mit Audio, Video, Chat und Bildschirmfreigabe beitreten soll.

Standard-Teamraum
Code kopieren
curl --request POST \
--url http://localhost/api/conferences/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Team standup room",
"mediaType": "MEDIA_TYPE_VIDEO_AUDIO",
"max_participants": 20,
"allow_webinar_mode": false,
"allow_chat": true,
"allow_share_screen": true,
"record": false,
"record_mode": "ROOM_COMPOSITE_GRID",
"active": true
}'
Webinar-Raum

Verwenden Sie dies, wenn der Raum den Gast- oder Nur-Anzeige-Modus unterstützen soll, während Sprecherrechte gezielt gesteuert werden.

Webinar-Raum
Code kopieren
curl --request POST \
--url http://localhost/api/conferences/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Guest webinar room",
"mediaType": "MEDIA_TYPE_VIDEO_AUDIO",
"max_participants": 200,
"allow_webinar_mode": true,
"allow_chat": true,
"allow_share_screen": false,
"record": false,
"record_mode": "ROOM_COMPOSITE_GRID",
"active": true
}'
Reiner Audioraum

Verwenden Sie diese Voreinstellung für Audio-Briefings oder ressourcenschonende Diskussionsräume.

Reiner Audioraum
Code kopieren
curl --request POST \
--url http://localhost/api/conferences/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Audio briefing room",
"mediaType": "MEDIA_TYPE_AUDIO_ONLY",
"max_participants": 50,
"allow_webinar_mode": false,
"allow_chat": true,
"allow_share_screen": false,
"record": false,
"record_mode": "ROOM_COMPOSITE_GRID",
"active": true
}'
Aufgezeichneter Sprecherraum

Verwenden Sie dies, wenn der Raum später als Eingang für einen Workflow zur Compositing-Ausgabe dienen soll und die Aufzeichnung Teil der Raumrichtlinie ist.

Aufgezeichneter Sprecherraum
Code kopieren
curl --request POST \
--url http://localhost/api/conferences/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Recorded speaker room",
"mediaType": "MEDIA_TYPE_VIDEO_AUDIO",
"max_participants": 50,
"allow_webinar_mode": true,
"allow_chat": true,
"allow_share_screen": true,
"record": true,
"record_mode": "ROOM_COMPOSITE_SPEAKER",
"active": true
}'
Parameter im Request-Body
Identität
name
string
Direktlink kopieren

Dashboard-Bezeichnung: Raumname.

Gut lesbarer Raumname. Das Dashboard validiert dieses Feld und verwendet dieselben Zeichenregeln wie andere Produktbereiche: A-Z, a-z, 0-9 und -.

Medien und Zugang
mediaType
string
Direktlink kopieren

Dashboard-Bezeichnung: Medientyp.

Unterstützte Raummodi sind MEDIA_TYPE_VIDEO_AUDIO, MEDIA_TYPE_VIDEO_ONLY und MEDIA_TYPE_AUDIO_ONLY.

max_participants
integer
Direktlink kopieren

Dashboard-Bezeichnung: Maximale Teilnehmerzahl.

Maximale Anzahl von Teilnehmern, die gleichzeitig an der Besprechung teilnehmen dürfen.

allow_webinar_mode
boolean
Direktlink kopieren

Steuert, ob der Raum das Verhalten von Gästen im Webinar-Stil zusätzlich zum Lautsprecherpfad unterstützen soll.

allow_chat
boolean
Direktlink kopieren

Steuert, ob der Chat im Browserraum verfügbar ist.

allow_share_screen
boolean
Direktlink kopieren

Steuert, ob Sprecher ihren Bildschirm im Raum teilen dürfen.

Aufzeichnung
record
boolean
Direktlink kopieren

Steuert, ob Aufzeichnungen für den Raum aktiviert sind.

record_mode
string
Direktlink kopieren

Unterstützte Werte sind ROOM_COMPOSITE_GRID, ROOM_COMPOSITE_AND_CHAT und ROOM_COMPOSITE_SPEAKER.

Laufzeit
active
boolean
Direktlink kopieren

Dashboard-Bezeichnung: Aktiviert.

Steuert, ob der Raum direkt nach der Bereitstellung aktiv sein soll.

Videoanrufraum erstellen
Code kopieren
curl --request POST \
--url http://localhost/api/conferences/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Main stage room",
"mediaType": "MEDIA_TYPE_VIDEO_AUDIO",
"max_participants": 50,
"allow_webinar_mode": true,
"allow_chat": true,
"allow_share_screen": true,
"record": false,
"record_mode": "ROOM_COMPOSITE_GRID",
"active": true
}'
Antwort
Identität
_id
string
Direktlink kopieren

Ressourcen-ID, die beim Erstellen oder Auflisten des Video-Call-Raums zurückgegeben wird.

id
string
Direktlink kopieren

Kurzform für _id.

name / user_id
mixed
Direktlink kopieren

Gespeicherter Raumname und Benutzer-ID.

Medien und Zugang
mediaType / max_participants
mixed
Direktlink kopieren

Medienmodus und Teilnehmerlimit, die auf dem Raumobjekt gespeichert sind.

allow_webinar_mode / allow_chat / allow_share_screen
mixed
Direktlink kopieren

Raumweite Optionen für Teilnehmer und Gäste, die mit dem Raumobjekt zurückgegeben werden.

Aufzeichnung
record / record_mode
mixed
Direktlink kopieren

Aufzeichnungsstatus und der für den Raum gespeicherte Compositing-Modus.

Laufzeit
sid / active / created / modified
mixed
Direktlink kopieren

Raumstatus und Zeitstempel, die in der Antwort enthalten sind.

Betriebsergebnis
success
boolean
Direktlink kopieren

Bei erfolgreicher Ausführung enthält die Antwort success: true.

Antwort: Videoanrufraum erstellen
JSON
Code kopieren
{
"_id": "69f013c1aa11bb22cc33dd44",
"id": "69f013c1aa11bb22cc33dd44",
"name": "Main stage room",
"user_id": "69360341db559495f643de6a",
"mediaType": "MEDIA_TYPE_VIDEO_AUDIO",
"allow_webinar_mode": true,
"allow_chat": true,
"allow_share_screen": true,
"record": false,
"record_mode": "ROOM_COMPOSITE_GRID",
"max_participants": 50,
"sid": "RM_x7h6k4example",
"active": true,
"created": "2026-03-24T16:00:00.000Z",
"modified": "2026-03-24T16:00:00.000Z",
"success": true
}
POST
/api/conferences/getCount
API-Token erforderlich
POST
/api/conferences/getAll
API-Token erforderlich
POST
/api/conferences/getById
API-Token erforderlich
POST
/api/conferences/update
API-Token erforderlich
POST
/api/conferences/updateGlobalConfiguration
API-Token erforderlich
POST
/api/conferences/start
API-Token erforderlich
POST
/api/conferences/stop
API-Token erforderlich
DELETE
/api/conferences/remove
API-Token erforderlich
POST
/api/conferences-public/findLKRoomNameById
Öffentlicher Endpunkt
POST
/api/conferences-public/createToken
Öffentlicher Endpunkt