When a client connects to the signaling server for an event (calendar-based) room before any call is active, HPB creates a Janus VideoRoom for that session. When the moderator starts the call and HPB establishes a new Janus VideoRoom for the same participant, the original pre-call room is never terminated — leaving two simultaneous publishers active for the same participant for the entire call duration.
Steps to reproduce
- Configure a Nextcloud Talk event room (calendar-linked, type 3) with no lobby
- Guest opens the room URL before the moderator starts the call — Talk client connects to HPB and HPB creates Janus VideoRoom A
- Moderator starts the call; HPB creates Janus VideoRoom B for the guest's active session
- Call runs normally, recording is enabled
- Inspect Janus MJR output — two simultaneous audio streams exist for the guest
Expected behaviour
HPB should not create a Janus VideoRoom until the client's incall flag is set. If a pre-call room already exists when a new one is created for the same session, the old room must be explicitly terminated.
Actual behaviour
Two Janus VideoRooms for the same participant remain active simultaneously throughout the call. Evidence from MJR timestamps and Nextcloud DB:
| Time (relative to call_started) |
Event |
| −02:52 |
Guest Janus VideoRoom A created (signaling connect, no call active, no call_started in DB) |
| 00:00 |
Moderator → call_started system message |
| +00:27 |
Guest Janus VideoRoom B created; call_joined in DB |
| +32:00 |
Both rooms still active; call ends |
Environment
- nextcloud-spreed-signaling:
c21c347
- Nextcloud Talk: 23.0.5
- Janus WebRTC Gateway: 1.4.0
- Room type: event/scheduled (type 3)
When a client connects to the signaling server for an event (calendar-based) room before any call is active, HPB creates a Janus VideoRoom for that session. When the moderator starts the call and HPB establishes a new Janus VideoRoom for the same participant, the original pre-call room is never terminated — leaving two simultaneous publishers active for the same participant for the entire call duration.
Steps to reproduce
Expected behaviour
HPB should not create a Janus VideoRoom until the client's incall flag is set. If a pre-call room already exists when a new one is created for the same session, the old room must be explicitly terminated.
Actual behaviour
Two Janus VideoRooms for the same participant remain active simultaneously throughout the call. Evidence from MJR timestamps and Nextcloud DB:
call_startedin DB)call_startedsystem messagecall_joinedin DBEnvironment
c21c347