Serval Mesh Version 0.90 “Shiny”
Source code
Milestones
Removed dependencies on 3rd party applications (Asterisk, WebSMS/SMSDroid, SIPDroid, BATMAN) for voice, text and routing services
Revamped user interface to give a more consistent feel to the application
Vastly improved stability
-
-
Improved file distribution (
Rhizome)
-
New mesh text messaging service (
MeshMS)
Audio latency and quality suitable for demonstration
All software features will work on Wi-Fi networks even if Ad Hoc mode is not available
-
Known Issues
Rhizome may consume all of your SD card space
Rhizome transfers may degrade call quality during calls
MeshMS message bundles grow without limit
Issues of scalability have not been addressed
Multi-hop communications have not been thoroughly tested
No echo cancellation during voice calls
Voice codec is not bandwidth efficient
Joining an Ad-Hoc mesh network requires root permission
Joining an Ad-Hoc mesh network is not possible on some Android platforms
Some android platforms will not be usable even on Wi-Fi, or may drop off the network when the screen is turned off
No authentication process to verify the identities of other people on the network
Broadcast MeshMS is experimental and may be deprecated
Phone number lookup on the peer list is not concurrent
Permissions
The following is a list of the Android Permissions used by this release, with a brief explanation. There are some that are specifically written by us and relate only to Serval, but there are others that Android requires to allow us to utilise the phone hardware and software.
Serval Specific Permissions
Android Permissions
READ_PHONE_STATE: When you first setup our software, we try to obtain your real phone number so it can be registered on the mesh.
ACCESS_WIFI_STATE: We can use the internal wifi controls to enable communications.
CHANGE_WIFI_STATE: We can use the internal wifi controls to enable communications.
INTERNET: This permission is required for creating any network traffic.
CHANGE_WIFI_MULTICAST_STATE: We can use the internal wifi controls to enable communications.
BLUETOOTH: During a call, you may use a headset.
BLUETOOTH_ADMIN: During a call, you may use a headset.
VIBRATE: Notification of incoming calls.
MODIFY_AUDIO_SETTINGS: Changing the in call volume.
RECORD_AUDIO: For transmission to the person you are talking to.
PROCESS_OUTGOING_CALLS: We intercept all outgoing calls while our software is turned on to give you the option of reaching your contact via the mesh.
WRITE_SETTINGS: Read ringtone, volume and vibrate settings for incoming call notifications.
RECEIVE_BOOT_COMPLETED: Our software should automatically start when the phone is turned on, if it was still running when you switched it off.
READ_CONTACTS: Display the name of an incoming caller.
WRITE_CONTACTS: Insert incoming and outgoing call information.
CALL_PHONE: If you choose not to use our software, we need to place the call again.
WAKE_LOCK: Make sure we keep the phone awake for relaying packets.
DISABLE_KEYGUARD: Allow you to answer incoming calls, bypassing the normal screen unlock.
WRITE_EXTERNAL_STORAGE: Sharing files and sending MeshMS messages use external storage.
GET_ACCOUNTS: Needed to create a Serval Account on your phone.
BROADCAST_STICKY: We broadcast the state of adhoc wifi so our own UI and other applications can display that state.
AUTHENTICATE_ACCOUNTS: Needed to create a Serval Account on your phone.
MANAGE_ACCOUNTS: Needed to create a Serval Account on your phone.
READ_SYNC_SETTINGS: Needed to create a Serval Account on your phone.