mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 09:36:46 +00:00
Configuration is more mature now. We can add and remove several accounts. Still have to edit account and start doing some work on the events to treat them right.
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16298 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include <QtGui>
|
||||
#include "prefaccounts.h"
|
||||
#include "accountdialog.h"
|
||||
#include "fshost.h"
|
||||
|
||||
PrefAccounts::PrefAccounts(Ui::PrefDialog *ui) :
|
||||
_ui(ui)
|
||||
@@ -8,21 +9,70 @@ PrefAccounts::PrefAccounts(Ui::PrefDialog *ui) :
|
||||
_settings = new QSettings();
|
||||
_accDlg = NULL;
|
||||
connect(_ui->sofiaGwAddBtn, SIGNAL(clicked()), this, SLOT(addAccountBtnClicked()));
|
||||
connect(_ui->sofiaGwRemBtn, SIGNAL(clicked()), this, SLOT(remAccountBtnClicked()));
|
||||
}
|
||||
|
||||
void PrefAccounts::addAccountBtnClicked()
|
||||
{
|
||||
if (!_accDlg)
|
||||
{
|
||||
_accDlg = new AccountDialog(_ui->accountsTable->rowCount());
|
||||
QString uuid;
|
||||
if (g_FSHost.sendCmd("create_uuid", "", &uuid) != SWITCH_STATUS_SUCCESS)
|
||||
{
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not create UUID for account. Reason: %s\n", uuid.toAscii().constData());
|
||||
return;
|
||||
}
|
||||
_accDlg = new AccountDialog(uuid);
|
||||
connect(_accDlg, SIGNAL(gwAdded()), this, SLOT(readConfig()));
|
||||
}
|
||||
else
|
||||
{
|
||||
QString uuid;
|
||||
if (g_FSHost.sendCmd("create_uuid", "", &uuid) != SWITCH_STATUS_SUCCESS)
|
||||
{
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not create UUID for account. Reason: %s\n", uuid.toAscii().constData());
|
||||
return;
|
||||
}
|
||||
_accDlg->setAccId(uuid);
|
||||
_accDlg->clear();
|
||||
}
|
||||
|
||||
_accDlg->show();
|
||||
_accDlg->raise();
|
||||
_accDlg->activateWindow();
|
||||
}
|
||||
|
||||
void PrefAccounts::remAccountBtnClicked()
|
||||
{
|
||||
QList<QTableWidgetSelectionRange> sel = _ui->accountsTable->selectedRanges();
|
||||
int offset =0;
|
||||
|
||||
foreach(QTableWidgetSelectionRange range, sel)
|
||||
{
|
||||
for(int row = range.topRow(); row<=range.bottomRow(); row++)
|
||||
{
|
||||
QTableWidgetItem *item = _ui->accountsTable->item(row-offset,0);
|
||||
|
||||
_settings->beginGroup("FreeSWITCH/conf/sofia.conf/profiles/profile/gateways");
|
||||
_settings->remove(item->data(Qt::UserRole).toString());
|
||||
_settings->endGroup();
|
||||
_ui->accountsTable->removeRow(row-offset);
|
||||
offset++;
|
||||
}
|
||||
}
|
||||
|
||||
if (offset > 0)
|
||||
{
|
||||
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;
|
||||
}
|
||||
readConfig();
|
||||
}
|
||||
}
|
||||
|
||||
void PrefAccounts::writeConfig()
|
||||
{
|
||||
return;
|
||||
@@ -41,9 +91,11 @@ void PrefAccounts::readConfig()
|
||||
_settings->beginGroup(accId);
|
||||
_settings->beginGroup("gateway/attrs");
|
||||
QTableWidgetItem *item0 = new QTableWidgetItem(_settings->value("name").toString());
|
||||
item0->setData(Qt::UserRole, accId);
|
||||
_settings->endGroup();
|
||||
_settings->beginGroup("gateway/params");
|
||||
QTableWidgetItem *item1 = new QTableWidgetItem(_settings->value("username").toString());
|
||||
item1->setData(Qt::UserRole, accId);
|
||||
_settings->endGroup();
|
||||
_settings->endGroup();
|
||||
_ui->accountsTable->setRowCount(_ui->accountsTable->rowCount()+1);
|
||||
|
Reference in New Issue
Block a user