Commit 2ee8dbb5 authored by alexandresavard's avatar alexandresavard
Browse files

Merge branch 'master' into recording

Conflicts:

	src/audio/audiortp.cpp
	src/sipvoiplink.cpp
parents 007abd23 9c27daf4
...@@ -37,9 +37,9 @@ AC_CONFIG_FILES([src/Makefile \ ...@@ -37,9 +37,9 @@ AC_CONFIG_FILES([src/Makefile \
src/audio/codecs/ilbc/Makefile \ src/audio/codecs/ilbc/Makefile \
src/config/Makefile \ src/config/Makefile \
src/dbus/Makefile \ src/dbus/Makefile \
src/zeroconf/Makefile \
src/plug-in/audiorecorder/Makefile \ src/plug-in/audiorecorder/Makefile \
src/plug-in/Makefile]) src/plug-in/Makefile \
src/plug-in/test/Makefile])
dnl Unitary test section dnl Unitary test section
AC_CONFIG_FILES([test/Makefile]) AC_CONFIG_FILES([test/Makefile])
......
// AsciiDoc file
About
=====
SFLphone is meant to be a robust enterprise-class desktop phone. It is designed with a hundred-calls-a-day receptionist in mind. It can work for you, too.
SFLphone is released under the *GNU General Public License*.
SFLphone is being developed by the global community, and maintained by
http://www.savoirfairelinux.com[Savoir-faire Linux], a Montreal,
Quebec, Canada-based Linux consulting company.
// AsciiDoc file
Build notes
===========
sflphoned
---------
Instructions to build `sflphoned`:
TIP: Check out to fullfill the sflfile:Dependencies.txt[dependencies] first.
dbus-c++-bindings
~~~~~~~~~~~~~~~~~
Go to `libs/dbus` and run:
-------------------------
./autogen.sh
./configure --prefix=/usr
make
sudo make install
-------------------------
You can replace `--prefix=/usr` by whatever prefix you like. Make sure to
also change this value in the next steps.
NOTE: If you have `colorgcc`, configure will *fail* on `libeXpat`. Issue an `unset CC` and `unset CXX` to build the dbus bindings.
libiax2
~~~~~~~
Go to `libs/libiax2` and run:
-------------------------
./gen.sh
./configure --prefix=/usr
make
sudo make install
-------------------------
the daemon
~~~~~~~~~~
Then, go to the root of the repository, and run:
---------------------------------------------------
autoreconf --install
./configure --prefix=/usr
make
sudo make install
---------------------------------------------------
Run:
--------------------------------------
./configure --prefix=/usr --with-debug
--------------------------------------
to enable debug mode.
sflphone-qt
-----------
`sflphone-qt` is *deprecated* and can't be built anymore.
sflphone-gtk
------------
Compile `sflphone-gtk` by running:
-------------------------
cd sflphone-gtk
gnome-autogen.sh
./configure --prefix=/usr
make
sudo make install
-------------------------
Here again, run `./configure` with `--with-debug` to enable debugging mode.
NOTE: You may need to run `autoreconf --install` before the `configure` script.
You'll find `gnome-autogen.sh` in some `gnome-common`-like package of
your distribution. You can also replace it by a call to:
`autoreconf --install`.
// AsciiDoc file
Debugging techniques for SFLphone
---------------------------------
Listening protocol using `tcpdump`:
----------------------
----------------------
// AsciiDoc file
Dependencies to compile SFLphone daemon
---------------------------------------
`--------------------`----------`-----------------------------------------------------
Program Version Notes
--------------------------------------------------------------------------------------
libiax2 0.2.3 http://svncommunity.digium.com/view/libiax2/trunk/[svn repos] Source code included in the git repository.
Common C++2 1.3.21 http://sourceforge.net/projects/cplusplus/[website]
ccRTP 1.3.5 http://sourceforge.net/projects/cplusplus/[website]
libeXosip2 ** 2.2.2 http://savannah.nongnu.org/projects/exosip/[website]
libosip2 2.2.2 http://www.gnu.org/software/osip/[website]
libsamplerate 0.1.2 http://www.mega-nerd.com/SRC/[website]
libdbus-glib 0.73 Packaged with your favorite distribution.
dbus-c++-1 0.5 Source code included in the git repository. See Build notes.
libexpat1 1.95.8 Packaged with your favorite distribution.
libboost-dev 1.34.1
--------------------------------------------------------------------------------------
Dependencies to compile SFLphone-GTK
------------------------------------
`--------------------`----------`-----------------------------------------------------
Program Version Notes
--------------------------------------------------------------------------------------
libgtk2.0 2.2
gtkglext 1.0 Video branch. Integration OpenGL and GTK
dbus-glib 0.35
gnome-common
--------------------------------------------------------------------------------------
Dependencies to use audio codecs
--------------------------------
`--------------------`----------`-----------------------------------------------------
Program Version Notes
--------------------------------------------------------------------------------------
libgsm1-dev 1.0.10 Standard package - Necessary to use GSM codec
libspeex1-dev 1.1.12 Standard package - Necessary to use SPEEX codec
--------------------------------------------------------------------------------------
// AsciiDoc
Downloads
=========
Latest release:
[grid="all"]
`--------------------`----------`---------------------------
Package Type Link
------------------------------------------------------------
*SFLphone 0.7.2* Sources http://www.sflphone.org/releases/sflphone-0.7.2.tar.gz[Download] sflfile:Build.txt[Build notes]
FC6-RPM http://www.sflphone.org/releases/packages/rpm-fc6/sflphone-0.7.2-1.i386.rpm[Download]
RC6-SRPM http://www.sflphone.org/releases/packages/rpm-fc6/devel/sflphone-0.7.2-1.src.rpm[Download]
*SFLphone 0.7.0* Source http://www.sflphone.org/releases/sflphone-0.7.0.tar.gz[Download]
FC4-RPM http://www.sflphone.org/releases/packages/rpm-fc4/sflphone-0.7.0-1.i386.rpm[Download]
FC4-SRPM http://www.sflphone.org/releases/packages/rpm-fc4/devel/sflphone-0.7.0-1.src.rpm[Download]
------------------------------------------------------------
Latest source code
------------------
See the sflfile:Git_Access.txt[repository access] page for the latest source
code.
// [done], [not done], [not tested], etc.. are defined in asciidoc.conf
Features
========
SFLphone feature map
--------------------
* SIP features
- transfer: [done] and tested
- reinvite: [done] and tested
- play DTMF sipinfo: [done] and tested
- receive text message: [done] and tested with sipsak
- SFLphone to snom (asterisk): [done] and tested
- SFLphone to SFLphone (IP and no proxy): [done] and tested
- conference: [not done] yet
- send text message: [not done] yet
* IAX support: almost [done]
- place call: [done]
- transfer call: [done]
* Audio devices:
- OSS: [done] and tested (portaudio)
- ALSA: [done] and tested (portaudio)
- ALSA with dmix: [not tested]
- JACK: [partial], portaudio has problems to open it
- ASIO on windows: in portaudio, [not tested]
- on MacOSX: we can't use portaudio in 8kHz. libsamplerate was added to convert from 44,1kHz to 8kHz.
* Codecs:
- G711a/PCM: [done] and tested
- G711u: [done] and tested
- GSM: [done] and tested
- Speex codec 8khz: [not tested] but integrated
- ILBc: [notdone]
* Video support:
- video integration in SIP: [not done]
- video integration in IAX: [not done]
- integration in QT: not done
* Zeroconf:
- sflphone-d: partially
- sflphone-qt: not done
* SFLphone Client:
- QT3: done and tested on linux
- QT4: not tested
- GTK: not done
- Command Line Interface (in C): partially done
- Command Line Interface (in python): not done
* MacOSX port:
- compilation: done
- 44,1khz to 8khz conversion (with libsamplerate): not tested
* Windows port:
- compilation of sflphoned: not done
- compilation of sflphone-qt (qt3): not done
- compilation of sflphone-qt (qt4): not done
* Desktop Integration:
- firefox sip: handling: open sflphone, not integrated in install process
- konqueror sip: handling: open sflphone, not integrated in install process
- addressbook: open sflphone and call, not integrated in install process
- inter-process communication: [not done]
- tray icon: [not done]
- menu icon (.desktop): only in fedora rpm
- LDAP enterprise directory support: [not done]
* Packaging:
- Remove libeXosip2 from package: [not done]
- Remove portaudio final from package: [not done]
- Fedora Core 4 packages: [done]
- Suse 9.3 packages: [done]
- .tar.gz publication: [done]
- Debian packages: [not done]
- Suse 10 packages: [not done]
SFLphone-qt (linux)
-------------------
* audiodevice input/output selector: [not done]
* drag'n'drop over lcd screen: [done]
* paste with ctrl+v: [done]
* keyboard mapping: [partial], not completed
* keyboard shortcut: [partial], not completed
// AsciiDoc file
Git anonymous access
--------------------
To grab source code form SFLphone's git repository, run:
---------------------------------------------
git clone git://sflphone.org/git/sflphone.git
---------------------------------------------
which requires pass-through of *tcp port 9418*, or
----------------------------------------------
git clone http://sflphone.org/git/sflphone.git
----------------------------------------------
then
----------------------------------------------
cd sflphone
----------------------------------------------
View sflsite:build[build notes] for more details.
Git developer access
--------------------
Run:
--------------------------------------------------------------
ssh-keygen -C sflphone_org@sflphone.org
cat ~/.ssh/id_rsa.pub
--------------------------------------------------------------
and transmit us the content of the `id_rsa.pub` file, for shared-key
authentication. Then, if you already have a cloned repository, run:
--------------------------------------------------------------
git-config remote.origin.url git+ssh://sflphone_org@sflphone.org/git/sflphone.git
--------------------------------------------------------------
Otherwise, grab a new copy:
--------------------------------------------------------------
git clone git+ssh://sflphone_org@sflphone.org/git/sflphone.git
cd sflphone
autoreconf --install
--------------------------------------------------------------
// AsciiDoc file
Git developer access
--------------------
Run:
--------------------------------------------------------------
ssh-keygen -C sflphone_org@sflphone.org
cat ~/.ssh/id_rsa.pub
--------------------------------------------------------------
and transmit us the content of the `id_rsa.pub` file, for shared-key
authentication. Then, if you already have a cloned repository, run:
--------------------------------------------------------------
git-config remote.origin.url git+ssh://sflphone_org@sflphone.org/git/sflphone.git
--------------------------------------------------------------
Otherwise, grab a new copy:
--------------------------------------------------------------
git clone git+ssh://sflphone_org@sflphone.org/git/sflphone.git
cd sflphone
autoreconf --install
--------------------------------------------------------------
View sflsite:build[build notes] for more details.
//AsciiDoc file
Vision
------
SFLphone aims to provide an easy to use, feature full, standard compliant, VoIP software phone.
Goals for next release (0.8)
----------------------------
- Server side:
* Functional IAX transport
* Near perfect audio
* Multiple-client (GUI or other) connectivity to server
- New Gtk+ GUI with following functionality (although the server can do more):
* User can place a call
* User can answer a call
* User can transfer a call
* User can have an unlimited number of calls
* User can put a call on hold and off hold
* User is informed of waiting voice mail
* User can set up new SIP/IAX accounts
* User can edit current accounts
* User can delete accounts
* User can adjust speaker and microphone volume
* All instances of the UI must stay in sync.
Goals for release 0.8.5
-----------------------
- Server side:
* Perfect audio
* Better error handling of failed account registrations
* Fully working multiple account functionality
- Gtk+ GUI updates
* User can set up audio parameters
* User can set up STUN and proxy settings for SIP accounts
* User can choose a ringtone theme
* User can set up locale settings
* Desktop notification of events
* User can choose an account to place a call with
- Basic Python command-line client
* User can place a call
* User can answer calls
* User can send DTMF
* User can transfer a call
Goals for release 0.9
---------------------
- Server side:
* Contacts management (LDAP)
* Call history
* SMS sending
* Status (DND, Available, ...)
- Gtk+ GUI updates
* User can receive and send SMS messages
* User is informed of call duration
* User can set up speed call buttons
* User can consult/clear call history
* User can set a status
- Python CLI client
* Stable and mature code
* Extensible and configurable client
* User can put a call on hold and off hold
* User can adjust speaker and microphone volume
* User can script the client and integrate into other components
* CLI stays in sync with any other number of GUI/CLI/clients
// AsciiDoc file
IRC
===
Server:: `irc.freenode.org`
Channel:: `#sflphone`
// AsciiDoc file
Mailing lists
=============
sflphone-user
-------------
http://pouetpouet.list.com[subscribe] http://pouetpouet2.list.com[unsubscribe]
http://pouetpouet6.list.com[archives]
sflphone-devel
--------------
http://pouetpouet3.list.com[subscribe] http://pouetpouet4.list.com[unsubscribe]
http://pouetpouet5.list.com[archives]
// AsciiDoc file
News
====
January 2008:: Partnership with *Polytechnic School* of Montreal to implement video calls and video conference. Read sflsite:sflvideo[here].
December 2007:: Upcoming release 0.8.0. See the last sflsite:screenshots[].
September 2007:: A new Gtk+ client is being written, to play with the new D-BUS client/server interface.
//AsciiDoc file
Partnership
-----------
A partnership between Savoir-Faire Linux and the *Polytechnic school* of Montreal will begin in January 2008.
Five students from Polytechnic school will be working part-time on the project for a period of four months.
Goals
-----
- The technical goal of this partnership is to implement a video layer in SFLphone to allow *video calls* and *video conferencing*. It is an interesting challenge because videoconference is not much implemented in softphones yet. The first step consists in implementing peer-to-peer video calls.
- This is how the application should behave on a client side:
* The user opens a multimedia session with an other client (SIP protocol)
* Local video capture (video4linux2 driver) is compressed and shipped through RTP packets.
* In the same time, the incoming video stream (in RTP packets also) is decompressed and displayed.
* The visualization framework should be flexible and should allow user parametrization. 3D API OpenGL should be used.
// AsciiDoc file
Screenshots of upcoming releases
--------------------------------
This is an upcoming client, to be released with version 0.8.
.New SFLphone-GTK client (ver. 0.8)
sflimage::images/screenshots/sflphone_gtk_0.8.png[New SFLphone GTK client]
.New SFLphone-GTK client with the dialpad (ver. 0.8)
sflimage::images/screenshots/sflphoneDialpad_gtk_0.8.png[New SFLphone GTK client]
Historical screenshots
----------------------
.SFLphone 0.6.2 - Brushed metal skin
sflimage::images/screenshots/sflphone_qt3_0.6.2.png[SFLphone 0.6.2]
.SFLphone 0.6 - Alternate skin
sflimage::images/screenshots/sflphone_metal.png[SFLphone 0.6]
#
# Used in Features.txt
#
[replacements]
\[done\]\s*(.*)$=<span style="color: green">done \1<span>
\[not\s?done\]\s*(.*)$=<span style="color: red">not done \1<span>
\[partial\]\s*(.*)$=<span style="color: orange">partially done \1<span>
\[not\s?tested\]\s*(.*)$=<span style="color: orange">not tested \1<span>
#
# Used everywhere to link pages together. Refers to another
#
ifdef::backend-xhtml11[]
[sflfile-inlinemacro]
<a href="index.php?file={target}">{0?{0}}{0!{target}}</a>
[sflsite-inlinemacro]
<a href="index.php?mod={target}">{0?{0}}{0!{target}}</a>
endif::backend-xhtml11[]
#
# Image links (with "image:")
#
[sflimage-blockmacro]
<div class="image">
<a id="{id}"></a>
<div class="content">
<a class="image" href="{link#}">
<img src="index.php?img={target}" alt="{1={target}}"{1? title="{1}"}{width? width="{width}"}{height? height="{height}"}/>
{link#}</a>
</div>
<div class="image-title">{title}</div>
</div>
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment