voistr¶
voistr (pronounced like: VOYST-er) is an experimental nostr p2p softphone and real-time communication agent. It uses nostr relays to exchange encrypted WebRTC signaling messages.
How it works¶
-
Peers connect to some nostr relays which accept encrypted NIP-44 events, and send an event to join a room.
-
Peers send NIP-44 encrypted events containing the WebRTC offers and ICE candidates. This is the handshake, made possible by the nostr relays which act as WebRTC signaling servers.
-
Once the offer is accepted, the WebRTC connection is established. A data channel is opened, as well as media tracks to exchange encoded (OPUS) audio data. The data channel is used for the voistr protocol, which uses NIP-44 seal events with JSON payloads.
Notes¶
- voistr depends on libopus. You need to install libopus on your system to run the application (and libopus-dev for compilation).