WebMeet Specification

Real-time audio and video conferencing within the Ploinky ecosystem.

Overview

WebMeet is a video conferencing application built into Ploinky. It allows for real-time audio and video communication between multiple participants, creating a virtual meeting room directly in the browser. It is not just a text-based chat, but a full-fledged video meeting solution.

Features

  • Real-time Audio/Video: Utilizes WebRTC for high-quality, low-latency peer-to-peer communication.
  • Multi-user Sessions: Supports multiple participants in a single meeting room.
  • Participant Management: A dedicated panel lists all participants in the meeting.
  • Speaking Queue: A system for participants to request to speak, helping to moderate conversations.
  • Audio Controls: Participants can mute their own microphone and deafen (mute all incoming audio).
  • Broadcasting: "Go Live" functionality allows users to broadcast their audio and video to the room.

Usage

To start a WebMeet session, use the webmeet command:

ploinky webmeet

This will start the WebMeet server and provide a URL to access the meeting room. The URL will contain a token for authentication.

Joining a Meeting

To join a meeting, simply open the provided URL in your browser. You will be prompted to enter your name and grant access to your microphone and camera.

Moderation

WebMeet supports the concept of a moderator agent, which can have special privileges to control the meeting.

You can specify a moderator agent when starting the WebMeet server:

ploinky webmeet MyModeratorAgent

The moderator agent can be a custom agent you create to manage meetings, for example, by automatically muting participants, managing the speaking queue, or even transcribing the conversation.

Technology Stack

  • WebRTC: The core technology for real-time communication.
  • Node.js: The backend server for signaling and user management.
  • WebSocket: Used for signaling and communication between the clients and the server.
  • HTML/CSS/JavaScript: The frontend application that runs in the browser.