Commit 2e82b778 authored by Pierre-Luc Beaudoin's avatar Pierre-Luc Beaudoin

Merge commit 'origin/master'

parents c0ffee7b bf52db50
......@@ -4,4 +4,11 @@
About
=====
SFLphone is a mega phone. We like it.
SFLphone is meant to be a robust enterprise-class desktop phone. It is design
with a hundred-calls-a-day receptionist in mind. It can work for you, too.
SFLphone is released under the *GNU General Public License* (GPLv2 and up).
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.
......@@ -2,16 +2,30 @@
Build notes
-----------
===========
sflphoned
~~~~~~~~~
---------
Instructions to build `sflphoned`:
dbus-c++-bindings
~~~~~~~~~~~~~~~~~
Go to `libs/dbus` and run:
-------------------------
./autogen.sh
./configure --prefix=/usr
make
sudo make install
-------------------------
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:
......@@ -22,11 +36,12 @@ sudo make install
-------------------------
the daemon
^^^^^^^^^^
~~~~~~~~~~
Then, go to the root of the repository, and run:
---------------------------------------------------
autoreconf --install
./configure --prefix=/usr (or whatever your prefix)
make
sudo make install
......@@ -34,13 +49,20 @@ sudo make install
sflphone-qt
~~~~~~~~~~~
-----------
`sflphone-qt` gets built with sflphoned, for now.
`sflphone-qt` is *deprecated* and should not be built anymore.
sflphone-gtk
~~~~~~~~~~~~
------------
Merging of `sflphone-gtk` to come.
Compile `sflphone-gtk` by running:
-------------------------
cd sflphone-gtk
gnome-autogen.sh
./configure --prefix=/usr
make
sudo make install
-------------------------
......@@ -15,6 +15,20 @@ libosip2 2.2.2 http://www.gnu.org/software/osip/[website]
portaudio v19 http://www.portaudio.com/[website]
portaudio C++ binds. http://www.portaudio.com/archives/pa_snapshot_v19.tar.gz[archive]
libsamplerate 0.1.2 http://www.mega-nerd.com/SRC/[website]
dbus-c++-1 0.5 See Build notes.
libexpat1 1.95.8 Packaged with your favorite distribution
--------------------------------------------------------------------------------------
Dependencies to compile SFLphone-GTK
------------------------------------
`--------------------`----------`-----------------------------------------------------
Program Version Notes
--------------------------------------------------------------------------------------
libgtk2.0 2.2
dbus-glib 0.35
--------------------------------------------------------------------------------------
// 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.
......@@ -5,16 +5,14 @@ Git anonymous access
--------------------
To access SFLphone's git repository (read-only):
To grab source code form SFLphone's git repository:
---------------------------------------------
git clone git://sflphone.org/git/sflphone.git
cd sflphone
autoreconf --install
---------------------------------------------
View sflsite:build[build notes] for more details.
......
//AsciiDoc file
Goals
-----
[insert goals]
// 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]
......@@ -3,5 +3,7 @@
News
====
* News 1
* News 2
September 2007:: A new Gtk+ client is being written, to play with the new D-BUS client/server interface. See sflsite:screenshots[]. Upcoming release 0.8.0.
July 2007:: *Pierre-Luc Beaudoin* and *Alexandre Bourget* have taken the lead of maintenance and development of SFLphone.
// AsciiDoc file
Screenshots
-----------
Screenshots of upcoming releases
--------------------------------
.Screenshot de 2007
sflimage::images/SflphonePOuetpoUEt.png[SFLphone qt3]
This is an upcoming client, to be released with version 0.8.
.Screenshot de SFLphone 0.7
sflimage::images/sflphone0.7.png[SFLphone 0.7]
.New SFLphone-GTK client (ver. 0.8)
sflimage::images/screenshots/sflphone_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]
......@@ -16,8 +16,11 @@
#
ifdef::backend-xhtml11[]
[sflink-inlinemacro]
<a href="index.php?f={target}.txt">{0?{0}}{0!{target}}</a>
[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[]
#
......@@ -28,7 +31,7 @@ endif::backend-xhtml11[]
<a id="{id}"></a>
<div class="content">
<a class="image" href="{link#}">
<img src="index.php?i={target}" alt="{1={target}}"{1? title="{1}"}{width? width="{width}"}{height? height="{height}"}/>
<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>
......
......@@ -450,7 +450,7 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
INPUT = src src/audio src/zeroconf src/config src/gui/server src/gui
INPUT = src src/audio src/zeroconf src/config src/dbus
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
......
......@@ -28,15 +28,16 @@
#define ACCOUNT_REGISTER "Account.autoregister"
#define ACCOUNT_SIP_FULL_NAME "SIP.fullName"
#define ACCOUNT_SIP_HOST_PART "SIP.hostPart"
#define ACCOUNT_SIP_USER_PART "SIP.userPart"
#define ACCOUNT_SIP_AUTH_NAME "SIP.username"
#define ACCOUNT_SIP_PASSWORD "SIP.password"
#define ACCOUNT_SIP_HOST_PART "SIP.hostPart"
#define ACCOUNT_SIP_PROXY "SIP.proxy"
#define ACCOUNT_IAX_HOST "IAX.host"
#define ACCOUNT_IAX_USER "IAX.user"
#define ACCOUNT_IAX_PASS "IAX.pass"
#define ACCOUNT_IAX_FULL_NAME "IAX.fullName"
#define ACCOUNT_IAX_HOST "IAX.host"
#define ACCOUNT_IAX_USER "IAX.user"
#define ACCOUNT_IAX_PASS "IAX.pass"
typedef enum
{
......
This diff is collapsed.
......@@ -160,7 +160,7 @@ create_accounts_tab()
view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(account_store));
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (view));
g_signal_connect (G_OBJECT (sel), "changed",
g_signal_connect (G_OBJECT (sel), "changed",
G_CALLBACK (select_account),
account_store);
......
......@@ -426,13 +426,13 @@ dbus_set_account_details(account_t *a)
&error);
if (error)
{
g_printerr ("Failed to call get_account_details() on ConfigurationManager: %s\n",
g_printerr ("Failed to call set_account_details() on ConfigurationManager: %s\n",
error->message);
g_error_free (error);
}
else
{
g_print ("DBus called get_account_details() on ConfigurationManager\n");
g_print ("DBus called set_account_details() on ConfigurationManager\n");
}
}
......
......@@ -130,12 +130,6 @@ class Account{
bool getState() { return _state; }
private:
/**
* Create a unique VoIPLink() depending on the protocol
* Multiple call to this function do nothing (if the voiplink pointer is 0)
* @return false if an error occurs
*/
virtual bool createVoIPLink() = 0;
protected:
/**
......
......@@ -24,7 +24,7 @@
IAXAccount::IAXAccount(const AccountID& accountID)
: Account(accountID)
{
createVoIPLink();
_link = new IAXVoIPLink(accountID);
}
......@@ -32,16 +32,6 @@ IAXAccount::~IAXAccount()
{
}
/* virtual Account function implementation */
bool
IAXAccount::createVoIPLink()
{
if (!_link) {
_link = new IAXVoIPLink(_accountID);
}
return (_link != 0 ? true : false);
}
bool
IAXAccount::registerAccount()
{
......
......@@ -21,6 +21,7 @@
#include "account.h"
/**
* An IAX Account specify IAX specific functions and objects (IAXCall/IAXVoIPLink)
* @author Yan Morin <yan.morin@gmail.com>
......@@ -34,6 +35,7 @@ public:
/* virtual Account function implementation */
void initConfig(Conf::ConfigTree& config);
/** Actually unuseful, since config loading is done in init() */
void loadConfig();
bool registerAccount();
bool unregisterAccount();
......@@ -41,8 +43,6 @@ public:
bool terminate();
private:
/* virtual Account function implementation */
bool createVoIPLink();
};
#endif
......@@ -268,7 +268,7 @@ IAXVoIPLink::sendAudioFromMic(void)
// take the lowest
int bytesAvail = (availBytesFromMic < maxBytesToGet) ? availBytesFromMic : maxBytesToGet;
_debug("available = %d, maxBytesToGet = %d\n", availBytesFromMic, maxBytesToGet);
//_debug("available = %d, maxBytesToGet = %d\n", availBytesFromMic, maxBytesToGet);
// Get bytes from micRingBuffer to data_from_mic
int nbSample = audiolayer->getMic(_dataAudioLayer, bytesAvail) / sizeof(SFLDataFormat);
......
......@@ -69,7 +69,7 @@ ManagerImpl::ManagerImpl (void)
_dbus = NULL;
// sound
_audiodriver = 0;
_audiodriver = NULL;
_dtmfKey = 0;
_spkr_volume = 0; // Initialize after by init() -> initVolume()
_mic_volume = 0; // Initialize after by init() -> initVolume()
......
......@@ -21,12 +21,10 @@
#include "manager.h"
SIPAccount::SIPAccount(const AccountID& accountID)
: Account(accountID)
{
createVoIPLink();
_link = new SIPVoIPLink(accountID);
}
......@@ -34,16 +32,6 @@ SIPAccount::~SIPAccount()
{
}
/* virtual Account function implementation */
bool
SIPAccount::createVoIPLink()
{
if (!_link) {
_link = new SIPVoIPLink(_accountID);
}
return (_link != 0 ? true : false);
}
bool
SIPAccount::registerAccount()
{
......
......@@ -35,6 +35,7 @@ public:
/* virtual Account function implementation */
void initConfig(Conf::ConfigTree& config);
/** Actually unuseful, since config loading is done in init() */
void loadConfig();
bool registerAccount();
bool unregisterAccount();
......@@ -42,8 +43,6 @@ public:
bool terminate();
private:
/* virtual Account function implementation */
bool createVoIPLink();
};
......
......@@ -9,5 +9,14 @@
<body>
<div id="page_wrapper">
<div id="header">
<a href="."><img src="images/logoSFLphone<?= ($module == 'page_home' ? '512x149' : '312x91') ?>.png" /></a>
<a href="."><img src="images/logoSFLphone<?= ($module == 'home' ? '512x149' : '312x91') ?>.png" /></a>
<?php if ($module != 'home') { ?>
<div id="homebutton">
<a href="index.php"><img src="images/home.png" alt="Home" /></a>
</div>
<?php } ?>
</div>
\ No newline at end of file
Replaced the plain DocBook XSL admonition icons with Jimmac's DocBook
icons (http://jimmac.musichall.cz/ikony.php3). I dropped transparency
from the Jimmac icons to get round MS IE and FOP PNG incompatibilies.
Stuart Rackham
---------
SFLphone took those from AsciiDoc package.
......@@ -10,8 +10,8 @@ require_once('sflphone.funcs.php');
// We've requested an image, fetch it, and send it.
if (defined($_REQUEST['i'])) {
$img = $_REQUEST['i'];
if (isset($_REQUEST['img'])) {
$img = $_REQUEST['img'];
switch(strtolower(substr($img, -3))) {
case 'jpg':
header("Content-Type: image/jpeg");
......@@ -26,9 +26,16 @@ if (defined($_REQUEST['i'])) {
break;
}
show_page($img);
show_page($img, FALSE);
exit();
}
if (isset($_REQUEST['file'])) {
include("header.php");
show_page($_REQUEST['file']);
include("footer.php");
exit();
}
$module = '';
......
......@@ -267,6 +267,7 @@ div.exampleblock-content {
/** SFLphone specific */
#header {
text-align: center;
position: relative;
}
#header img {
border: 0px;
......@@ -278,4 +279,41 @@ div.exampleblock-content {
padding: 1em 2em 2em 2em;
border-left: 1px #aaaaaa solid;
border-right: 1px #aaaaaa solid;
}
#downtown {
margin-top: 40px;
border-top: 1px solid #bbbbbb;
font-size: smaller;
padding: 1em 0pt 0pt 0pt;
clear: both;
color: #777777;
text-align: center;
}
.donate {
margin: auto
}
#homebutton {
position: absolute;
right: 0px;
top: 10px;
}
#homebutton img {
border: none;
}
.image {
text-align: center;
padding-bottom: 20px;
}
.image .image-title {
background: transparent url(images/see-above.png) no-repeat left;
padding-left: 20px;
color: #4D4F3A;
font-weight: normal;
font-style: italic;
display: inline;
}
\ No newline at end of file
......@@ -64,7 +64,6 @@ function get_page($page, $compile = TRUE) {
*/
function show_page($page, $compile = TRUE) {
print get_page($page, $compile);
}
......@@ -141,8 +140,9 @@ function compile_page($hash, $page) {
// keep return the hash
$fnconf = bring_local_file('asciidoc.conf');
// -d book so we can render H1s
$p = popen("GIT_DIR=".$GIT_REPOS." git-show $hash | asciidoc -f \"".$fnconf."\"-d book --no-header-footer -", 'r');
// -d book, so we can render H1s
// -a icons, enables the display of graphic icons in admonition blocks.
$p = popen("GIT_DIR=".$GIT_REPOS." git-show $hash | asciidoc -a icons -f \"".$fnconf."\" -d book --no-header-footer - 2>&1", 'r');
if (!$p) {
return "Unable to compile file: $page ($hash)\n";
......@@ -203,10 +203,20 @@ function get_git_file_content($file) {
function get_git_hash_content($hash) {
global $GIT_REPOS;
$output = array();
$content = exec("GIT_DIR=".$GIT_REPOS." git-show $hash", $output);
$output = '';
return $content;
$p = popen("GIT_DIR=".$GIT_REPOS." git-show $hash", 'r');
if (!$p) {
return "Unable to run git-show for hash: $hash\n";
}
while (!feof($p)) {
$output .= fread($p, 1024);
}
pclose($p);
return $output;
}
/**
......@@ -214,15 +224,24 @@ function get_git_hash_content($hash) {
*
* Used for comparison of cached/to cache/cache filename.
*
* @param string Filename without the $PREFIX (ex: Features.txt, images/pouet.png)
* @param string Filename without the $PREFIX (ex: Features.txt,
* images/pouet.png) and optionally, a ":" separator, followed by
* a git tree-ish (commit, branch, tag), ex: Build.txt:tags/0.7.2
* @return string SHA-1 hash
*/
function get_git_hash($file) {
global $USE_BRANCH, $GIT_REPOS;
$branch = $USE_BRANCH;
$split = explode(":", $file);
if (count($split) > 1) {
$branch = $split[1];
}
$output = array();
$cmd = "cd $GIT_REPOS; git-ls-tree $USE_BRANCH \"".git_filename($file)."\"";
$cmd = "cd $GIT_REPOS; git-ls-tree $branch \"".git_filename($split[0])."\"";
$string = exec($cmd, $output);
......
<h1>Build instructions</h1>
<?php show_page('Build.txt'); ?>
<?php show_page('MailingLists.txt'); ?>
<?php show_page('IRC.txt'); ?>
<p>
SFLphone is an <em>Open Source</em> project. This means
you can help the project by contributing <strong>time</strong>,
<strong>documentation</strong>, <strong>graphics</strong>, <strong>source code</strong> or <strong>translation</strong> services.
</p>
<p>
If you want to encourage us otherwise, your <strong>donations</strong> can help us:
</p>
<ul>
<li>Fund developer resources </li>
<li>Purchase hardware for development</li>
<li>Encourage the actual developers</li>
<li>Cope with fees endured in the development</li>
</ul>
<p>
You can donate money securely with <a href="http://www.paypal.com/">PayPal</a>
or a credit card right here:
</p>
<table class="donate">
<tr>
<td align=center>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="cyrille.beraud@savoirfairelinux.com" />
<input type="hidden" name="item_name" value="SFLphone 10USD donation" />
<input type="hidden" name="item_number" value="sfldon010" />
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="no_note" value="1" />
<input type="hidden" name="amount" value="10.00" />
<input type="hidden" name="currency_code" value="USD" />
<input type="hidden" name="tax" value="0" />
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" />
</form>
</td>
<td align=center>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="cyrille.beraud@savoirfairelinux.com" />
<input type="hidden" name="item_name" value="SFLphone 20USD donation"