<X-PRE-PROCESS cmd="set" data="external_rtp_ip=stun:stun.freeswitch.org"/>
<X-PRE-PROCESS cmd="set" data="external_sip_ip=stun:stun.freeswitch.org"/>
<X-PRE-PROCESS cmd="set" data="console_loglevel=info"/>
- <X-PRE-PROCESS cmd="set" data="default_gateway=default"/>
<X-PRE-PROCESS cmd="set" data="us-ring=%(2000, 4000, 440.0, 480.0)"/>
<X-PRE-PROCESS cmd="set" data="bong-ring=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)"/>
<X-PRE-PROCESS cmd="set" data="sit=%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)"/>
</extension>
<extension name="number">
<condition field="destination_number" expression="^(.*)$">
+ <!-- Default gateway is set by FSComm when default account is selected -->
<action application="bridge" data="sofia/gateway/${default_gateway}/$1"/>
</condition>
</extension>
_settings->endGroup();
- 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;
- }
- emit gwAdded();
+ emit gwAdded(_accId);
}
void AccountDialog::clear()
return;
}
_accDlg = new AccountDialog(uuid);
- connect(_accDlg, SIGNAL(gwAdded()), this, SLOT(readConfig()));
+ 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 (!_accDlg)
{
_accDlg = new AccountDialog(uuid);
- connect(_accDlg, SIGNAL(gwAdded()), this, SLOT(readConfig()));
+ connect(_accDlg, SIGNAL(gwAdded(QString)), this, SLOT(readConfig()));
}
else
{