Wednesday, June 27, 2012

Serval Project Quarterly Update 2012Q2

The last quarter has been quite an exciting one from our perspective, although much of the excitement has not been externally visible.  So here are some of the highlights that you may or may not already be aware of.

Version 0.08 Released

The most notable visible progress has been the release today (27 June 2012) of version 0.08 of Serval Mesh to the Android Market / Google Play.  This is primarily a bug-fix and minor-enhancement release while we finish drawing together a whole pile of work that has been going on behind-the-scenes that will show up in the next version, version 0.90.  The jump in version numbers should give you a clue as to how significant we think the next version will be, so lets have a look at the contrast and what is being planned.

Preparations for Version 0.90 - Switching From Architecting To Integration

Version 0.08 is a direct descendent of the initial proof-of-concept that launched the Serval Project back in mid-2010.  The bulk of the work in this past quarter has been preparing the reengineered "production" functionality of Serval.  In the last week or so we have reached the point where the bulk of effort is now going into integration of the various components, shaking out the bugs and finding the outstanding tasks that need to be done to make it all work seamlessly together.  This is a very encouraging and exciting stage for the team as we see the hard work over the past year or so come together to make something that we think will be compellingly useful for many people.

To get an idea of the scope of work that has been undertaken, let us summarise a number of the properties of version 0.08 (the most recent proof-of-concept derived release), and then compare this with the reengineered work.  First, version 0.08:

  • It requires root permissions to operate, because it needs ad-hoc WiFi to provide end-to-end network paths for the mesh routing protocols. 
  • It relies on BATMAN or OLSRd for mesh routing over ad-hoc WiFi. 
  • It has no encryption or authentication of calls.
  • It includes a complete installation of Asterisk to do the PBX/VoIP call routing. 
  • It includes an entire SIP client that talks to the Asterisk installation.  
  • It can only operate on IP networks. 
  • It has only a prototype of the Rhizome store-and-forward mesh file sharing service. 
  • It relies on 3rd-party applications to send or receive MeshMS (SMS) messages over the mesh.
  • It has a rather awkward user interface.
  • It has no APIs for interaction with other applications.

In contrast, Version 0.90 will include a pile of reimplemented and new functionality that will make for a  totally transformed product and experience:

  • It will not require root permissions, removing the single greatest barrier to adoption.
  • It will include its' own mesh routing engine that can operate over access-point and client mode WiFi, and deliver MeshMS and files even under highly partitioned network conditions.
  • It will offer robust end-to-end encryption of voice, MeshMS and, later, of files over the mesh. A later version will also include simple and effective protection against man-in-the-middle attacks.
  • It will include its own VoIP over Mesh protocol (VoMP), that is light weight and avoids the need to include Asterisk and a SIP client.  This has allowed us to shave 60% off the application size (about 2MB instead of 5MB), and increase responsiveness and speed significantly, even while adding in end-to-end encryption.
  • It will be able to use non-IP transports, e.g., packet radio, carrier pigeons carrying memory sticks and almost any other digital data carrier to synchronise data between meshes.
  • It will include the new low-latency and auto-prioritising reimplementation of the Rhizome store-and-forward data distribution service.
  • It includes it's own MeshMS client, removing the need for external SMS handling applications: one APK provides all services.
  • It will include a completely redesigned and reimplemented user-interface.
  • It will include APIs to allow interaction with the mesh, and use of mesh services by other applications.
All of these features are nearing completion and being integrated ready for release as version 0.90 sometime in the coming quarter.  Significant and intense progress has been made, and the various features are now beginning to come together, and the work is increasingly focussing on integration and whole-of-system behaviour, rather than on completing the individual components.

Together, they constitute a useful product, one that we will be able to demonstrate to various potential partners and even paying customers who are looking for custom mesh services, making Serval well and away the clear leader in mesh telephony.

Continued Interaction With New Zealand Red Cross

Following our participation as observers at KiwiEx 2012, we have continued to nurture and develop our relationship with the New Zealand Red Cross IT&Telecommunications Emergency Response Unit (IT&T ERU).  As a result we are addressing the specific requirements and refinements that they have identified as being necessary to make Serval useful for themselves and the broader humanitarian and emergency response sector.

Presentation to UN Working Group on Emergency Telecommunications (UN WGET)

During the past quarter our existing relationship with New Zealand Red Cross gave us the opportunity to present not only to NZ Red Cross, but also to IT representatives from the Internatational Federation of the Red Cross/Crescent (IFRC), Internation Committee of the Red Cross/Crescent (ICRC), the World Health Organisation (UN WHO), UNHCR and several other major international humanitarian and emergency response organisations.

This was a tremendously positive day, with considerable interest expressed in what we are doing, and how it might be able to help meet various needs among those organisations. As a result of that meeting we are anticipating further engagement with those organisations and WGET as a whole, and are preparing to submit a proposal to them relating to field data collection.

On-Going Work With OTI/Commotion Project

The other major activity during the quarter has been continuing the work on integrating Serval with the Open Technology Initiative's Commotion project.  This will allow OpenBTS-based portable GSM cellular networks to interoperate with Serval mesh telephones in a seamless manner.  The first tangible result of this will be the use of Serval's Distributed Numbering Architecture (Serval DNA) to allow meshed OpenBTS units to route calls amongst themselves.  This should be functional within the next few weeks.

No comments:

Post a Comment