TODO

This file contains a list of things to be done and a list of what's done
already.
Any entry starting with an X is completed.
Any entry starting with an / is half completed


What was in the  0.1 release:
 X enter pin code during startup to unlock the card
 X switching of network operators
 X SMS sending
 X some detection of Option GT cards


What was new in the 0.2 release:
 X PCMCIA card autodetection
    X Option GT            autodetection + use
    X Option Fusion(+)     autodetection + use
    / SonyEricsson GC79    (autodetection only)
 X command line override of autodetection
 X create basic website
 X if umtsmon is started immediately after card was inserted, the SIM
   interface might not have been initialised yet. That's currently handled 
   incorrectly: we *should* allow some time and poll for the interface to 
   become available.


What was in the 0.3 release:
 X card autodetection
    X SonyEricsson GC79       autodetection (done)
    X Option GT EDGE (Combo)  autodetection (done)
	X serial_cs-based cards   autodetection (done)
	  X Sierra Wireless Aircard 775 EDGE
      X Novatel Merlin UMTS Modem U630 
 X logging verbosity should be configurable
    X create DEBUG macro's
    X convert all existing printf's and cout's to DEBUG statements
    X create a method to handle critical errors
 X Add a technology selector - 3G only, 3G preferred, 2G only etc. 
   This is important for fringe network coverage. 
 X Make signal strength visible in title bar when minimized
 X add checkbox to enable/disable the update of network stats



What was in the 0.4 release:
 X Enhance PCMCIA detection to handle multiple PCMCIA slots.
   (implemented by Stefan Seyfried)
 X card autodetection
    X Huawei Technologies Mobile E612 
    X Detect 'Holtzman' Nozomi drivers (which have different /dev interface names)
      (implemented by Stefan Seyfried)
 x add feature to issue commands as "root" user
 	X apply the trick from kppp to do this
 	X must clean up code for handling of error conditions first
 X implement start/stop PPP connection from within umtsmon
 X various interactions:
   - not possible to switch radio type when connected - should be disabled
   - not possible to connect when searching - connect should be disabled
   - when connected - disable connect button or reuse as "disconnect" button
 X implement configuration file for persistent settings
 X add window to enter required PPP (APN, username, passwd) settings
 X enter PUK code dialog
 X improved PIN code dialog

What was in the 0.5 release:
 X Fix security issues with respect to PPP by separating out the configuration
   into a separate program that can modify system settings after asking for
   a root password - the main UI doesn't need root privileges anymore.
 X card autodetection
    X Option 'ICON' USB box
    X 4G Systems 'Web n Walk' USB box
    X Original Option Vodafone 3G card
 X implement changing of PIN code settings
   X refactor PIN code enter thingie to separate widget that can be re-used
   X make sure that the PIN dialogs use '*' instead of number for
     increased security
   X new dialog: change pin code
   X new dialog: disable/enable use of pin code
 X re-layout the UI
   X separate out SMS code
   X separate out network switching code
   X separate out profile dialog 
   X create a menu and move functionality there
 X add dialog check for suid of pppd
  
