summaryrefslogtreecommitdiff
path: root/net/kphone
diff options
context:
space:
mode:
authorscw <scw@pkgsrc.org>2004-07-21 21:49:02 +0000
committerscw <scw@pkgsrc.org>2004-07-21 21:49:02 +0000
commit903dc0f5e40e05d07d7812c74963ca728c70c7e6 (patch)
tree1e8befc84451963aa9d2297eca76009e4351a395 /net/kphone
parent316324fc5fa6bbf98fca08bf69b7efaa30504fcb (diff)
downloadpkgsrc-903dc0f5e40e05d07d7812c74963ca728c70c7e6.tar.gz
Initial import of KPhone 4.0.3, a SIP (Session Initiation Protocol) user
agent for *nix. (Basically, a VoIP client) There are some rough edges in the NetBSD audio support of this package, but it runs well enough on my esa(4)-equipped laptop to make and receive FWD calls. A couple of minor patches are courtesy of the FreeBSD port of Kphone. Alistair Crooks also tidied up my first amateurish attempt at packaging this.
Diffstat (limited to 'net/kphone')
-rw-r--r--net/kphone/DESCR7
-rw-r--r--net/kphone/Makefile32
-rw-r--r--net/kphone/PLIST14
-rw-r--r--net/kphone/distinfo15
-rw-r--r--net/kphone/patches/patch-aa13
-rw-r--r--net/kphone/patches/patch-ab12
-rw-r--r--net/kphone/patches/patch-ac122
-rw-r--r--net/kphone/patches/patch-ad21
-rw-r--r--net/kphone/patches/patch-ae34
-rw-r--r--net/kphone/patches/patch-af13
-rw-r--r--net/kphone/patches/patch-ag18
-rw-r--r--net/kphone/patches/patch-ah111
-rw-r--r--net/kphone/patches/patch-ai22
-rw-r--r--net/kphone/patches/patch-aj13
-rw-r--r--net/kphone/patches/patch-ak31
15 files changed, 478 insertions, 0 deletions
diff --git a/net/kphone/DESCR b/net/kphone/DESCR
new file mode 100644
index 00000000000..b26d8830e4e
--- /dev/null
+++ b/net/kphone/DESCR
@@ -0,0 +1,7 @@
+KPhone is a SIP (Session Initiation Protocol) user agent for Linux,
+with which you can initiate VoIP (Voice over IP) connections over the
+Internet. It supports Presence and Instant Messaging, and to some extent
+also video calls between two hosts.
+
+The original KPhone was written by Billy Biggs, modifications made by
+Pekka Raisio, Jouni Vuorela and Juha Heinanen at Wirlab.
diff --git a/net/kphone/Makefile b/net/kphone/Makefile
new file mode 100644
index 00000000000..c2e887586c9
--- /dev/null
+++ b/net/kphone/Makefile
@@ -0,0 +1,32 @@
+# $NetBSD: Makefile,v 1.1 2004/07/21 21:49:02 scw Exp $
+#
+
+DISTNAME= kphone-4.0.3
+CATEGORIES= net comms
+MASTER_SITES= http://www.wirlab.net/kphone/
+
+MAINTAINER= tech-pkg@NetBSD.org
+HOMEPAGE= http://www.wirlab.net/kphone/
+COMMENT= Graphical Voice Over Internet (VoIP) phone
+
+WRKSRC= ${WRKDIR}/kphone
+
+USE_BUILDLINK3= yes
+
+USE_X11BASE= yes
+GNU_CONFIGURE= yes
+USE_GNU_TOOLS+= make
+CONFIGURE_ENV= QTDIR="${QTDIR}"
+
+PTHREAD_OPTS+= require
+
+do-install:
+ @${INSTALL_PROGRAM} ${WRKSRC}/kphone/kphone ${PREFIX}/bin
+ ${INSTALL_DATA_DIR} ${PREFIX}/share/kphone/icons
+ ${INSTALL_DATA} ${WRKSRC}/icons/*.png ${PREFIX}/share/kphone/icons
+
+.include "../../x11/qt3-libs/buildlink3.mk"
+
+.include "../../mk/pthread.buildlink3.mk"
+.include "../../mk/ossaudio.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/net/kphone/PLIST b/net/kphone/PLIST
new file mode 100644
index 00000000000..357702ee531
--- /dev/null
+++ b/net/kphone/PLIST
@@ -0,0 +1,14 @@
+@comment $NetBSD: PLIST,v 1.1 2004/07/21 21:49:02 scw Exp $
+bin/kphone
+share/kphone/icons/dial.png
+share/kphone/icons/enter.png
+share/kphone/icons/hangup.png
+share/kphone/icons/large-kphone.png
+share/kphone/icons/lo-kphone.png
+share/kphone/icons/mini-kphone.png
+share/kphone/icons/offline.png
+share/kphone/icons/online.png
+share/kphone/icons/phonebook.png
+share/kphone/icons/videocall.png
+@dirrm share/kphone/icons
+@dirrm share/kphone
diff --git a/net/kphone/distinfo b/net/kphone/distinfo
new file mode 100644
index 00000000000..cb0cdfcfe54
--- /dev/null
+++ b/net/kphone/distinfo
@@ -0,0 +1,15 @@
+$NetBSD: distinfo,v 1.1 2004/07/21 21:49:02 scw Exp $
+
+SHA1 (kphone-4.0.3.tar.gz) = 957e8836c032fd0b5f29f7967569eb2ff101e538
+Size (kphone-4.0.3.tar.gz) = 220383 bytes
+SHA1 (patch-aa) = ecb31fdeeaf4cb2a5aafe50b5fe58b85375cfd65
+SHA1 (patch-ab) = 6edbc28aeb485b8004b6258b04d50c0888c28a31
+SHA1 (patch-ac) = 71ee825881b0a9135bdc4259c96a622e0c9cb268
+SHA1 (patch-ad) = 1017e963c72ac24b1b86f4c810222a8ee0583f33
+SHA1 (patch-ae) = be6482e3543dc990aee370aaf1750b5f802d73ac
+SHA1 (patch-af) = 5907274ec9cd14b39b6a12c9b9705907d6a649b0
+SHA1 (patch-ag) = 5b203fd99de99d447e6974487f67d4bfe79c9acb
+SHA1 (patch-ah) = f61ea22795a38eb0243ff2df40c681fdfc9ed85a
+SHA1 (patch-ai) = 4e405c8d0db5617fb814776507308864ee698818
+SHA1 (patch-aj) = 600f96693fcf6f00f0b23a76923cdf0046116936
+SHA1 (patch-ak) = 7b9bdf3f99cf5b373a82d40f6f81fd5b06a91982
diff --git a/net/kphone/patches/patch-aa b/net/kphone/patches/patch-aa
new file mode 100644
index 00000000000..5317d35cd6d
--- /dev/null
+++ b/net/kphone/patches/patch-aa
@@ -0,0 +1,13 @@
+$NetBSD: patch-aa,v 1.1 2004/07/21 21:49:02 scw Exp $
+
+--- dissipate2/extern_md5.h.orig 2004-03-04 11:22:56.000000000 +0000
++++ dissipate2/extern_md5.h 2004-07-21 12:34:43.000000000 +0100
+@@ -1,6 +1,8 @@
+ #ifndef EXTERN_MD5_H
+ #define EXTERN_MD5_H
+
++#include <sys/types.h>
++
+ #define HASHLEN 16
+ typedef u_char HASH[HASHLEN];
+ #define HASHHEXLEN 32
diff --git a/net/kphone/patches/patch-ab b/net/kphone/patches/patch-ab
new file mode 100644
index 00000000000..e79956dac50
--- /dev/null
+++ b/net/kphone/patches/patch-ab
@@ -0,0 +1,12 @@
+$NetBSD: patch-ab,v 1.1 2004/07/21 21:49:02 scw Exp $
+
+--- dissipate2/messagesocket.h.orig 2004-03-04 11:22:56.000000000 +0000
++++ dissipate2/messagesocket.h 2004-07-21 12:34:43.000000000 +0100
+@@ -23,6 +23,7 @@
+ #define MESSAGESOCKET_H_INCLUDED
+
+ #include <netdb.h>
++#include <sys/types.h>
+ #include <netinet/in.h>
+
+ class MessageSocket
diff --git a/net/kphone/patches/patch-ac b/net/kphone/patches/patch-ac
new file mode 100644
index 00000000000..ff7abf0b2b6
--- /dev/null
+++ b/net/kphone/patches/patch-ac
@@ -0,0 +1,122 @@
+$NetBSD: patch-ac,v 1.1 2004/07/21 21:49:02 scw Exp $
+
+--- dissipate2/siputil.cpp.orig 2004-03-04 11:22:57.000000000 +0000
++++ dissipate2/siputil.cpp 2004-07-21 12:11:34.000000000 +0100
+@@ -5,6 +5,9 @@
+ #include <sys/time.h>
+ #include <sys/errno.h>
+ #include <sys/ioctl.h>
++#if defined (__FreeBSD__) || defined(__NetBSD__)
++#include <ifaddrs.h>
++#endif
+ #include <net/if_arp.h>
+ #include <net/route.h>
+ #include <net/if.h>
+@@ -12,6 +15,7 @@
+ #include <arpa/inet.h>
+ #include <qmessagebox.h>
+ #include <netdb.h>
++#include <errno.h>
+ #include <fcntl.h>
+ #include <stdio.h>
+ #include <unistd.h>
+@@ -25,6 +29,8 @@
+ /* max number of network interfaces*/
+ #define MAX_IF 5
+
++#ifdef __linux__
++
+ /* Path to the route entry in proc filesystem */
+ #define PROCROUTE "/proc/net/route"
+
+@@ -40,6 +46,8 @@
+ #define SIOCGIFCOUNT 0x8935
+ #endif
+
++#endif /* not Linux */
++
+ char iface[16];
+
+
+@@ -61,6 +69,7 @@
+  */
+ char *getdefaultdev()
+ {
++#ifdef __linux__
+ FILE *fp = fopen( PROCROUTE, "r");
+ char buff[4096], gate_addr[128], net_addr[128];
+ char mask_addr[128];
+@@ -84,19 +93,49 @@
+ return iface;
+ }
+ fclose(fp);
++
+ /* didn't find a default gateway */
+ return NULL;
++#else
++ return "";
++#endif /* Linux */
+ }
+
+
+ void findFqdn( void )
+ {
+- int sock, err, if_count, i, j = 0;
++ int if_count, i, j = 0;
++#if !(defined(__FreeBSD__) || defined(__NetBSD__))
++ int sock, err;
+ struct ifconf netconf;
+ char buffer[32*MAX_IF];
+- char if_name[10][21];
+- char if_addr[10][21];
++#endif
++ char if_name[MAX_IF][21];
++ char if_addr[MAX_IF][21];
+ char *default_ifName;
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++ struct ifaddrs *ifp, *oifp;
++
++ if(getifaddrs(&ifp) < 0 )
++ printf( "Error with getifaddrs(): %i.\n", errno );
++ oifp=ifp; /* save ifp */
++ for (if_count = 0; ifp != NULL; ifp = ifp->ifa_next) {
++ if(ifp->ifa_addr->sa_family != AF_INET) continue;
++
++ if ( strncmp( ifp->ifa_name, "lo", 2 ) != 0 ) {
++ if(j == MAX_IF) printf( "Error: cannot handle more than %d interfaces.\n",MAX_IF);
++ else
++ {
++ strncpy( if_name[j], ifp->ifa_name, 20);
++ strncpy( if_addr[j], inet_ntoa(((struct sockaddr_in *)ifp->ifa_addr)->sin_addr ), 20);
++ j++;
++ }
++ }
++ if_count++;
++ }
++ if (oifp != NULL) freeifaddrs(oifp);
++
++#else /* not FreeBSD or NetBSD */
+ netconf.ifc_len = 32 * MAX_IF;
+ netconf.ifc_buf = buffer;
+ sock=socket( PF_INET, SOCK_DGRAM, 0 );
+@@ -104,9 +143,11 @@
+ if ( err < 0 ) printf( "Error in ioctl: %i.\n", errno );
+ close( sock );
+ if_count = netconf.ifc_len / 32;
++#endif
+ printf( "Found %i interfaces.\n", if_count );
+
+ //#test
++#if !(defined(__FreeBSD__) || defined(__NetBSD__))
+ if ( if_count == 1 ) {
+ strncpy( if_name[j], netconf.ifc_req[0].ifr_name, 20 );
+ strncpy( if_addr[j], inet_ntoa(((struct sockaddr_in*)(&netconf.ifc_req[0].ifr_addr))->sin_addr), 20 );
+@@ -120,6 +161,8 @@
+ }
+ }
+ }
++#endif /* not FreeBSD or NetBSD */
++
+ if( j == 1 ) {
+ dissipate_our_fqdn = strdup( if_addr[0] );
+ } else {
diff --git a/net/kphone/patches/patch-ad b/net/kphone/patches/patch-ad
new file mode 100644
index 00000000000..3a3db7cc7f4
--- /dev/null
+++ b/net/kphone/patches/patch-ad
@@ -0,0 +1,21 @@
+$NetBSD: patch-ad,v 1.1 2004/07/21 21:49:02 scw Exp $
+
+--- dissipate2/udpmessagesocket.cpp.orig 2004-03-04 11:22:57.000000000 +0000
++++ dissipate2/udpmessagesocket.cpp 2004-07-21 12:34:43.000000000 +0100
+@@ -1,5 +1,7 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
++#include <netinet/in.h>
++#include <netinet/in_systm.h>
+ #include <netinet/ip.h>
+ #include <errno.h>
+ #include <string.h>
+@@ -52,7 +54,7 @@
+ socklen_t optlen;
+ tos=IPTOS_PREC_CRITIC_ECP;
+ optlen=1;
+- if(setsockopt(socketfd,SOL_IP,IP_TOS,&tos,optlen) != 0){
++ if(setsockopt(socketfd,IPPROTO_IP,IP_TOS,&tos,optlen) != 0){
+ perror("UDPMessageSocket::SetTOS");
+ }
+ return 0;
diff --git a/net/kphone/patches/patch-ae b/net/kphone/patches/patch-ae
new file mode 100644
index 00000000000..ba8aa6787b0
--- /dev/null
+++ b/net/kphone/patches/patch-ae
@@ -0,0 +1,34 @@
+$NetBSD: patch-ae,v 1.1 2004/07/21 21:49:02 scw Exp $
+
+--- Makefile.in.orig 2004-04-01 14:54:32.000000000 +0100
++++ Makefile.in 2004-07-21 11:44:19.000000000 +0100
+@@ -2,22 +2,22 @@
+ SUBS :=$(foreach sub,$(SUBDIRS), $(sub)/$(sub).a)
+
+ all dep:
+- @for T in $(SUBDIRS); do make -C $$T $@; done
++ @for T in $(SUBDIRS); do ${MAKE} -C $$T $@; done
+
+ install: all
+- make -C icons install
+- make -C kphone install
++ ${MAKE} -C icons install
++ ${MAKE} -C kphone install
+
+ uninstall:
+- make -C icons uninstall
+- make -C kphone uninstall
++ ${MAKE} -C icons uninstall
++ ${MAKE} -C kphone uninstall
+
+ clean:
+- @for T in $(SUBDIRS); do make -C $$T $@; done
++ @for T in $(SUBDIRS); do ${MAKE} -C $$T $@; done
+
+ distclean: clean
+ rm -f config.cache config.log config.status
+ rm -f Makefile
+- @for T in $(SUBDIRS); do make -C $$T $@; done
++ @for T in $(SUBDIRS); do ${MAKE} -C $$T $@; done
+ rm -f icons/Makefile
+
diff --git a/net/kphone/patches/patch-af b/net/kphone/patches/patch-af
new file mode 100644
index 00000000000..72d6e5a4d2c
--- /dev/null
+++ b/net/kphone/patches/patch-af
@@ -0,0 +1,13 @@
+$NetBSD: patch-af,v 1.1 2004/07/21 21:49:02 scw Exp $
+
+--- configure.orig 2004-04-01 16:56:26.000000000 +0100
++++ configure 2004-07-21 11:45:46.000000000 +0100
+@@ -1860,7 +1860,7 @@
+ CFLAGS="$CFLAGS -g -DDEBUG"
+ echo "$ac_t""yes" 1>&6
+ else
+-CFLAGS="$CFLAGS -O3"
++CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS}"
+ echo "$ac_t""no" 1>&6
+ fi
+
diff --git a/net/kphone/patches/patch-ag b/net/kphone/patches/patch-ag
new file mode 100644
index 00000000000..d77233527d9
--- /dev/null
+++ b/net/kphone/patches/patch-ag
@@ -0,0 +1,18 @@
+$NetBSD: patch-ag,v 1.1 2004/07/21 21:49:02 scw Exp $
+
+--- kphone/Makefile.in.orig 2004-06-23 10:21:38.000000000 +0100
++++ kphone/Makefile.in 2004-07-21 12:52:34.000000000 +0100
+@@ -6,11 +6,11 @@
+ SHARE_DIR=@datadir@/kphone
+ BIN_DIR=@bindir@
+
+-MOREDEFS=-DSHARE_DIR=\"$(SHARE_DIR)\"
++MOREDEFS=-DSHARE_DIR=\"$(SHARE_DIR)\" -DDEVOSSAUDIO=\"$(DEVOSSAUDIO)\"
+
+ CFLAGS=@CFLAGS@ -I. -I../gsm -I../ilbc -I../dissipate2 @DEFS@ $(MOREDEFS)
+ CXXFLAGS=$(CFLAGS)
+-LIBS=@LIBS@ -lssl -lcrypto -lresolv
++LIBS=@LIBS@ -lssl -lcrypto -lresolv ${LIBOSSAUDIO} ${PTHREAD_LIBS}
+ LDFLAGS=@LDFLAGS@ -g
+
+ SUBLIBS=dissipate2 gsm ilbc
diff --git a/net/kphone/patches/patch-ah b/net/kphone/patches/patch-ah
new file mode 100644
index 00000000000..39c7e9e12f0
--- /dev/null
+++ b/net/kphone/patches/patch-ah
@@ -0,0 +1,111 @@
+$NetBSD: patch-ah,v 1.1 2004/07/21 21:49:02 scw Exp $
+
+--- kphone/dspoutoss.cpp.orig 2004-03-29 15:59:45.000000000 +0100
++++ kphone/dspoutoss.cpp 2004-07-21 12:35:56.000000000 +0100
+@@ -6,6 +6,9 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <errno.h>
++#ifdef __NetBSD__
++#include <sys/audioio.h>
++#endif
+
+ #include "dspoutoss.h"
+
+@@ -52,6 +55,7 @@
+ flags &= ~O_NONBLOCK;
+ fcntl( audio_fd, F_SETFL, flags );
+
++#ifndef __NetBSD__
+ // keep fragsize less than 20ms !!
+ int frag = ( ( 32767 << 16 ) | 7 );
+ if( ioctl( audio_fd, SNDCTL_DSP_SETFRAGMENT, &frag ) ) {
+@@ -59,6 +63,7 @@
+ printf( "ERROR: %s\n", lasterror.ascii() );
+ return false;
+ }
++#endif
+
+ int format = AFMT_S16_LE;
+
+@@ -108,6 +113,23 @@
+ 8000, rate, 100*((rate-8000)/8000.0) );
+ }
+
++#ifdef __NetBSD__
++ int duplex = 1;
++
++ if( ioctl( audio_fd, AUDIO_SETFD, &duplex ) == -1 ) {
++ lasterror = QString( "SETFD" ) + QString( strerror( errno ) );
++ printf( "ERROR: %s\n", lasterror.ascii() );
++ return false;
++ }
++
++ // keep fragsize less than 20ms !!
++ int frag = ( ( 32767 << 16 ) | 7 );
++ if( ioctl( audio_fd, SNDCTL_DSP_SETFRAGMENT, &frag ) ) {
++ lasterror = QString( "SETFRAG" ) + QString( strerror( errno ) );
++ printf( "ERROR: %s\n", lasterror.ascii() );
++ return false;
++ }
++#endif
+
+ audio_buf_info info;
+
+@@ -126,6 +148,14 @@
+ }
+ audio_buf.resize( info.fragsize * sizeof( short ) );
+
++#ifdef __NetBSD__
++ if( ioctl( audio_fd, AUDIO_FLUSH, 0 ) == -1 ) {
++ lasterror = QString( "FLUSH" ) + QString( strerror( errno ) );
++ printf( "ERROR: %s\n", lasterror.ascii() );
++ return false;
++ }
++#endif
++
+ lasterror = QString::null;
+ devstate = DeviceOpened;
+ return true;
+@@ -149,6 +179,14 @@
+ }
+ audio_buf.resize( info.fragsize * sizeof( short ) );
+
++#ifdef __NetBSD__
++ if( ioctl( audio_fd, AUDIO_FLUSH, 0 ) == -1 ) {
++ lasterror = QString( "FLUSH" ) + QString( strerror( errno ) );
++ printf( "ERROR: %s\n", lasterror.ascii() );
++ return false;
++ }
++#endif
++
+ lasterror = QString::null;
+ devstate = DeviceOpened;
+ return true;
+@@ -215,6 +253,7 @@
+
+ unsigned int DspOutOss::readableBytes( void )
+ {
++#ifndef __NetBSD__
+ audio_buf_info info;
+ struct timeval timeout;
+ fd_set read_fds;
+@@ -238,6 +277,18 @@
+ }
+
+ return info.bytes;
++
++#else /* !__NetBSD__ */
++
++ /* XXXSCW: This sucks, but kphone refuses to work without it */
++ int rsize;
++
++ if( ioctl( audio_fd, FIONREAD, &rsize) < 0 )
++ return 0;
++ if (rsize == 0)
++ rsize = 256;
++ return rsize;
++#endif /* __NetBSD__ */
+ }
+
+
diff --git a/net/kphone/patches/patch-ai b/net/kphone/patches/patch-ai
new file mode 100644
index 00000000000..994d6e95ee0
--- /dev/null
+++ b/net/kphone/patches/patch-ai
@@ -0,0 +1,22 @@
+$NetBSD: patch-ai,v 1.1 2004/07/21 21:49:02 scw Exp $
+
+--- kphone/callaudio.cpp.orig 2004-04-02 18:36:54.000000000 +0100
++++ kphone/callaudio.cpp 2004-07-21 12:51:09.000000000 +0100
+@@ -65,7 +65,7 @@
+ void CallAudio::setOSSFilename( const QString &devname )
+ {
+ if( devname == QString::null ) {
+- ossfilename = "/dev/dsp";
++ ossfilename = DEVOSSAUDIO;
+ } else {
+ ossfilename = devname;
+ }
+@@ -74,7 +74,7 @@
+ void CallAudio::setOSSFilename2( const QString &devname )
+ {
+ if( devname == QString::null ) {
+- ossfilename2 = "/dev/dsp";
++ ossfilename2 = DEVOSSAUDIO;
+ } else {
+ ossfilename2 = devname;
+ }
diff --git a/net/kphone/patches/patch-aj b/net/kphone/patches/patch-aj
new file mode 100644
index 00000000000..9631146da7c
--- /dev/null
+++ b/net/kphone/patches/patch-aj
@@ -0,0 +1,13 @@
+$NetBSD: patch-aj,v 1.1 2004/07/21 21:49:02 scw Exp $
+
+--- kphone/dspoutoss.h.orig 2004-03-04 11:22:53.000000000 +0000
++++ kphone/dspoutoss.h 2004-07-21 12:51:26.000000000 +0100
+@@ -19,7 +19,7 @@
+ * Constructs a DspOutOss object representing the given
+ * filename. Default is /dev/dsp.
+ */
+- DspOutOss( const QString &fileName = "/dev/dsp" );
++ DspOutOss( const QString &fileName = DEVOSSAUDIO );
+
+ /**
+ * Destructor. Will close the device if it is open.
diff --git a/net/kphone/patches/patch-ak b/net/kphone/patches/patch-ak
new file mode 100644
index 00000000000..3b2b2954167
--- /dev/null
+++ b/net/kphone/patches/patch-ak
@@ -0,0 +1,31 @@
+$NetBSD: patch-ak,v 1.1 2004/07/21 21:49:02 scw Exp $
+
+--- kphone/kcallwidget.cpp.orig 2004-06-23 10:21:38.000000000 +0100
++++ kphone/kcallwidget.cpp 2004-07-21 12:51:54.000000000 +0100
+@@ -443,7 +443,7 @@
+ return;
+ }
+ if( !audio->isAudioOn() ) {
+- audio_fd = ::open( "/dev/dsp", O_WRONLY | O_NONBLOCK );
++ audio_fd = ::open( DEVOSSAUDIO, O_WRONLY | O_NONBLOCK );
+ if( audio_fd == -1 ) {
+ QMessageBox::information( this, "Dial",
+ "Close any program which might be using soundcard \nand then retry dial." );
+@@ -815,7 +815,7 @@
+ if( isRingingTone ) {
+ if( ringCount < 5 ) {
+ ringCount++;
+- audio_fd = ::open( "/dev/dsp", O_WRONLY | O_NONBLOCK );
++ audio_fd = ::open( DEVOSSAUDIO, O_WRONLY | O_NONBLOCK );
+ if( audio_fd == -1 ) {
+ printf( "ERROR: %s\n", "Open Failed" );
+ return;
+@@ -881,7 +881,7 @@
+ if( !audio->isAudioOn() ) {
+ if( isRingingTone ) {
+ }
+- audio_fd = ::open( "/dev/dsp", O_WRONLY | O_NONBLOCK );
++ audio_fd = ::open( DEVOSSAUDIO, O_WRONLY | O_NONBLOCK );
+ if( audio_fd == -1 ) {
+ QMessageBox::information( this, "Accept Call",
+ "Close any program which might be using soundcard \nand then retry accepting call." );