README 5.09 KB
Newer Older
jpbl's avatar
jpbl committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
This is SFLPhoned-0.6 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" )

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        |  
		+---------------------------+
		             |
		+---------------------------+
		|         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)