For the 0.6 release:
 X back out patch to DetectCard to sudo /dev/noz*
 X add dialog to check for correct suid of all helper binaries and serial devices
 X Add detection of Kyocera device (won't work, though)
 X Add detection of Novatel XU870 (operation not complete - delayed to 0.7)
 X Make Sony Ericsson GC79 work (Bug #1499130)
 X fix SMS sending
 X fix about dialog (c) message and AUTHORS tab 
 X more graphical network strength view
 X make PPPConnection more robust
 X add 'noauth' to Profile
   
For the 0.6.9 release - will be in OpenSuse 10.3:
 X rewrite autodetection
   / switch to use libusb 
     * and use current code as backup for non libusb systems
   X usb detection first, pcmcia later
   X add option to specify ppp port on command line
   X attempt several baud rates if needed (Bug #1690898)
 X test all ports to use (AT/PPP) before actually continuing - if there are 
   three ports but only one is usable - switch to single port!
 / finish getting the SonyEricsson GC79 to work (Bugs #1499130 and #1746965)
   X make sure *all* AT commands are suppressed whilst PPP active
 X show error log in case PPP fails
 X move setRadioPreferences to its own dialog (Bug #1631291)
 X Profile dialog: check for unsaved items if OK is pressed
 / add support for:
   X Dell Wireless 5510 (bug #1785692)
   / Sony Ericsson GC86
 
Additional for the 'real' 0.7 release:
 X a few bug fixes by Gerald and Seife.
 X document-new.png and document-save.png in newprofiledialog.ui are missing
 X make a real application icon
 

For the 0.7.91 release (i.e. 0.7-beta1):
 X Sierra Wireless Aircard 875 support
 X Huawei 220 doesn't like if you use the third port
 / fix GC86 port operation (bug #1792667)
 * add umtsmon to Debian
   X .deb package for umtsmon-0.6 Ubuntu already exists
 * internationalization
   / dutch (nl) - Klaas
   * brazilian portugese (pt-br) - Alvaro
   / german (de) - Lubomir
   * french/polish/russian/spanish/korean/other languages only if volunteers 
   X fix the LCDDisplay to show "operator" "profile" and such i18n as well
   X language selection from command line
   X language selection through "LANG" environment variable
 / icons
   X get more icons from the Tango series
   / move help/no/ok/services icons to the 22 and 16 directories
   X add .desktop file
 X improve Gentoo ebuild (needed for i18n and .desktop anyway)
 X if usbserial card detected, but module not loaded, suggest to load module
 X emit a message (other than just crashing :-() in the case nothing was detected
 X added /etc/*-release to the info dialog, Bug# 1722979
 X added the pppd version number to the info dialog, Bug# 1617912
 X introduce manage profile dialog and fixup Profiles dialog
 X FIX: on single port cards, a malfunctioning PPP might leave the port in undefined state
 X maintain statistics and an alarm if you hit a percentage of bandwith per month
   X add settings to Profile Dialog
   X store traffic data in config file
   X show sum & status in display
   X throw warning if threshold hit
 X solve the CGREG/CREG issue for ACM devices that don't answer that query well
   (bug 1865927)
 X add new advanced ppp option: No Compression Control Protocol negotiation

For the 0.8 (final) release:
 X improve i18n - bring all languages up-to-date
   X dutch is at 98%
   X german is high too
 X fixup MonthlyTraffic creation
   - starting at GUI Start (logically - is part of mainwindow class)
   - twice before creating connection
   - before sending SMS
 X merge Gerald's ctrl-c in ui (connect) patch
 X merge Seife's ctrl-c on cmdline (sigint) patch 
 X sending SMS fails on Novatel U740 
   - card returns "CME Error 305" when over limit of max characters
   - that's not a known error ?!?
   X but the error was not even detected!
 X allow to suppress PPP verbosity (Seife)
 X Fix flickering of LCDDisplay - mostly done
 X if single port device - don't show network strength when connected

 
--------------------------------------------------------------------------
For "FUTURE RELEASES":
 * on single port cards (maybe also on multi-port cards)
   not having autoupdate radio prefs on, will hang umtsmon after
   shutting down the network connection
 * figure out Lubomir's issue
 * really make Aircard 875 work
 * Fix network selection of Novatel XU870
 * (observed on Novatel cards only): if subsequent calls to AT+COPS do not return
   the operator namei (but an empty string), make sure you cached the previous instance.
   NOTE: first research why - this might be due to CREG/CGREG or so...
 * remove the 'nocompression' option from the Profile and
   always make sure that no header compression is used. This fixes at least
   50% of the recent bug reports and forum posts.
 * move testersettings stuff from the various *_main.cpp files  to TestFrame.cpp
 * auto update of stats should be always enabled until registered.
 * add menu option to fix to certain language - don't care about environment.
 * TO BE REPORTED BUG: when a usb serial plug is inserted *AND* a usb2serial-based card like the
   Option, the new autodetection code will decide ttyUSB0 and ttyUSB3 first.
   the test for AT will fail - the card will only use ttyUSB3. Not good.
 * Sierra Wireless Aircard 875 returns a number (I saw 23201 once) as operator - that should be masked...
 / Fix flickering of LCDDisplay
 * add a dialog that shows the progress of AutoDetect
 * on single port cards, a malfunctioning PPP might leave the port in undefined state
 * fix operation on 2.6.20 kernels (Bug #1662877)
 * check if HSDPA is used and show in display
 * if multiple Profiles exist, make the "Connect" button a drop-down or add a dialog.
   * show the currently selected Profile on the mainwindow
 * check if UMTS card is forced to a specific network because if that
   network is not available, you won't get a connection automatically
 * optimize "select operators dialog"
    * make it a wizard?
    * add connect button?
    * separate model-view-controller to improve code.
 * card switching for ICON (ZeroCD device)
 * the Huawei 220 is a ZeroCD device, that can be easily switched 
   - add autodetection for the usb_storage thingie
   - just rmmod the usb_storage
   - this can probably be done better through libusb
   - and redo autodetection
 * add a "STOP" feature that kills all network connections and
   performs a "cardctl eject" command - only if pcmcia kernel module is loaded
   note: "cardctl eject" on Suse 9.3, "pccardctl eject" on Suse 10.1
   note: on Suse, this command is suid root, but we can run things as root anyway now
   -> this feature should only exist for PCMCIA, as it makes no sense on USB
   -> this feature is dangerous on nozomi cards as it might freeze the whole system
 * umtsmon crashes when a system comes out of suspend
 * fix compilation for QT4 (Bug # 1527835)
   -> only go to QT4 if it doesn't impact the amount of required libraries
 * remove all assert(false) from the code
 * Wizards for PPP configuration
 * SMS handling:
   * do code page translation as the character sets don't match
   * add receiving SMS
 * Make single serial port cards co-exist with PPP
   (not by mutual exclusion as it is now, but by interrupting data streams)
   See note in SerialPort.cpp: This code can be derived from modem.cpp in kppp.
   Reportedly, also OpenMoko's gsmd can do this for us.
 * more graphics
   - animated connect and search network graphics?
   - adjust font sizes for DPI settings in LCDDisplay
 * diagnose more configuration errors
 * more integration into KDE/Gnome
   * iconify / task bar
   * NetworkManager
   * integration with address books
 * installers
 * (See Bug 1856802) for some device/operator, the MTU changes between GPRS and
   UMTS operation.    The only workaround is currently to set a fixed MTU in 
   the file /etc/ppp/options, which then is used for both radio modes.
 * add location identification, like shown in this application:
   http://www.ullihome.de/index.php/Hauptseite#Net_Monitor
   
