Feature Complete 1.0
From Entuura
This is the spec for what must be complete in order to call the system version 1.0.
On the Device
- Support for ASUS WL500G Premium only
- building the image automatically from sources checked out of SVN
- Upgrades
- upgrading flash image when WAN is plugged into a a high speed link
- update over the air
- this feature needs to be secure / signed by the central administrator
- Remote Access
- remote access to SSH
- "maintenance key" allows login even when root password has changed
- remote access to webif, secured by SSL
- remote access to device's web UI, secured by SSL
- remote access to SSH
- Device UI
- The state of the connection
- Can see files waiting to go out, can yank one
- Can review last several call logs
- PhoneHome schedule (very basic, radio button for options)
- Can manually start stop connection
- Can request a maintenance mode -- don't drop session to allow for remote ssh.
- For the users
- Basic welcome page via captive portal where SKU can provide some help / info etc.
- In case of a WLAN active connection, a way to simply get beyond it. Get in user's face once, or once each session.
- Peripherals: Only one USB storage device, one USB serial device
- Storage
- Single USB storage device, fixed mountpoint, we choose structure
- Device is insensitive to USB disk, USB key, filesystem size
- CIFS
- Should be compatible with WinXP -- use encrypted CIFS/SAMBA passwords
- WorkGroup name should be communityname-nodename. Max 8 chars per each element.
- Samba configured to act as a WINS server (Steven will provide all details, otherwise ignore him)
- Shares are automatically generated based on USB folders
- VFAT formatted, so it can go onto a PC
- Sneakernet working: Can yank the USB key, put it in a PC, put on files, put USB back in device and it will integrate the new files as if they arrived via CIFS.
- PhoneHome still works with no USB
- If the USB device is missing, administrative packages allowed, user packages not allowed.
- Posts the problem to the central server
- Fetches "to-device" into /tmp
- Processes new files (so that we can use update over the air to try to fix a USB mounting problem)
- Network connectivity
- IP over:
- ppp dialup
- GPRS
- Ethernet
- GPRS auto-configure, given local provider name
- Debug info saved to device (some posted to central server)
- PPP logging
- GSM information as available
- provider list
- signal strength
- cell id if phone gives it
- Phone Home
- Refuse to send payloads bigger than a certain size
- Set date
- Log management
- Each call's logs are saved, viewable with UI
- Unexpected things are posted to the central server (just drop a file in the outbox)
- give useful errors
- Device reports WAN IP address, and default GW
- Device does a traceroute to home periodically and sends results
- Best implemented from server side using the update mechanism to do remote execution. No extra code needed on device. (But the device already does have a working traceroute, for sure.)
- IP over:
- Applications
- Over The Air Upgrade
- Encryption System
- Blog
- Display of articles in local store
- UI to post a new article
On the central server
- Wiki
- useful content in the wiki (first setup, upgrade, setting dialup params)
- SVN with all code in it
- Autoconfig server
- System Map
- Google Map
- connection status of field boxes
- The posted files from the field
- Protected by HTTP basic auth, each site has a password (set on device). Actually, better to set this up on a case by case basis. We are not ready to make "community management" tools. Kenya-Health has a public page right now.
- Blog
- A UI to accept/reject blog postings from the field. (This feature was canceled. Better to start open, the close down when there's a problem. Changing receive-to on the server-side is easy.)
Developer Support
- Document
- Rights/responsibilities of plugins (the spec for plugin writers)
- How to do your own builds
- How to test a build
- Check in code to SVN
