forked from Mirrors/freeswitch
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:
parent
0b4a7b63a5
commit
18d33240b8
|
@ -91,7 +91,7 @@ void XMLBinding::parseGroup(QXmlStreamWriter *streamWriter, QString group)
|
|||
return;
|
||||
}
|
||||
|
||||
if (group == "params")
|
||||
if (group == "params" || group == "customParams")
|
||||
{
|
||||
_settings->beginGroup(group);
|
||||
foreach(QString param, _settings->childKeys())
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include "ui_accountdialog.h"
|
||||
#include "fshost.h"
|
||||
|
||||
AccountDialog::AccountDialog(int accId, QWidget *parent) :
|
||||
AccountDialog::AccountDialog(QString accId, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
_accId(accId),
|
||||
ui(new Ui::AccountDialog)
|
||||
|
@ -61,7 +61,7 @@ void AccountDialog::writeConfig()
|
|||
{
|
||||
_settings->beginGroup("FreeSWITCH/conf/sofia.conf/profiles/profile/gateways");
|
||||
|
||||
_settings->beginGroup(QString::number(_accId));
|
||||
_settings->beginGroup(_accId);
|
||||
|
||||
_settings->beginGroup("gateway/attrs");
|
||||
_settings->setValue("name", ui->sofiaGwNameEdit->text());
|
||||
|
@ -77,6 +77,9 @@ void AccountDialog::writeConfig()
|
|||
_settings->setValue("register", ui->sofiaGwRegisterCombo->currentText());
|
||||
_settings->setValue("register-transport", ui->sofiaGwRegisterTransportCombo->currentText());
|
||||
_settings->setValue("retry-seconds", ui->sofiaGwRetrySecondsSpin->value());
|
||||
_settings->endGroup();
|
||||
|
||||
_settings->beginGroup("gateway/customParams");
|
||||
for (int i = 0; i< ui->sofiaExtraParamTable->rowCount(); i++)
|
||||
{
|
||||
_settings->setValue(ui->sofiaExtraParamTable->item(i, 0)->text(),
|
||||
|
@ -97,6 +100,27 @@ void AccountDialog::writeConfig()
|
|||
emit gwAdded();
|
||||
}
|
||||
|
||||
void AccountDialog::clear()
|
||||
{
|
||||
ui->sofiaExtraParamTable->clearContents();
|
||||
ui->sofiaExtraParamTable->setRowCount(0);
|
||||
|
||||
ui->sofiaGwNameEdit->clear();
|
||||
ui->sofiaGwUsernameEdit->clear();
|
||||
ui->sofiaGwRealmEdit->clear();
|
||||
ui->sofiaGwPasswordEdit->clear();
|
||||
ui->sofiaGwExtensionEdit->clear();
|
||||
ui->sofiaGwExpireSecondsSpin->setValue(60);
|
||||
ui->sofiaGwRegisterCombo->setCurrentIndex(0);
|
||||
ui->sofiaGwRegisterTransportCombo->setCurrentIndex(0);
|
||||
ui->sofiaGwRetrySecondsSpin->setValue(30);
|
||||
}
|
||||
|
||||
void AccountDialog::setAccId(QString accId)
|
||||
{
|
||||
_accId = accId;
|
||||
}
|
||||
|
||||
void AccountDialog::changeEvent(QEvent *e)
|
||||
{
|
||||
QDialog::changeEvent(e);
|
||||
|
|
|
@ -12,8 +12,10 @@ class QSettings;
|
|||
class AccountDialog : public QDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
AccountDialog(int accId, QWidget *parent = 0);
|
||||
AccountDialog(QString accId, QWidget *parent = 0);
|
||||
~AccountDialog();
|
||||
void clear();
|
||||
void setAccId(QString);
|
||||
|
||||
signals:
|
||||
void gwAdded();
|
||||
|
@ -27,7 +29,7 @@ protected:
|
|||
void changeEvent(QEvent *e);
|
||||
|
||||
private:
|
||||
int _accId;
|
||||
QString _accId;
|
||||
Ui::AccountDialog *ui;
|
||||
QSettings *_settings;
|
||||
};
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -18,6 +18,8 @@ public slots:
|
|||
|
||||
private slots:
|
||||
void addAccountBtnClicked();
|
||||
void editAccountBtnClicked();
|
||||
void remAccountBtnClicked();
|
||||
|
||||
private:
|
||||
Ui::PrefDialog *_ui;
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<item row="0" column="1">
|
||||
<widget class="QStackedWidget" name="stackedWidget">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="generalPage">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
|
@ -168,6 +168,9 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="sofiaGwEditBtn">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Edit</string>
|
||||
</property>
|
||||
|
|
Loading…
Reference in New Issue