diff --git a/fscomm/conf/sofia.conf.xml b/fscomm/conf/sofia.conf.xml
index ad9a3944f8..67f7f5d958 100644
--- a/fscomm/conf/sofia.conf.xml
+++ b/fscomm/conf/sofia.conf.xml
@@ -10,117 +10,33 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/fscomm/mainwindow.h b/fscomm/mainwindow.h
index a6166642d8..103b1165dc 100644
--- a/fscomm/mainwindow.h
+++ b/fscomm/mainwindow.h
@@ -37,7 +37,7 @@
#include
#include
#include
-#include
+#include "preferences/prefdialog.h"
namespace Ui {
class MainWindow;
diff --git a/fscomm/preferences/prefdialog.cpp b/fscomm/preferences/prefdialog.cpp
index 8b537ec0b7..8a53fc2120 100644
--- a/fscomm/preferences/prefdialog.cpp
+++ b/fscomm/preferences/prefdialog.cpp
@@ -2,6 +2,7 @@
#include "prefdialog.h"
#include "ui_prefdialog.h"
#include "prefportaudio.h"
+#include "prefsofia.h"
PrefDialog::PrefDialog(QWidget *parent) :
QDialog(parent),
@@ -12,6 +13,7 @@ PrefDialog::PrefDialog(QWidget *parent) :
connect(this, SIGNAL(accepted()), this, SLOT(writeConfig()));
_mod_portaudio = new PrefPortaudio(ui, this);
+ _mod_sofia = new PrefSofia(ui, this);
readConfig();
}
@@ -23,6 +25,7 @@ PrefDialog::~PrefDialog()
void PrefDialog::writeConfig()
{
_mod_portaudio->writeConfig();
+ /*_mod_sofia->writeConfig();*/
}
void PrefDialog::changeEvent(QEvent *e)
@@ -40,4 +43,5 @@ void PrefDialog::changeEvent(QEvent *e)
void PrefDialog::readConfig()
{
_mod_portaudio->readConfig();
+ /*_mod_sofia->readConfig();*/
}
diff --git a/fscomm/preferences/prefdialog.h b/fscomm/preferences/prefdialog.h
index d22712e3f1..5ad01c852e 100644
--- a/fscomm/preferences/prefdialog.h
+++ b/fscomm/preferences/prefdialog.h
@@ -7,6 +7,7 @@
#include
class PrefPortaudio;
+class PrefSofia;
namespace Ui {
class PrefDialog;
@@ -29,6 +30,7 @@ private:
QSettings *_settings;
Ui::PrefDialog *ui;
PrefPortaudio *_mod_portaudio;
+ PrefSofia *_mod_sofia;
};
diff --git a/fscomm/preferences/prefdialog.ui b/fscomm/preferences/prefdialog.ui
index c8baa2b05e..276c89ed4c 100644
--- a/fscomm/preferences/prefdialog.ui
+++ b/fscomm/preferences/prefdialog.ui
@@ -60,7 +60,7 @@
General
-
+
:/images/pref_general.jpg:/images/pref_general.jpg
@@ -69,7 +69,7 @@
Sofia
-
+
:/images/pref_sip.png:/images/pref_sip.png
@@ -78,7 +78,7 @@
PortAudio
-
+
:/images/pref_audio.gif:/images/pref_audio.gif
@@ -270,7 +270,7 @@
-
-
+
XML
@@ -346,7 +346,7 @@
-
- $${local_ip_v4}
+ auto
@@ -360,7 +360,7 @@
-
- $${local_ip_v4}
+ auto
@@ -517,7 +517,7 @@
-
-
+
1000
@@ -887,7 +887,7 @@
-
+
diff --git a/fscomm/preferences/prefsofia.cpp b/fscomm/preferences/prefsofia.cpp
index 400d1011fa..a1b7ebc41f 100644
--- a/fscomm/preferences/prefsofia.cpp
+++ b/fscomm/preferences/prefsofia.cpp
@@ -11,6 +11,11 @@ PrefSofia::PrefSofia(Ui::PrefDialog *ui, QObject *parent) :
void PrefSofia::readConfig()
{
+ int guess_mask;
+ char guess_ip[80];
+ switch_find_local_ip(guess_ip, sizeof(guess_ip), &guess_mask, AF_INET);
+ _ui->sofiaRtpIpEdit->setText(QString(guess_ip));
+ _ui->sofiaSipIpEdit->setText(QString(guess_ip));
}
void PrefSofia::writeConfig()
@@ -18,6 +23,40 @@ void PrefSofia::writeConfig()
_settings->beginGroup("FreeSWITCH/conf");
_settings->beginGroup("sofia.conf");
+ /* General Settings */
+ _settings->setValue("log-level", _ui->sofiaLogLevelSpin->value());
+ _settings->setValue("auto-restart", _ui->sofiaAutoRestartCombo->currentText());
+ _settings->setValue("debug-presence", _ui->sofiaDebugPresenceSpin->value());
+ _settings->setValue("rewrite-multicasted-fs-path", _ui->sofiaRewriteMulticastedFsPathCombo->currentText());
+
+ /* Profile settings */
+ _settings->setValue("user-agent-string", _ui->sofiaUserAgentStringEdit->text());
+ _settings->setValue("debug", _ui->sofiaDebugSpin->value());
+ _settings->setValue("sip-trace", _ui->sofiaSipTraceCombo->currentText());
+ _settings->setValue("context", _ui->sofiaContextEdit->text());
+ _settings->setValue("rfc2833-pt", _ui->sofiaRfc2833PtEdit->text());
+ _settings->setValue("sip-port", _ui->sofiaSipPortSpin->value());
+ _settings->setValue("dialplan", _ui->sofiaDialplanEdit->text());
+ _settings->setValue("dtmf-duration", _ui->sofiaDtmfDurationSpin->value());
+ _settings->setValue("codec-prefs", _ui->sofiaCodecPrefsEdit->text());
+ _settings->setValue("use-rtp-timer", _ui->sofiaUseRtpTimerCombo->currentText());
+ _settings->setValue("rtp-timer-name", _ui->sofiaRtpTimerNameEdit->text());
+ _settings->setValue("rtp-ip", _ui->sofiaRtpIpEdit->text());
+ _settings->setValue("sip-ip", _ui->sofiaSipIpEdit->text());
+ _settings->setValue("hold-music", _ui->sofiaHoldMusicEdit->text());
+ _settings->setValue("apply-nat-acl", _ui->sofiaApplyNatAclEdit->text());
+ _settings->setValue("manage-presence", _ui->sofiaManagePresenceCombo->currentText());
+ _settings->setValue("max-proceeding", _ui->sofiaMaxProceedingEdit->text());
+ _settings->setValue("inbound-codec-negotiation", _ui->sofiaInboundCodecNegotiationCombo->currentText());
+ _settings->setValue("nonce-ttl", _ui->sofiaNonceTtlSpin->value());
+ _settings->setValue("auth-calls", _ui->sofiaAuthCallsCombo->currentText());
+ _settings->setValue("auth-all-packets", _ui->sofiaAuthAllPacketsCombo->currentText());
+ _settings->setValue("ext-rtp-ip", _ui->sofiaExtRtpIpEdit->text());
+ _settings->setValue("ext-sip-ip", _ui->sofiaExtSipIpEdit->text());
+ _settings->setValue("rtp-timeout-sec", _ui->sofiaRtpTimeoutSecSpin->value());
+ _settings->setValue("rtp-hold-timeout-sec", _ui->sofiaRtpHoldTimeoutSecSpin->value());
+ _settings->setValue("disable-register", _ui->sofiaDisableRegisterCombo->currentText());
+ _settings->setValue("challenge-realm", _ui->sofiaChallengeRealmCombo->currentText());
_settings->endGroup();
diff --git a/fscomm/resources.qrc b/fscomm/resources.qrc
index 2ee05d4693..aedbf6a89f 100644
--- a/fscomm/resources.qrc
+++ b/fscomm/resources.qrc
@@ -10,6 +10,7 @@
conf/accounts/example.xml
conf/event_socket.conf.xml
conf/portaudio.conf.xml
+ conf/sofia.conf.xml
resources/test.wav