Skip to content

Mirror of Gerrit Jami Core Library and Daemon

License

Notifications You must be signed in to change notification settings

savoirfairelinux/jami-daemon

Repository files navigation

This is SFLPhoned-0.7 release.

You need 
- commoncpp2 >= 1.3.20
- libxml2, libxml2-devel and pkgconfig
- ccrtp >= 1.3.4
- libosip2 >= 2.2.1

See http://www.sflphone.org/#downloads to download required libraries.

Dependencies build instructions:
--------------------------------
You can use the builds script in tools directory.
1. Change the default configuration in config.sh (~/sflphone) is the prefix
2. ./download.sh
3. ./install.sh
 
You can also compile each dependencies, one by one:

1/	For commoncpp2-1.3.21
	./configure [option]
	make
	make install

2/	For ccrtp-1.3.5
	./configure [option]
	make
	make install

3/	For libosip2-2.2.1
	./configure [option]
	make
	make install

How to compile SFLphoned ?
-------------------------

./configure [option]
make
make install (as root) 
  ( Be sure you have the correct permissions).


How to use it ?
---------------

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/


Why does it not compile ?
-------------------------

- You don't have the same library versions as we do.
  See http://www.sflphone.org in section Downloads.

- You don't have the same compiler (some libraries dislike
  some compilers). We are using  gcc 4.0.1 on
  Fedora Core 4 Linux. 

- If error occured while loading shared libraries,
  you have to export LD_LIBRARY_PATH with your lib directory.
  ( example: export LD_LIBRARY_PATH=/opt/lib:${LD_LIBRARY_PATH} )

- If you don't install dependencies in classic install directories,
  you have to export CXXFLAGS. 
  ( 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.

Why does it not work ?
----------------------

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


Misc.
-----

Of course we love patches. And contribution. See http://www.sflphone.org/ .    
The project infrastructure (CVS, bugtraqer, MLs) is maintained on : 
http://forge.novell.com/modules/xfmod/project/?sflphone

Don't hesitate to post your comments/suggestions/questions on the 
forge.novell mailing-list.


Jean-Philippe Barette-LaPierre 
(jean-philippe.barrette-lapierre@savoirfairelinux.com)
Laurielle Lea (laurielle.lea@savoirfairelinux.com)
Jerome Oufella (jerome.oufella@savoirfairelinux.com)
Yan Morin (yan.morin@savoirfairelinux.com)