Skip to content
open source, P2P messenger without centralized server that works in a local network.
Branch: master
Clone or download
Latest commit 2196d6e Aug 25, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea update gradle version Jun 25, 2018
app Added missing files and activities Feb 27, 2019
docs Merge branch 'master' of Aug 14, 2018
gradle/wrapper initial commit May 18, 2018
.gitignore initial commit May 18, 2018
LICENSE Create LICENSE May 22, 2018 Update Aug 25, 2019
build.gradle update gradle version Jun 25, 2018 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

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.

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
You can’t perform that action at this time.