Feature Complete 1.0

From Entuura

Jump to: navigation, search

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
  • 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.)
  • Applications

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
Community