사이드바에서 룸을 클릭하여 참가하고, 다시 클릭하여 나갑니다. 기본적으로 모든 미디어는 WebRTC를 통해 P2P로 전송되며, Discourse 서버는 시그널링만 처리하고 미디어는 처리하지 않습니다. 더 큰 규모의 통화가 필요한 사이트는 LiveKit 미디어 서버(라이브킷 클라우드 또는 셀프호스팅)를 통해 룸을 라우팅할 수 있습니다. 설치 시 커뮤니티가 즉시 대화를 시작할 수 있도록 기본 “Watercooler” 룸이 생성됩니다.
주요 기능
사이드바 중심 UX — Discord 스타일처럼 사이드바에 룸과 실시간 참가자 아바타를 표시하며, 말하고 있는 사용자를 나타내는 애니메이션 인디케이터를 제공합니다
비디오 및 화면 공유 — 전체 룸 페이지, 타일/프레젠테이션 레이아웃, 전체 화면 지원을 갖춘 선택적 카메라 비디오 및 화면/탭 공유
영속적 통화 위젯 — 포럼을 둘러보는 동안 따라다니는 도킹형, 크기 조절 가능한 미니 통화 위젯(비디오 포함)
음성 및 비디오 설정 — 기기 선택기, 실시간 마이크 테스트, 입력 감도 게이트, WebAssembly 노이즈 서프레션(DTLN), MediaPipe 배경 흐림 — 모두 브라우저에서 로컬로 처리됩니다
룸 채팅 — 각 룸은 실제 Discourse 채팅 채널과 스레드를 기반으로 한 텍스트 채팅을 제공합니다
스테이지 룸 — AMA 및 커뮤니티 콜을 위해 발언 요청 대기열이 있는 발표자/청중용 룸
룸 권한 — 공개, 그룹 제한, 비공개 룸을 지원하며, 사이드바에 잠금 배지와 룸 해시태그를 제공하여 게시물에서 룸을 링크할 수 있습니다
참가자 제어 — 사용자별 볼륨, 음소거, 귀 막기, 추방 기능을 가진 컨텍스트 메뉴; AFK 자동 음소거/연결 해제 및 자동 사용자 상태 제공
룸 관리 — 그룹 기반 사용자 룸 생성 제한, 스태프 CRUD UI, 프로그래매틱 제어를 위한 완전한 REST API
기본 인프라 제로 — SFU/MCU 없이 DTLS-SRTP 암호화를 사용하는 순수 브라우저 WebRTC
선택적 LiveKit 통합 — 개별 룸을 옵트인하거나 대규모 통화를 위해 모든 것을 LiveKit Cloud 또는 자체 LiveKit 서버를 통해 라우팅할 수 있으며, 관리자 헬스 패널과 웹훅 기반 조정 기능을 제공합니다
상태
수 주 동안 내부 회의용으로 사용해 왔으며, 소규모 그룹에서는 매우 잘 작동합니다. 더 큰 그룹은 LiveKit와 함께 배포하는 것이 좋지만, 최대 10명까지의 일반적인 크기는 기본 메시 구성에서 매우 잘 작동합니다.
This is quite awesome Falco ! I can see quite a few applications for this being what you have listed. Feature plugins like this definitely helps make Discourse Meta the goto platform!
I’ve been having a play with this for a few days - and it is brilliant!!!
It solves the problem of easy ‘upgrading’ a forum/chat discussion into a verbal conversation beautifully. I’ve had years of struggling between the need to switch to other platforms, or having resource-heavy (attempts at) integrated video conferencing.
If you decide to take it further, I’d love it to be designed to integrate with chat. It would be simply sublime to be able to launch a private Voice room for the members of a chat directly from the chat (with a tidy up afterwards to keep things clean). And the chat would remain as the perfect place to drop in additional comments, files, links, etc.
Icing on the cake would of course be:
An option for video (likely not possible technically with such a lightweight tech)
AI transcription, clever enough to integrate related topics and chat. This would be absolutely amazing as a meeting scribe.
// Put this in the JS tab or in /javascripts/discourse/api-initializers/...
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer(api => {
api.replaceIcon("microphone-lines", "bottle-water");
});
/* Flip the bottle-water icon upside down in Resenha sidebar - put in Common*/
.sidebar-section.sidebar-section-wrapper [class*="d-icon-microphone-lines"] {
transform: rotate(180deg);
/* Optionally, tweak vertical alignment if needed */
display: inline-block;
}