Front-end for Gigaset 307x Device Driver (Version 0.7.2)
========================================================

0.   Warning
     -------
     The front-end utilities gigacontr, qgigaset and gigaconf are still
     experimental. Use at your own risk.


1.   Requirements
     ------------
     If you compile the front-ends from the sources, you'll need the usual
     development tools as gnu make and gcc. The gigaset driver must be
     installed before building the front-ends.

     The front-end tool "gigaconf" requires the "expat" XML parser library
     (Version 1.x). For openSUSE, the necessary package "expat" is part of
     the default selection, but you may still want to check it is there.
     For Debian, do an "apt-get install libexpat1-dev". The front-end tool
     "qgigaset" requires Qt4.

     You can only use these programs when the kernel modules are loaded
     and the device nodes have been created (see README of the driver).


2.   Installation
     ------------
     This section is for Linux users. Windows users should read README.win32
     instead.

2.1. Binary packages (rpm)
     ---------------------
     We provide rpms for some distributions (currently openSUSE; if you want
     to provide packages for your distribution, please let us know). You can
     install them using
         rpm -i gigaset-frontend-<version>.rpm
     or with some graphical front-end.

     If the installation fails because libexpat.so.0 is missing you can add
     the option "--nodeps" to the rpm command:
         rpm -i --nodeps gigaset-frontend-<version>.rpm
     You won't be able to run "gigaconf", but "gigacontr" will work fine.

     The command line utilities gigacontr and gigaconf are installed as
     system utilities in the system binary directory /usr/sbin. You can run
     them as a non-root user if that user has write permission on the
     Gigaset device file /dev/ttyG*. On openSUSE this can be achieved by
     granting that user membership in the "dialout" group.

2.2. Build rpm packages from source rpms
     -----------------------------------
     If you didn't find a binary rpm matching your system, or for some other
     reason want to build your own binaries:

     - download the src.rpm package

     - If you don't have a file .rpmmacros in your home directory:

         cd
         echo "%_topdir $HOME/rpm" >> .rpmmacros
         mkdir rpm
         cd rpm
         mkdir BUILD RPMS SOURCES SPECS SRPMS

     - Build the package:

         rpmbuild --rebuild /path/to/gigaset-frontend-VERSION.src.rpm

       If you also want to build the graphical frontend "qgigaset", add the
       parameter "--with qt":

         rpmbuild --rebuild /path/to/gigaset-frontend-VERSION.src.rpm --with qt

       When building qgigaset, please make sure that the QTDIR and
       PKG_CONFIG_PATH environment variables contain the correct
       directories for Qt4. See 2.3, Step 3 for details.

       If you don't have the expat 1.x library, use the "--without expat"
       parameter to skip building gigaconf.

     - Get the rpm package from ~/rpm/RPMS and install it as described in 2.1.

2.3. Compiling from source
     ---------------------

     STEP 0: Prerequisites
     ---------------------

     Make sure you have the necessary development packages installed.
     In particular, building the front-end tool "qgigaset" requires the Qt4
     development packages (including the debug packages if you don't build a
     release version), and building "gigaconf" requires the expat development
     package.

     STEP 1: Unpack the sources
     --------------------------

        tar -xzvf gigaset-frontend-VERSION.tar.gz
     or
        tar -xjvf gigaset-frontend-VERSION.tar.bz2

     will create a directory gigaset-frontend-VERSION containing the sources
     (VERSION is currently 0.7.2).

     After changing to this directory with
        cd gigaset-frontend-VERSION
     you can

     STEP 2: Configure the front-end
     -------------------------------

     using
        ./configure
     You can use the following options:
       --prefix=PATH
         installation prefix (default: /usr/local)
       --destdir=PATH
         "fake root" directory (default: /)
       --mandir=PATH
         installation directory for the manual pages (default: PREFIX/man)
       --libdir=PATH
	 installation directory for the Qt4 libraries (default: PREFIX/lib)
       --datadir=PATH
	 data directory for qgigaset (default: PREFIX/share)
       --with-qt
         build qgigaset
       --without-qt
         don't build qgigaset (default)
       --with-debug
         build debug version of qgigaset (requires Qt4 debug libraries)
       --without-debug
         build release version (default)
       --with-qtlibs
	 build and install private Qt4 libraries (not yet implemented)
       --without-qtlibs
	 use system Qt4 libraries (default)
       --with-expat
         build gigaconf (default)
       --without-expat
         don't build gigaconf

     If there are no error messages, you can

     STEP 3: Build the front-end
     ---------------------------

     using
        make
     or, if you need a special C compiler
        make CC=/path/to/cc
     (if you have run make before and changed the configuration using configure
     after that, you should run "make clean" before make.)

     When building qgigaset, please make sure the QTDIR environment variable
     contains the correct directory for the Qt4 development tools and files.
     If you don't want to use the tools moc, lupdate, lrelease in $QTDIR/bin,
     you can use the make parameter QTBINDIR=/path/to/qt/bin or the parameters
     MOC=/path/to/moc, LUPDATE=/path/to/lupdate, LRELEASE=/path/to/lrelease.

     For Linux builds, the environment variable PKG_CONFIG_PATH must contain the
     path to QtGui.pc and QtCore.pc.

     Examples:

     - system using Qt4 by default:
     QTDIR=/usr PKG_CONFIG_PATH=/usr/lib64/pkgconfig make

     - system with Qt4 installed in /usr/local:
     QTDIR=/usr/local/lib/qt4 PKG_CONFIG_PATH=/usr/local/lib/qt4/lib make

     - cross compilation:
     QTDIR=/usr/local/cross-tools/lib/qt4 cross-make MINGW=1 MOC=moc LUPDATE=lupdate LRELEASE=lrelease

     If there are no error messages, you can

     STEP 4: Install the front-end
     -----------------------------

     using
        make install
     as root which will copy the files to the destination directories.


