open source, P2P messenger without centralized server that works in a local network.
Clone or download
Latest commit f706570 Sep 24, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea update gradle version Jun 25, 2018
app removed untranslatable redundant string Aug 18, 2018
docs Merge branch 'master' of github.com:dakhnod/Meshenger Aug 14, 2018
gradle/wrapper initial commit May 18, 2018
.gitignore initial commit May 18, 2018
LICENSE Create LICENSE May 22, 2018
README.md Update README.md Sep 19, 2018
build.gradle update gradle version Jun 25, 2018
gradle.properties initial commit May 18, 2018
gradlew initial commit May 18, 2018
gradlew.bat initial commit May 18, 2018
settings.gradle initial commit May 18, 2018

README.md

Meshenger - An Open-Source P2P Messenger

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.

Get it on F-Droid

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

  • contact authentication via public key
  • optional global connection via Internet in case no local connection is available
  • optional direct connection via WiFi-Direct in case no AccessPoint is available