Filing a KPhone Bug Report
Since writing the article "Building a Call Center with LTSP and Soft Phones", which appears in the September 2005 issue of Linux Journal, there have been a few new happenings regarding KPhone. This article presents those new observations and hopefully gives enough direction that others may continue this work and post their findings for the benefit of the Open Source community.
The majority of development I did on this project was with KPhone version 4.0.5. It worked fairly well but suffered occasional application crashes that were rather annoying. Looking ahead to this article when the original article went to print, I had hoped to test thoroughly a new version of KPhone that would have fixed the problem, so we would have a bullet-proof LTSP/soft-phone solution. However, that is not the case.
No bug-tracking or reporting system appears to exist for KPhone, so I contacted Wirlab and mentioned our experiences. The response I received basically was: "We haven't had such problems, but there are many changes since that version. Try upgrading and see if that helps." Unfortunately, my access to the system has been waning since I wrote the original article, and I have been able to do only limited testing since that time.
We had some success with using v4.1.1, and it appeared to snap shut less frequently. However, the DTMF tones it generated were not all correct--# was sent as a *, for example--and it still did not have a keep-alive feature to help when traversing a NAT.
KPhone 4.2 now is available, and the Changelog does not say anything about fixing DTMF. However, mail I received from Wirlab prior to the release of 4.2 indicated that the DTMF fix already was in CVS head. Below is the KPhone 4.2 package.def file for LBE, which builds KPhone.
#
# package.def file for building a package in the the LTSP build environment
#
# Copyright (c) 2003 by James A. McQuillan (McQuillan Systems, LLC)
#
# This software is licensed under the Gnu General Public License.
# The full text of which can be found at http://www.LTSP.org/license.txt
#
# NOTE: for some reason "-I /usr/X11R6/include" has to be put into
# kphone/kphone/kphone/Makefile to get trayicons to build.
VERSION = 4.2
RELEASE = 0
PKG1 = kphone-4.2.tar.gz
MD5SUM1 = 632abebc16d4f40bf03d191892e00e22
SOURCE1 = http://www.wirlab.net/kphone/${PKG1}
UNPACK1 = gunzip < ${TARBALL} | tar xf -
#BUILDDIR = kphone-build
BUILDDIR = kphone
SOURCEDIR = kphone
CONFIGURE = export CFLAGS="-march=i386" && \
export PREFIX=/opt/ltsp/i386 && \
export QTDIR=/usr/qt/3 && \
export PATH=$QTDIR/bin:$PATH && \
export MANPATH=$QTDIR/doc/man:$MANPATH && \
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH && \
../${SOURCEDIR}/configure --prefix $PREFIX --x-includes=/usr/X11R6/
include
BUILD = export CFLAGS="-march=i386" && \
export PREFIX=/opt/ltsp/i386 && \
export QTDIR=/usr/qt/3 && \
export PATH=$QTDIR/bin:$PATH && \
export MANPATH=$QTDIR/doc/man:$MANPATH && \
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH && \
make
INSTALL = export CFLAGS="-march=i386" && \
export PREFIX=/opt/ltsp/i386 && \
export QTDIR=/usr/qt/3 && \
export PATH=$QTDIR/bin:$PATH && \
export MANPATH=$QTDIR/doc/man:$MANPATH && \
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH && \
make install
CLEAN = export CFLAGS="-march=i386" && \
export PREFIX=/opt/ltsp/i386 && \
export QTDIR=/usr/qt/3 && \
export PATH=$QTDIR/bin:$PATH && \
export MANPATH=$QTDIR/doc/man:$MANPATH && \
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH && \
make clean
You still must follow the instructions in the print article in order to build KPhone 4.0.5, as the change to CFLAGS in kphone/kphone/kphone/Makefile still is required for a successful build.
Another unfortunate bit of news is that due to resource shortages, Wirlab is looking for a new home for KPhone. Mid-June of this year, I got the impression that there were no plans for another release, but 4.2 came out on July 4th. If anyone would be interested in picking up this project, you can contact kphone@wirlab.net; I am sure they would be happy to talk to you.
Hopefully, KPhone will continue to be supported. However, as often is the case in the open-source realm, there are alternatives. One possibility is Twinkle. Although fairly early in its development, it does have a nice interface. It also requires the Qt library, as well as two other main libraries: ccRTP, a C++ library that implements RTP, the real-time transport protocol from IETF; and commoncpp2, a portable class framework for writing C++ applications. Both of these packages are available for SuSE Linux systems, as ccRTP and CommonC++, respectively, and I am sure for all of the other major package-based distributions as well. Gentoo has commoncpp2 in its portage tree, but I found no ccRTP port. You always can install it from source, though.
I mention the libraries required for these packages, because it is quite likely that the LTSP Build Environment not only needs package definitions for the application, but also any necessary libraries. That means, the more atypical libraries required by an application, the more difficult it will be to install and get running in the LTSP environment.
SIP VoIP phones, both hard and soft, are the most common in the field today, and they are fine for internal network systems, as described in my print article. However, when it comes to VoIP phones accessing a server outside of a NAT, the IAX2 protocol is much easier to deal with. In that arena, Kiax is available and it requires only Qt and iaxclient libraries. IAXComm also is available and requires the WxWindows GUI library. For ease of building, I recommend trying Kiax. A check of the digium.com mailing lists shows little commentary about Kiax, which might not be all bad. At least there are not many people decrying its bugs.
Given the superiority of IAX2 for traversing NATs and the light library requirements of Kiax, that will be the next Linux softphone I use with LTSP. One notable feature Kiax has that KPhone does not is allowing the selection of separate audio devices for Input Output and Ring. This is particularly useful if you want your main audio I/O to be through a headset, but you want the ringtone to be audible even if the headset isn't being worn. All in all, Kiax looks quite promising.
For the time being, I have no more information on our economical phone installation. I have plans to give Kiax a try in the near future, and perhaps there will be enough good news to share in another Linux Journal Web site article.
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Sponsored by AMD
If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.
Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.
Sponsored by ActiveState
| Speed Up Your Web Site with Varnish | Jun 19, 2013 |
| Non-Linux FOSS: libnotify, OS X Style | Jun 18, 2013 |
| Containers—Not Virtual Machines—Are the Future Cloud | Jun 17, 2013 |
| Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer | Jun 12, 2013 |
| Weechat, Irssi's Little Brother | Jun 11, 2013 |
| One Tail Just Isn't Enough | Jun 07, 2013 |
- Speed Up Your Web Site with Varnish
- Containers—Not Virtual Machines—Are the Future Cloud
- Linux Systems Administrator
- Non-Linux FOSS: libnotify, OS X Style
- Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer
- Senior Perl Developer
- Technical Support Rep
- UX Designer
- Web & UI Developer (JavaScript & j Query)
- RSS Feeds
Featured Jobs
| Linux Systems Administrator | Houston and Austin, Texas | Host Gator |
| Senior Perl Developer | Austin, Texas | Host Gator |
| Technical Support Rep | Houston and Austin, Texas | Host Gator |
| UX Designer | Austin, Texas | Host Gator |
| Web & UI Developer (JavaScript & j Query) | Austin, Texas | Host Gator |
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?



3 hours 18 min ago
4 hours 34 min ago
8 hours 6 min ago
10 hours 59 min ago
11 hours 25 min ago
13 hours 53 min ago
14 hours 27 min ago
14 hours 28 min ago
14 hours 28 min ago
14 hours 31 min ago