Hi I’m Trevor K7FPV. We have a mesh network running in Layton, UT with around 12 nodes. We mainly setup and use the mesh for emergency communications. We have been using Team Talk running on a Raspberry Pi off my node to communicate. I’ve never liked this solution since it requires my node to be online as a single point of failure, and Team Talk is not the easiest thing to use, and does not work on mobile devices. We tested Ham Chat, but again same problem. If that nodes goes down, your messages go with it, or you have to all login to a bunch of nodes. Great app for what it does. I wrote a web app called meshchat that runs on the node it self. It has a modern responsive / ajax web interface. The concept is you can login to any node running meshchat and see the message database and send messages. The message database is stored in RAM and a smaller version persisted to FLASH. There is a daemon that runs all the time on the node and requests the message/user database from every node on the mesh. If it finds a new message it adds it to its own copy of the database. This way every node always has a full copy, fully distributed, fully redundant and p2p. No single point of failure or a server. It also keeps track of which users are currently logged into which node, and which node the message originated from. When you install on a new node, it will instantly get a full copy of the message database from another node. Depending on the speed and size of your mesh it can take a few seconds to a few minutes for new messages to fully propagate.
We have been running this on our mesh for a few weeks and it seems to work well but should be considered alpha software at this point. I invite any one else to try it out and submit bugs to me. Right now the app just does text messages. I’m making some progress using webrtc to add p2p video and file transfer, but it is tricky to do without a server involved for ICE / STUN setup. Anyone who is familiar with webrtc is invited to help ;). Right now there are some prerequisites to running this: * Must be installed on Ubiquiti hardware - may do linksys support at some point * You have to reboot your node after installing the package for the daemon to start - trying to figure out a problem with it starting after package install * We have tested only on 3.1.0, but it may work on other versions I don’t know * You must have the correct time set on your node - NTP is a great way to do this. We used the nodes times in UTC and in javascript convert it to that users timezone in the browser. May change this to use the time from the browser instead since NTP may not be available. * You must have the wget-nossl package installed - this is because the busy box wget does not support connection timeouts and a unreliable node will stall the daemon forever. You can see the code here: https://github.com/tpaskett/meshchat You can download a wget-nossl package here (install this first): https://www.dropbox.com/s/skhmaxukad5p59y/wget-nossl_1.13.4-1_ar71xx.ipk?dl=0 You can download the package here: https://www.dropbox.com/s/4jkrntvby3sx467/meshchat_0.1_all.ipk?dl=0 Possible features in an update: Auto update all nodes on the mesh after updating 1 node P2P file transfer P2P video conferencing Thanks to Bill N7IE and Dave KD7DHO for their work on our mesh and for testing. Feedback is welcome.
|