dakhnod / Meshenger

open source, P2P messenger without centralized server that works in a local network.
GNU General Public License v3.0
205 stars 45 forks source link
android decentralized-application ipv6 messenger p2p-chat webrtc

Meshenger - An Open-Source P2P Messenger

Development of version 2.0.0 continues on this repo.

This Android app allows voice- and videocommunication without any server or Internet access. Simply scan each others contact QR-Code and call each other. This works on most networks such as community networks or even company networks.

<img src="https://f-droid.org/badge/get-it-on.png" alt="Get it on F-Droid" height="90">

Contact List QR-Code Offer QR-Code Scanner Manual Contact Exchange

How Does It Work?

Finding Contacts

Contacts are found by taking the devices own IPv6 addresses and replacing the devices own MAC address by the contacts MAC address. This results in using IPv6 Link Local addresses (fe80::/10) and Unique Unicast addresses (fc00::/7 using the EUI-64 format).

Audio/Video transmission

Audio and Video are transmitted via WebRTC. WebRTC is a standard that is also implemented in all major web browsers. WebRTC has facilities to circumvent NAT scenarios via servers (Meshenger does not use this feature), Audio and Video codecs and end to end encryption.

WebRTC does not support signaling and authentication. The signaling information is transmitted directly as plaintext.

Project Context

This project was sponsored by the Google Summer of Code 2018 as part of the Freifunk organization to make local community networks more attractive.

The development can be followed via the Freifunk blog:

Ideas/Future Plans