voistr

voistr's avatar
voistr
npub1lcfn...n6vm
nostr p2p softphone
[0.1.9] - 2025-09-28 ### Added - UI to change the display language (english or french, spanish will be supported soon) - UI to change the theme. Supported theme engines: catppuccin and material m3 (material m3 is the default now) - UI slider to change the UI scale (pixels per point) - Support for password-protected nostr keys (new nostr keys mgr) - Imported keys are password-protected by default - Peers page: show disconnected peers in a collapsing list
[0.1.9] - 2025-09-28 ### Added - UI to change the display language (english or french, spanish will be supported soon) - UI to change the theme. Supported theme engines: catppuccin and material m3 (material m3 is the default now) - UI slider to change the UI scale (pixels per point) - Support for password-protected nostr keys (new nostr keys mgr) - Imported keys are password-protected by default - Peers page: show disconnected peers in a collapsing list
[0.1.8] - 2025-09-26 ### Fixed - Finally fix this annoying issue with handshakes after webrtc disconnections! Peers will now show up in the peers list no matter what. - Old signal events will automatically be deleted from nostr relays ### Changed - NIP44 encryption at the (webrtc) data channel level - Use nip44 {encrypt,decrypt}_to_bytes() to have an encryption layer over the webrtc data channel, to enforce encryption for all voistr protocol messages (instead of using seals)
[0.1.6] - 2025-09-20 ### Added - NIP-96 uploads support - UI to display and change the picture in the profile page - When clicking on a peer, it shows a page with the events history for that peer (call invites, responses, hangups, ...) - promising_nostrdb module ### Changed - Use trait enums for the pages system
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. Right now there is no relays configuration and to make testing easier, voistr uses a predetermined list of relays that work well with encrypted events. If you want to try it out and help with the testing, reply here, that'd be much appreciated. #voistr #nostr #softphone #nosphone #webrtc #opus