This app was built in response to the message carrier problem definition. http://www.rhok.org/problems/message-carrier-messages-without-connectivity
During our RHOK weekend, the team was able to build an application that dynamically discovers other "message carriers", and transmits text,email, or twitter messages to carry when no connectivity is present. Once connectivity is found, any encountered messages are sent to a server, which filters out duplicates and then completes the request.
This works both when eventual connectivity is found, and when only one host in the network has connectivity.
Messages are broadcast an infinite number of times by the original sender, and then 20 times by each person who encounters the message. The relaying senders must find 20 people who have not seen the message in order to stop spreading. The algorithm is intended to spread a message, but reduce the network flood from infiinitely sharing a message.
Messages are transported through ad hoc bluetooth connections using the Game Center platform built into iOS. To interact with future devices, a more generic bluetooth stack will likely need to be adopted. However, the system will work to collect, store and eventually transmit messages for our 2 primary scenarios:
- Connectivity goes out in a disaster area, and messages are sent transparently through the human "hosts" until any/all find connectivity
- One individual enters a disaster area and offers to collects messages from others (either transparently by others with the app, or by handing out their device). Once they reach connectivity after leaving the area, they can transmit the messages they collected.
Hermes: Message Carrier v2 - Random Hacks of Kindness Toronto
This Random Hacks of Kindness 3.0 project is a continuation and collaboration with a team of developers from Random Hacks of Kindness 3.0 Atlanta.
It is developed in response to this problem definition: http://www.rhok.org/problems/message-carrier-messages-without-connectivity
The Toronto team built upon of the existing iPhone application developed in Atlanta to add integration with Ushahidi, an open, crowdsourced disaster mapping initiative .
Whenever a new Ushahidi instance is created, the information for it is uploaded to the Hermes server. This information includes the URL of the Ushahidi instance, the centre of the disaster area, and the radius of the disaster. Each message that comes to the Hermes server to be processed is checked to see if it falls in any disaster area covered by an Ushahidi instance. If it does, the message is forwarded to the corresponding Ushahidi server to be placed on the map. The app offers an option to send private messages to opt-out of the Ushahidi forwarding.
With Message Carrier integration, Ushahidi may now get information from areas in which there is no signal. Prior to now, an instance of Ushahidi would have a blank area wherever there is no communication. For humanitarian workers on the ground, everything going on in the area is unknown. Message Carrier integration with Ushahidi offers the potential to have information released from the areas missing connectivity. The previously blank area will be filled with reports coming in, despite the fact that there is no communications network in the area. With the Message Carrier infrastructure, humanitarian workers will have access to vital information for planning rescue operations in the places where help is needed most.
Possible scenario with Ushahidi integration:
One mobile individual passes through a disaster area, gathering messages that cannot be sent due to communications failure. Some are private (Ex.: "Hi Mom, I'm alive!") some contain valuable information for aid workers (Ex.: "Can't exit the area, the only bridge has collapsed"). Some messages contain both ("Hi Mom, I'm alive but I'm stuck here for a few days. We have plenty of water and food.")
Upon returning to a wifi enabled area, all of the messages are uploaded to the server. The Hermes server collects all of the messages, delivers anything with a specific destination, and sends anything not tagged as "Private" to Ushahidi to be mapped and referred to by aid workers.