Newer
Older
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)