Add RemSound V2 Support #2

Closed
opened 2026-09-28 00:16:44 -07:00 by serrebi · 4 comments
Owner

If feasible, consider adding the newly released V2 relay support so the add-on can join a group of RemSound devices on the new relay server.

If feasible, consider adding the newly released V2 relay support so the add-on can join a group of RemSound devices on the new relay server. <!-- forgejo-github-sync: issue github=serrebidev/NVDARemoteAudioClient#6 -->
Author
Owner

Thanks for the suggestion — this is a reasonable fit. The add-on already speaks the RemSound protocol for peer-to-peer links, so joining the V2 relay would be a new connection mode alongside the existing peer-to-peer and NVDARemoteAudioServer relay options, not a rewrite.

To scope it correctly: is the V2 relay protocol documented anywhere (repo, spec, or wire format), and does it keep the same audio framing/encryption handshake as V1? A link to the RemSound V2 release notes or protocol docs would help. No timeline promised — this is parked as an enhancement for now.

Thanks for the suggestion — this is a reasonable fit. The add-on already speaks the RemSound protocol for peer-to-peer links, so joining the V2 relay would be a new connection mode alongside the existing peer-to-peer and NVDARemoteAudioServer relay options, not a rewrite. To scope it correctly: is the V2 relay protocol documented anywhere (repo, spec, or wire format), and does it keep the same audio framing/encryption handshake as V1? A link to the RemSound V2 release notes or protocol docs would help. No timeline promised — this is parked as an enhancement for now. <!-- forgejo-github-sync: comment github=serrebidev/NVDARemoteAudioClient#6/5873267704 -->
Author
Owner

I believe this document can help with V2 support.
https://github.com/Ednunp/RemSound/blob/v6.0/server/RELAY-GROUPS.md

I believe this document can help with V2 support. https://github.com/Ednunp/RemSound/blob/v6.0/server/RELAY-GROUPS.md <!-- forgejo-github-sync: comment github=serrebidev/NVDARemoteAudioClient#6/5873687805 -->
Author
Owner

Group calls through a RemSound V2 relay are implemented and committed to main (5ae1537), released as 0.2.11.

How it works, per server/RELAY-GROUPS.md:

  • Joining. Put the relay's address in the new "RemSound relay for group calls" setting and connect with Send and receive at the same time (RemSound). This computer sends the relay a hello (type 6) in group framing every 2 seconds — ordinary header with version 2, then its 16-byte client id, then the untouched payload — and a bye (type 9) when the connection closes. The name is 32-byte UTF-8, cut on a character boundary.
  • Identity. The client id is 16 random bytes picked once per installation and kept, never all zero, so the other devices keep recognizing this computer after a restart.
  • Rosters. The relay's member lists (type 7, both the 49-byte current and 48-byte legacy entries) switch group behavior on; it stays on only while a list arrived in the last 5 seconds, otherwise everything falls back to device-to-device. A "relay full" (type 8) reports how many of how many places are taken. Each member gets its own address in 240.0.0.0/5, so streams, names and health are keyed per person; a member that leaves has its streams dropped at once.
  • Ticking. NVDA menu > Tools > NVDA Remote Audio > Choose RemSound relay members opens a checklist. Ticking works both ways, like the phone app: the relay only forwards between members that ticked each other, and the helper also refuses audio and volume commands from anyone not ticked. A member marked "has ticked you" already has. Leaving the tick list off hears everyone (the legacy 40-byte hello); an explicit empty list hears nobody. Changing the encryption password drops the saved ticks — a new password is a new group on the relay.
  • Old and new together. Heartbeats go out in ordinary form too, so a phone or an older app holding one of the relay's pair slots keeps working, and while that slot is held the audio also goes out once in ordinary form in the default hear-everyone mode. The relay's address check (type 10) is echoed verbatim, never in group framing. Pongs are only counted when they answer this computer's own recent ping.

The 0.2.11 release is drafted with the notes; the remoteAudioClient-0.2.11.nvda-addon binary follows once it is built on Windows.

Group calls through a RemSound V2 relay are implemented and committed to main (5ae1537), released as **0.2.11**. How it works, per server/RELAY-GROUPS.md: - **Joining.** Put the relay's address in the new "RemSound relay for group calls" setting and connect with Send and receive at the same time (RemSound). This computer sends the relay a hello (type 6) in group framing every 2 seconds — ordinary header with version 2, then its 16-byte client id, then the untouched payload — and a bye (type 9) when the connection closes. The name is 32-byte UTF-8, cut on a character boundary. - **Identity.** The client id is 16 random bytes picked once per installation and kept, never all zero, so the other devices keep recognizing this computer after a restart. - **Rosters.** The relay's member lists (type 7, both the 49-byte current and 48-byte legacy entries) switch group behavior on; it stays on only while a list arrived in the last 5 seconds, otherwise everything falls back to device-to-device. A "relay full" (type 8) reports how many of how many places are taken. Each member gets its own address in 240.0.0.0/5, so streams, names and health are keyed per person; a member that leaves has its streams dropped at once. - **Ticking.** NVDA menu > Tools > NVDA Remote Audio > Choose RemSound relay members opens a checklist. Ticking works both ways, like the phone app: the relay only forwards between members that ticked each other, and the helper also refuses audio and volume commands from anyone not ticked. A member marked "has ticked you" already has. Leaving the tick list off hears everyone (the legacy 40-byte hello); an explicit empty list hears nobody. Changing the encryption password drops the saved ticks — a new password is a new group on the relay. - **Old and new together.** Heartbeats go out in ordinary form too, so a phone or an older app holding one of the relay's pair slots keeps working, and while that slot is held the audio also goes out once in ordinary form in the default hear-everyone mode. The relay's address check (type 10) is echoed verbatim, never in group framing. Pongs are only counted when they answer this computer's own recent ping. The 0.2.11 release is drafted with the notes; the `remoteAudioClient-0.2.11.nvda-addon` binary follows once it is built on Windows. <!-- forgejo-github-sync: comment github=serrebidev/NVDARemoteAudioClient#6/5874209255 -->
Author
Owner

Shipped in v0.2.11: a RemSound relay on server v2.9+ can now carry a group of up to 64 devices sharing one encryption password, with the NVDA menu checklist to pick relay members. Closing as implemented.

Shipped in v0.2.11: a RemSound relay on server v2.9+ can now carry a group of up to 64 devices sharing one encryption password, with the NVDA menu checklist to pick relay members. Closing as implemented. <!-- forgejo-github-sync: comment github=serrebidev/NVDARemoteAudioClient#6/5931487144 -->
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
serrebi/NVDARemoteAudioClient#2
No description provided.