User's Problems

Problem: KPhone compilation errors


g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/opt/kde3/include -I/usr/local/qt/include -I/usr/X11R6/include -I./.. -I/usr/local/ssl/include -DQT_THREAD_SUPPORT -pthread -O2 -fno-exceptions -fno-check-new -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long -Wnon-virtual-dtor -fno-builtin -Wp,-MD,.deps/generaluri.pp -c generaluri.cpp  -fPIC -DPIC -o .libs/generaluri.o
In file included from generaluri.cpp:1:
generaluri.h:28:21: qstring.h: No such file or directory
In file included from generaluri.cpp:1:
generaluri.h:46: error: ISO C++ forbids declaration of `QString' with no type
      .
      .
      .

Clue:
Here the compiler complains about a missing file "qstring.h". This causes the following subsequent errors. "qstring.h" is part of the QT library which should be installed on the target machine. If this file is missing, either the developers/header files package for QT-3.1 was not installed or the files reside in an unknown directory. To obtain the place where they reside the following command could be used: "find / -name qstring.h"
If this command reports a found file, its pathname might look like e.g. "/usr/local/qt/include/qstring.h". Then set the environment variable QTDIR to e.g. "/usr/local/qt" as obtained from the previous "find" command. Then erase all config files (at least config.cache and config.status) and run ./configure again. You may also add a parameter to the ./configure command which tells configure where to look for the QT header and library files: "./configure --with-qt-dir=/usr/local/qt"
Please note that the above commands use the result of the previous "find" command on YOUR computer, so please do not just copy&paste from this page.


Problem: KPhone registration failure


Users report: "When I startup kphone it tries to register with the server (over UDP) but it never seems to get a response."

Clue:
A firewall rule on the SIP server dropped every UDP packet that was addressed to that server. It is modified to reflect the current situation, which means that this problem is fixed now. If you experience similiar effects again, please tell us.


Problem: KPhone compilation


Users report: "I do not manage to compile KPhone. HELP !!!."

Clue:
OK, here is a short step by step guide to compile KPhone

1. Check for QT3 installation. If you are using a Linux distribution like SuSe-8.2, QT3 is shipped with the distribution and does not need to be compiled. Make sure that the QT3 developers packages are installed.

1.1 Check if your environment is setting the QTDIR environment variable. Use "echo $QTDIR" to check this. If it is unset then you need to find the directory where QT3 is located or you need to compile it. If you find the directory (like /usr/lib/qt), then set QTDIR to that value. Add the following lines to your ~/.bashrc (bash-users):

export QTDIR=<found_directory>
if [ -z "$LD_LIBRARY_PATH" ]; then export LD_LIBRARY_PATH=$QTDIR/lib
else export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib ; fi

now log out and back in to have the changes take effect. Then issue this command to check if all required libraries are installed: "ls -l $QTDIR/lib". The output should look like this:

-rw-r--r--    1 root     root           63 Mai 14 13:08 README
-rw-r--r--    1 root     root      7041952 Mai 16 15:59 libdesigner.a
-rw-r--r--    1 root     root          708 Mai 16 15:31 libdesigner.prl
-rw-r--r--    1 root     root       492750 Mai 16 16:00 libeditor.a
-rw-r--r--    1 root     root          624 Mai 16 15:31 libeditor.prl
-rw-r--r--    1 root     root        21320 Mai 16 15:46 libqassistantclient.a
-rw-r--r--    1 root     root          635 Mai 16 15:31 libqassistantclient.prl
-rw-r--r--    1 root     root          680 Mai 16 15:31 libqnp.prl
-rw-r--r--    1 root     root          632 Mai 16 15:31 libqt-mt.prl
lrwxrwxrwx    1 root     root           17 Mai 16 15:46 libqt-mt.so -> libqt-mt.so.3.1.2
lrwxrwxrwx    1 root     root           17 Mai 16 15:46 libqt-mt.so.3 -> libqt-mt.so.3.1.2
lrwxrwxrwx    1 root     root           17 Mai 16 15:46 libqt-mt.so.3.1 -> libqt-mt.so.3.1.2
-rwxr-xr-x    1 root     root      7172825 Mai 16 15:46 libqt-mt.so.3.1.2
-rw-r--r--    1 root     root          575 Mai 14 13:15 libqt.prl
lrwxrwxrwx    1 root     root           14 Mai 14 13:38 libqt.so -> libqt.so.3.1.2
lrwxrwxrwx    1 root     root           14 Mai 14 13:38 libqt.so.3 -> libqt.so.3.1.2
lrwxrwxrwx    1 root     root           14 Mai 14 13:38 libqt.so.3.1 -> libqt.so.3.1.2
-rwxr-xr-x    1 root     root     10531631 Mai 14 13:38 libqt.so.3.1.2
-rw-r--r--    1 root     root          523 Mai 16 15:31 libqui.prl
lrwxrwxrwx    1 root     root           15 Mai 16 15:47 libqui.so -> libqui.so.1.0.0
lrwxrwxrwx    1 root     root           15 Mai 16 15:47 libqui.so.1 -> libqui.so.1.0.0
lrwxrwxrwx    0 root     root           15 Mai 16 15:47 libqui.so.1.0 -> libqui.so.1.0.0
-rwxr-xr-x    1 root     root       229634 Mai 16 15:47 libqui.so.1.0.0
             

As far as we know now, you need both the single threaded (libqt.so) and the multi-threaded (libqt-mt.so) libraries. If you are missing one of them you need to install it. People reported to have KPhone running with libqt-mt by using the --enable-mt switch with configure. We did not verify this yet, so we recommend to use the libqt.so for compiling KPhone.

1.2 This sections deals with the KDE conform compilation of QT3. If you did not find any QT3 installation, then you need to compile it (and KDE-3.1) yourself. Instructions can be found on http://developer.kde.org/build/compile_kde3_1.html. Or you can follow the instructions below, which are based on that page. In order to compile QT with the single threaded and multithreaded libraries, you must compile it twice with different settings. The first one will build the single threaded version of the library, the second one the multithreaded version. I did not figure out how to build both version in one compilation run. If you know how to do this, please tell us. Before starting to compile QT3, make sure you have all required software installed. Theses are;
  • Automake 1.5 and Autoconf 2.5
  • a C++ compiler which supports exceptions, preferably gcc-2.95.x or gcc-3.2
  • bunzip2 to decompress .bz2 files. Get libbz2 while you're at it, it enables reading of .tar.bz2 files in
    konqueror, and one day, will give access to .bz2 files to all KDE applications.
  • Make sure you install openssl, version 0.9.6 or later (versions 0.9.5x are not supported).
  • For Netscape-plugins support in konqueror, make sure to install lesstif.
  • For a better regular-expressions support in Javascript, install libpcre.
  • For the KDE help system, you'll need to install libxml2, version 2.3.13 or newer.
  • optional: libldap for the LDAP kioslave, and cdparanoia for the audiocd kioslave.
Now start to compile QT3:

        1. Download QT3 from trolltech
        2. "cd" to the directory under which you want to install QT3
        3. "bunzip2 -c qt-x11-3.1.1.tar.bz2 | tar xvf -"
        4. "ln -s qt-x11-3.1.1 qt3"
        5. "cd qt3 ; pwd"      The output of this will be the directory for QTDIR below
        6. Set up QTDIR and LD_LIBRARY_PATH as described above, re-login.
        7. "cd $QTDIR"
        8. ./configure -system-zlib -qt-gif -system-libpng -system-libjpeg \ 
                    -plugin-imgfmt-mng -no-stl -no-xinerama -no-g++-exceptions 
        9. "make"   this will take some time, can be an hour or two.
       10. ./configure -system-zlib -qt-gif -system-libpng -system-libjpeg \ 
                    -plugin-imgfmt-mng -no-stl -no-xinerama -no-g++-exceptions -thread
       11. "make"   this will take some time, can be an hour or two.
             

Now you should have a usable version of QT3 installed. Check this using the steps from section 1.1.

2. Check for KDE-3.1 installation. If you are using a Linux distribution like SuSe-8.2, KDE3-3.1 is shipped with the distribution and does not need to be compiled. Make sure that the QT3 developers packages are installed.

2.1 Check if your environment is setting the KDEDIR environment variable. Use "echo $KDEDIR" to check this. If it is unset then you need to find the directory where KDE-3.1 is located or you need to compile it. If you find the directory (like /opt/kde3), then set KDEDIR to that value. Add the following lines to your ~/.bashrc (bash-users):

export KDEDIR=<found_directory>
if [ -z "$LD_LIBRARY_PATH" ]; then export LD_LIBRARY_PATH=$KDEDIR/lib
else export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$KDEDIR/lib ; fi
if [ -z "$PATH" ]; then export PATH=$KDEDIR/bin
else export PATH=$PATH:$KDEDIR/bin ; fi

now log out and back in to have the changes take effect.

2.2 If you did not find any KDE-3.1 installation, then you need to compile it yourself. Instructions can be found on http://developer.kde.org/build/compile_kde3_1.html. Or you can follow the instructions below, which are based on that page.


        The basic packages are arts, kdelibs, kdebase, kdemultimedia, kdesdk

        - Download the basic packages from kde.org
        - Compile the basic packages in the same order as listed above using these commands:

        1. bunzip2 -c <package>.tar.bz2 | tar xvf -
        2. cd <package> 
        3. ./configure 
        4. make 
        5. make install

             

Now you should have a usable version of KDE-3.1 installed. Check this using the steps from section 2.1.

3. Now you should be able to compile KPhone in the same way as the KDE components in section 2.2. Make sure your QTDIR and KDEDIR variables are set properly (see above sections) and give it a try:


        1. bunzip2 -c kphone-3.11-ipv6.tar.bz2 | tar xvf -
        2. cd kphone-3.11
        3. ./configure 
        4. make 
        5. make install

             

Now you should have a usable version of KPhone. Try to run it using the command "kphone"


Problem: Occupied audio device


Users report: "When I try to accept or inititate a call, KPhone tells me that another application uses the audio device."

Clue:
1. Kill the artsd process: "killall -9 artsd"
2. If this fails, find out which process uses the audio device:
- make yourself super user
- "lsof -n | egrep /dev/dsp"
- kill -9 all processes that use /dev/dsp
3. Look at the /dev/dsp and /dev/dsp0 files. They may be owned by another user or you are not permitted to read/write from/to it. The example below depicts such a situation:

              jfi@durin:~> ls -l /dev/dsp
              lrwxrwxrwx    1 root     root            4 2003-09-25 17:22 /dev/dsp -> dsp0
              jfi@durin:~> ls -l /dev/dsp0
              crw-------    1 rup      audio     14,   3 2003-03-14 14:07 /dev/dsp0