[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.7] - 2025-09-22 ### Added - New dependencies: binrw, mmap2 - New voistr message types: direct message, file send request && response - Basic UI to send DMs to a contact - NIP44-encrypted file transfer support over webrtc data channels. - UI to list file transfers with progress bar
## [0.1.3] - 2025-09-14 ### Added - Ringtone library - Ringtone preferences - Add a "play_ringtone" function in the audio module to play a ringtone repeatedly with a custom volume - Refuse call button
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