3.   How to use the front-end utilities
     ----------------------------------

     The programs gigacontr and gigaconf are command line utilities to be run
     from a shell prompt. As system utilities, they are by default installed
     in the local system binary directory, /usr/local/sbin, which is typically
     in the search path of the root user, but not of regular users. If you
     want to run these commands as a regular user, add that directory to your
     shell's search path. Don't forget to set the access permissions for the
     Gigaset device file accordingly.

     For details, see the manual pages (man gigacontr, man gigaconf).

     Qgigaset has a  graphical user interface and can be started from your
     desktop environment. Its use should be intuitive.


4.   Uninstalling the front-ends
     ---------------------------

4.1. Binary packages (rpm)
     ---------------------
     You can uninstall the programs using
         rpm -e packagename
     or with some graphical front-end.

4.2. Installed from source
     ---------------------
     You can uninstall the programs using
         make uninstall
     in the gigaset-frontend-VERSION directory. If you deleted this directory,
     you should unpack the sources again and run configure with the same
     parameters you used when installing the front-end.


5.   Feedback
     --------
     If you encounter a problem with the programs you can't solve on your own,
     feel free to use one of the forums, bug trackers, or mailing lists on
         http://sourceforge.net/projects/gigaset307x
     or write a mail to <gigaset307x-common@lists.sourceforge.net>.

     Try to provide as much information as possible, such as
     - distribution
     - kernel version (uname -r)
     - gcc version (gcc --version)
     - hardware architecture (uname -m, ...)
     - type and firmware version of your device (base and wireless module,
       if any)
     - output of "lsusb -v" (if using an USB device)
     - error messages
     - relevant system log messages (it would help if you activate debug
       output as described in section 5.2. of the driver's README file)


6.   Status
     ------
6.1  What is finished
     ----------------

     Things that work reasonably well at this stage:
     - reading out the call journal (log) of the base
     - uploading and downloading phonebooks to/from the handsets
     - dialing a call for a handset from the PC
     - registering M101 and M105 to a base
     - basic parameter queries (device type, firmware version ...)

     Things that are unfinished but harmless:
     - sending and receiving SMS messages (but watch your phone bill ...)
     - downloading and uploading answering machine messages (not much use
       as you can neither listen to them nor record new ones on the PC,
       due to the undocumented codec)

     Things that could be dangerous:
     - fiddling with the configuration values of the base

6.2  What is planned
     ---------------
     - Supporting the advanced functions of this ISDN device like configuration
       from PC and some other stuff.
     - Adding more functions to "qgigaset", eventually developing it into a
       full replacement for the original (Windows-only) Siemens Talk&Surf
       software.

     If you want to help with any of this, feel free to contact us.


7.   Credits
     -------
     Thanks to

     Kolja Waschk
        for the implementation of the --amXXXX commands

     and all the other people who sent logs and other information.
