laravel-webrtc/tests
Blax Software 1be40ba59c feat: full package — typed rooms (public/private/presence/open-presence) + call recording
Rooms
- Rooms\RoomType derived from the name prefix (like laravel-websockets channels):
  public, private-* (authorized), presence-* (authorized + member list),
  open-presence-* (public + member list). Room/RoomManager carry per-member info.
- Contracts\RoomAuthorizer + secure DefaultRoomAuthorizer (denies private/presence
  until the host binds one). Presence rooms broadcast the member list + info.

Recording (store the FULL call audio, in PHP, today)
- Pure-P2P audio is DTLS-SRTP end-to-end, so the server can't capture it. Instead
  the browser MediaRecords its mic and streams chunks over the WS as BINARY frames
  (needs the new laravel-ws onBinary); RelaySignalingHandler appends them per
  participant via a RecordingStore. Recording\FileRecordingStore -> <room>/<peer>.webm.
  welcome/joined carry a record flag telling the client to stream.
- Contracts\CallEventListener call-log seam (peer/room/recording lifecycle) so calls
  are auditable even when unrecorded.

Wiring
- RelaySignalingHandler(authorizer, recorder, events); webrtc:serve + provider +
  config/webrtc.php (recording enabled/path/format, authorizer, events).

Tests 35/99 incl on-disk FileRecordingStore, presence member lists, auth gating,
binary recording+finalize+events, RoomType, and the real WS round-trip. README
documents room types + the browser MediaRecorder->WS recording flow.

rel learn-atc #1060 #1055 #1057 #1051

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 09:01:12 +02:00
..
Fixtures feat: full package — typed rooms (public/private/presence/open-presence) + call recording 2026-07-08 09:01:12 +02:00
FileRecordingStoreTest.php feat: full package — typed rooms (public/private/presence/open-presence) + call recording 2026-07-08 09:01:12 +02:00
NullMediaEngineTest.php feat: WebRTC MVP to Blax standard (namespace, README, tests, scaffolding) 2026-07-07 13:28:49 +02:00
RelaySignalingHandlerTest.php feat: full package — typed rooms (public/private/presence/open-presence) + call recording 2026-07-08 09:01:12 +02:00
RoomManagerTest.php feat: multi-party rooms + real socket round-trip test 2026-07-07 13:54:36 +02:00
RoomTypeTest.php feat: full package — typed rooms (public/private/presence/open-presence) + call recording 2026-07-08 09:01:12 +02:00
SignalingHandlerTest.php feat: multi-party rooms + real socket round-trip test 2026-07-07 13:54:36 +02:00
SignalingServerTest.php feat: multi-party rooms + real socket round-trip test 2026-07-07 13:54:36 +02:00
WebSocketRelayServerTest.php feat: working browser-to-browser (P2P) MVP via WebSocket signaling relay 2026-07-08 08:35:02 +02:00