提交 KPhone 错误报告

作者:Michael George

自从撰写了文章《使用 LTSP 和软电话构建呼叫中心》(发表于 2005 年 9 月号的 Linux Journal)以来,KPhone 发生了一些新的变化。本文介绍了这些新的观察结果,并希望能提供足够的指导,以便其他人可以继续这项工作,并发布他们的发现,以造福开源社区。

我在此项目上进行的大部分开发工作都是使用 KPhone 4.0.5 版本。它运行良好,但偶尔会发生应用程序崩溃,这相当令人恼火。在最初的文章付印时,我曾希望在撰写本文之前彻底测试一个新版本的 KPhone,该版本将修复该问题,以便我们拥有一个万无一失的 LTSP/软电话解决方案。然而,情况并非如此。

KPhone 似乎不存在错误跟踪或报告系统,因此我联系了 Wirlab 并提到了我们的经历。我收到的回复基本上是:“我们没有遇到过这样的问题,但是自该版本以来已经有很多更改。尝试升级看看是否有帮助。”不幸的是,自从我撰写了最初的文章以来,我对系统的访问权限一直在减弱,自那时以来,我只能进行有限的测试。

我们使用 v4.1.1 取得了一些成功,并且它似乎不太频繁地突然关闭。但是,它生成的 DTMF 音调并非完全正确——例如,# 被发送为 * ——并且它仍然没有保持活动功能来帮助穿越 NAT。

KPhone 4.2 现在已可用,并且 Changelog 没有提及修复 DTMF。但是,我在 4.2 发布之前从 Wirlab 收到的邮件表明,DTMF 修复程序已经在 CVS 主干中。以下是用于构建 KPhone 的 LBE 的 KPhone 4.2 package.def 文件。

#
# 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

您仍然必须按照印刷文章中的说明来构建 KPhone 4.0.5,因为 kphone/kphone/kphone/Makefile 中对 CFLAGS 的更改对于成功构建仍然是必需的。

另一个不幸的消息是,由于资源短缺,Wirlab 正在为 KPhone 寻找新的归宿。今年 6 月中旬,我的印象是他们没有计划发布新版本,但 4.2 版本于 7 月 4 日发布了。如果有人有兴趣接手这个项目,您可以联系 kphone@wirlab.net;我相信他们会很乐意与您交谈。

希望 KPhone 将继续得到支持。然而,正如开源领域经常发生的情况一样,还有其他替代方案。一种可能性是 Twinkle。尽管它还处于开发的早期阶段,但它确实有一个不错的界面。它还需要 Qt 库,以及另外两个主要的库:ccRTP,一个实现 IETF 的实时传输协议 RTP 的 C++ 库;以及 commoncpp2,一个用于编写 C++ 应用程序的可移植类框架。这两个软件包都可用于 SuSE Linux 系统,分别为 ccRTP 和 CommonC++,我相信也适用于所有其他主要的基于软件包的发行版。Gentoo 在其 portage 树中包含了 commoncpp2,但我没有找到 ccRTP port。不过,您始终可以从源代码安装它。

我提到这些软件包所需的库,是因为 LTSP 构建环境不仅需要应用程序的软件包定义,还需要任何必要的库。这意味着,应用程序所需的非典型库越多,在 LTSP 环境中安装和运行就越困难。

SIP VoIP 电话,无论是硬件电话还是软件电话,都是当今领域中最常见的,它们非常适合内部网络系统,正如我在印刷文章中所描述的那样。然而,当涉及到 VoIP 电话访问 NAT 外部的服务器时,IAX2 协议要容易得多。在该领域,Kiax 是可用的,它只需要 Qt 和 iaxclient 库。IAXComm 也是可用的,它需要 WxWindows GUI 库。为了便于构建,我建议尝试 Kiax。对 digium.com 邮件列表的检查显示,关于 Kiax 的评论很少,这可能并不全是坏事。至少没有很多人谴责它的错误。

考虑到 IAX2 在穿越 NAT 方面的优越性以及 Kiax 的轻量级库需求,这将是我下一个与 LTSP 一起使用的 Linux 软电话。Kiax 具有 KPhone 所没有的一个显着功能,即允许为输入输出 响铃选择单独的音频设备。如果您希望您的主要音频 I/O 通过耳机进行,但您希望即使在不佩戴耳机的情况下也能听到铃声,这将特别有用。总而言之,Kiax 看起来非常有前景。

目前,我没有关于我们经济型电话安装的更多信息。我计划在不久的将来尝试 Kiax,也许会有足够的好消息在另一篇 Linux Journal 网站文章中分享。

Michael 在密歇根理工大学和普渡大学获得了计算机科学学位,时间比他愿意承认的要久远得多。他现在与妻子和五个孩子住在密歇根州的农村地区。他自 1994 年以来一直使用 Linux,现在在 Ideal Solution 工作,寻找新的和创造性的方法来将包括 LTSP 和 Asterisk 在内的开源软件应用于客户。可以通过 george@idealso.com 与他联系。

加载 Disqus 评论