-
-
Notifications
You must be signed in to change notification settings - Fork 49
Mirror of Gerrit Jami Core Library and Daemon
License
savoirfairelinux/jami-daemon
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is SFLphone, release 0.7pre0cvs. Copyright (c) Savoir-faire Linux, Inc 2004-2006 <sflphoneteam@savoirfairelinux.com> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Introduction ------------ SFLPhone is a Voice-over-IP software phone. We want it to be: - portable (it runs under GNU/Linux, Mac OS X, Win32) - user friendly (fast, sleek, easy to learn interface) - corporate grade (transfers, holds, perfect audio quality) - fully compatible with Asterisk (SIP and IAX protocols) - customizable (support for custom skins in the QT interface) As the SIP/audio daemon and the user interface are separate processes, it is easy to provide different user interfaces. SFLPhone comes with a QT graphical user interface, an interactive command line interface, and even scripts to control the daemon from the shell. SFLPhone is actually used by the support team of Savoir-Faire Linux Inc. More information is available on the project homepage: http://www.sflphone.org/ Getting the dependencies ------------------------ Required libraries and tools: - ccRTP >= 1.3.4 (tested with ccrtp 1.4.1) and Common C++ 2 >= 1.3.20 (tested with commoncpp2 1.4.1) http://sourceforge.net/projects/gnutelephony/ - libeXosip2 >= 2.2.2 (tested with eXosip2 2.2.3) and libosip2 >= 2.2.1 (tested with libosip2-2.2.2) http://savannah.gnu.org/projects/exosip/ http://savannah.gnu.org/projects/osip/ - libxml2, libxml2-devel, pkgconfig usually available in distribution repositories - portaudio v19, available on http://www.portaudio.com/ http://portaudio.com/archives/pa_snapshot_v19.tar.gz or svn co https://www.portaudio.com/repos/portaudio/branches/v19-devel portaudio Optional libraries: - zeroconf: (tested with mDNSResponder87) http://developer.apple.com/darwin/projects/bonjour/ - QT: required for the graphical user interface usually available in distribution repositories - speex: codec for sound Some of the required libraries may be downloaded from http://www.sflphone.org/#downloads or http://www.sflphone.org/dev/ See tools/config.sh for details Building the dependencies ------------------------- If you do not use either the development packages of your distribution or the source packages made by the upstream authors of dependencies, you may want to try our custom dependencies building script in tools/ directory: 1. cd tools/ 2. edit config.sh to change the default prefix (/usr/local) 3. ./download.sh 4. ./install.sh 5. ./portaudio.sh <-- compile portaudio You can also compile each dependency, one by one: 1/ For commoncpp2 ./configure [option] make make install 2/ For ccrtp ./configure [option] make make install 3/ For libosip2 ./configure [option] make make install 4/ For portaudio v19 ./configure --enable-cxx [option] make make install Note: if you install portaudio in /usr/local, don't forget to set pkg-config path with: export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ Preparing a CVS checkout of SFLPhone to be built ------------------------------------------------ Before building from a CVS checkout, the GNU autotools suite must be used to generate the configure script and Makefiles. The current version of SFLPhone has been tested with Automake 1.9 and Autoconf 2.59. To do so, you may run the following script from the top directory: ./tools/autotoolize.sh Building SFLPhone ----------------- ./configure make make install (as root) Using SFLPhone -------------- If you have the sflphone 0.3 or 0.4 release, copy the file sflphonerc to sflphonedrc: cp ~/.sflphone/sflphonerc ~/.sflphone/sflphonedrc If you have an older version, remove your sflphonerc file located in $HOME/.sflphone 1. Install a GUI like sflphone-qt 2. Lauch sflphone interface, a setup window appears. 3. If you do have a SIP account, fill the SIP stuff where related. You can use STUN too. 4. Save your settings, restart it. You're done. A user's guide will be available on: http://www.sflphone.org/doc/ What if it does not build? -------------------------- - Try using the same versions of the libraries as we do. See http://www.sflphone.org in section Downloads. - Try using the same compilers as ours: gcc 4.1.0 on Fedora Linux Core 5 is known to work. - If you have dependencies installed in unusual directories, try setting the environment variable CXXFLAGS before building, for example: export CXXFLAGS="-I/opt/include" How to enable IAX support? -------------------------- Go inside libs directory and execute ./libiax2.sh script. Run ./configure with --enable-iax2 option. Run-time troubleshooting ------------------------ - If errors occured when trying to load shared libraries, check that the value of the environment variable LD_LIBRARY_PATH include the directories containing the required libraries, eg: export LD_LIBRARY_PATH=/path/to/my/lib:${LD_LIBRARY_PATH} - Portaudio don't detect your sound card because : * artsd is running * jackd is running On 2005/11/22, jack wasn't working with these settings: jackd -d alsa -r 8000 * you use alsa with sflphone and another application, but dmixer isn't configurated correctly inside ~/.asoundrc or /etc/alsa/alsa.conf - sflphone refuse to start because it's running You could have something like: "Exception: could not bind socket" Try to close sflphone before echo "stop sflphone" | nc localhost 3999 or killall sflphone Short description of content of source tree ------------------------------------------- - ringtones/ contains the different ringtones. - stund/ is an implementation of the protocol STUN used when there is a NAT. - utilspp/ allows to implement a singleton. - src/ is the core of SFLphone. It contains the main.cpp, managerimpl.cpp files, audio and gui directories, and files about signalisation SIP. Later, it should be better, when IAX will be implemented, that a directory groups these protocols. The ManagerImpl class is the intermediaire between all the layer in the tree. - src/audio/ is the audio layer. It contains all about tones, dtmf, audiodriver, rtp layer, audio codec ulaw, alaw and gsm. - src/audio/gsm/ contains the implementation of gsm audiocodec library. - src/audio/pacpp/ implements PortAudioCpp, a native C++ binding of PortAudio V19. - src/gui/ is the old directory that contains all about different user interface. - src/gui/server is the directory that talk (tcp socket on port 3999) to sflphone client. The slfphone client can be a console program or a graphical interface. How is structured SFLphone (>=0.5) ---------------------------------- +------------+ |TCPSessionIO| +------------+ | +------------+ | SessionIO | +------------+ | +------------+ | GUI Server | +------------+ | +---------------------------+ | GUI Framework | +---------------------------+ | +---------------------------+ | ManagerImpl | +---------------------------+ | +---------------------------+ | Account | +---------------------------+ | +---------------------------+ | VoIPLink | +---------------------------+ | | +-----------+ +-------+ | SIP | | IAX | | RTP | +-------+ | STUN | +-----------+ It's in ManagerImpl where we declared Call vector and VoIPLink vector. VoIPLink vector contains all different VoIP link like SIP, IAX, ... Call vector contains all the calls according to the kind of VoIP link. About Savoir-Faire Linux ------------------------ Savoir-Faire Linux is a consulting company based in Montreal, Quebec. For more information, please check out our website: http://www.savoirfairelinux.com/ Contributing to SFLPhone ------------------------ Of course we love patches. And contributions. And spring rolls. The project infrastructure (CVS, bugtracker, MLs) is maintained on: http://forge.novell.com/modules/xfmod/project/?sflphone Do not hesitate to join us and post comments, suggestions, questions and general feedback on the forge.novell mailing-list. -- The SFLPhone Team
About
Mirror of Gerrit Jami Core Library and Daemon
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published