}
}
}
+ ui->recoredCallBtn->setEnabled(true);
+ ui->recoredCallBtn->setChecked(false);
ui->dtmf0Btn->setEnabled(true);
ui->dtmf1Btn->setEnabled(true);
ui->dtmf2Btn->setEnabled(true);
call.data()->getCause()));
call.data()->setActive(false);
/* TODO: Will cause problems if 2 calls are received at the same time */
+ ui->recoredCallBtn->setEnabled(false);
+ ui->recoredCallBtn->setChecked(false);
ui->answerBtn->setEnabled(false);
ui->hangupBtn->setEnabled(false);
ui->dtmf0Btn->setEnabled(false);
call.data()->setActive(false);
ui->textEdit->setText(tr("Call with %1 (%2) hungup.").arg(call.data()->getCidName(), call.data()->getCidNumber()));
/* TODO: Will cause problems if 2 calls are received at the same time */
+ ui->recoredCallBtn->setEnabled(false);
+ ui->recoredCallBtn->setChecked(false);
ui->answerBtn->setEnabled(false);
ui->hangupBtn->setEnabled(false);
ui->dtmf0Btn->setEnabled(false);
binding = NULL;
switch_xml_free(xml);
+
+ QSettings settings;
+ if (!settings.allKeys().contains("FreeSWITCH/conf"))
+ setQSettingsDefaults();
+ setGlobals();
+
return SWITCH_STATUS_SUCCESS;
}
+void setQSettingsDefaults()
+{
+ QSettings settings;
+ settings.beginGroup("FreeSWITCH/conf");
+
+ /* Globals config */
+ /* Sofia config */
+ settings.beginGroup("sofia.conf");
+
+ /* General Settings */
+ settings.beginGroup("global_settings/params");
+ settings.setValue("log-level", 0);
+ settings.setValue("auto-restart", "true");
+ settings.setValue("debug-presence", 0);
+ settings.endGroup();
+
+ /* Profile settings */
+ settings.beginGroup("profiles");
+ settings.beginGroup("profile");
+
+ settings.beginGroup("attrs");
+ settings.setValue("name", "softphone");
+ settings.endGroup();
+
+ settings.beginGroup("settings/params");
+ settings.setValue("user-agent-string", "FreeSWITCH/FSComm");
+ settings.setValue("debug", 0);
+ settings.setValue("sip-trace", "no");
+ settings.setValue("context", "public");
+ settings.setValue("rfc2833-pt", 101);
+ settings.setValue("sip-port", 12345);
+ settings.setValue("dialplan", "XML");
+ settings.setValue("dtmf-duration", 100);
+ settings.setValue("codec-prefs", "CELT@48000h,G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM");
+ settings.setValue("use-rtp-timer", "true");
+ settings.setValue("rtp-timer-name", "soft");
+ settings.setValue("rtp-ip", "auto");
+ settings.setValue("sip-ip", "auto");
+ settings.setValue("hold-music", "local_stream://moh");
+ settings.setValue("apply-nat-acl", "rfc1918");
+ settings.setValue("manage-presence", "false");
+ settings.setValue("max-proceeding", 3);
+ settings.setValue("inbound-codec-negotiation", "generous");
+ settings.setValue("nonce-ttl", 60);
+ settings.setValue("auth-calls", "false");
+ settings.setValue("auth-all-packets", "false");
+ settings.setValue("ext-rtp-ip", "stun:stun.freeswitch.org");
+ settings.setValue("ext-sip-ip", "stun:stun.freeswitch.org");
+ settings.setValue("rtp-timeout-sec", 300);
+ settings.setValue("rtp-hold-timeout-sec", 1800);
+ settings.setValue("disable-register", "true");
+ settings.setValue("challenge-realm", "auto_from");
+ settings.endGroup();
+
+ settings.endGroup();
+ settings.endGroup();
+ settings.endGroup();
+
+ /* PortAudio config */
+ settings.beginGroup("portaudio.conf/settings/params");
+ settings.setValue("cid-name", "FSComm");
+ settings.setValue("cid-num", "00000000");
+ settings.setValue("ring-file", "tone_stream://%(2000,4000,440.0,480.0);loops=20");
+ settings.setValue("dialplan", "XML");
+ settings.setValue("ring-interval", 5);
+ settings.setValue("hold-file", "local_stream://moh");
+ settings.setValue("sample-rate", 48000);
+ settings.setValue("codec-ms", 10);
+ settings.setValue("indev", "");
+ settings.setValue("outdev", "");
+ settings.setValue("ringdev", "");
+ settings.endGroup();
+
+ /* Finish configs */
+ settings.endGroup();
+}
+
+void setGlobals()
+{
+ QSettings settings;
+ settings.beginGroup("FreeSWITCH/conf/globals");
+ foreach (QString k, settings.childKeys())
+ {
+ switch_core_set_variable(k.toAscii().data(), settings.value(k).toByteArray().data());
+ }
+ settings.endGroup();
+}
+
switch_status_t mod_qsettings_load(void)
{
}
_accDlg = new AccountDialog(uuid);
connect(_accDlg, SIGNAL(gwAdded(QString)), this, SLOT(readConfig()));
- connect(_accDlg, SIGNAL(gwAdded(QString)), this, SLOT(applyNewGw(QString)));
}
else
{
_accDlg->activateWindow();
}
-void PrefAccounts::applyNewGw(QString accId)
-{
- QString res;
- if (g_FSHost.sendCmd("sofia", "profile softphone rescan", &res) != SWITCH_STATUS_SUCCESS)
- {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not rescan the softphone profile.\n");
- return;
- }
-
- if (_ui->accountsTable->rowCount() == 1)
- {
- _settings->beginGroup("FreeSWITCH/conf/globals");
- _settings->setValue("default_gateway",_settings->value("/attrs/name"));
- _settings->endGroup();
- _settings->beginGroup(QString("FreeSWITCH/conf/sofia.conf/profiles/profile/gateways/%1/gateway").arg(accId));
- switch_core_set_variable("default_gateway",_settings->value("/attrs/name").toByteArray().data());
- _settings->endGroup();
- }
-}
-
void PrefAccounts::editAccountBtnClicked()
{
QList<QTableWidgetSelectionRange> selList = _ui->accountsTable->selectedRanges();
if (offset > 0)
{
QString res;
+ _settings->sync();
if (g_FSHost.sendCmd("sofia", "profile softphone rescan", &res) != SWITCH_STATUS_SUCCESS)
{
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not rescan the softphone profile.\n");
}
_settings->endGroup();
+
+ QString res;
+ _settings->sync();
+ if (g_FSHost.sendCmd("sofia", "profile softphone rescan", &res) != SWITCH_STATUS_SUCCESS)
+ {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not rescan the softphone profile.\n");
+ return;
+ }
+
+ if (_ui->accountsTable->rowCount() == 1)
+ {
+ QString default_gateway = _settings->value(QString("/FreeSWITCH/conf/sofia.conf/profiles/profile/gateways/%1/gateway/attrs/name").arg(_ui->accountsTable->item(0,0)->data(Qt::UserRole).toString())).toString();
+ _settings->beginGroup("FreeSWITCH/conf/globals");
+ qDebug() << QString("Fucking gw: %1").arg(default_gateway);
+ _settings->setValue("default_gateway", default_gateway);
+ _settings->endGroup();
+ switch_core_set_variable("default_gateway", default_gateway.toAscii().data());
+ }
+
}