From bc835175bade0a17334ce119779f06b7cd5da5ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Mesquita?= <jmesquita@freeswitch.org> Date: Thu, 14 Jan 2010 04:54:03 +0000 Subject: [PATCH] Edit gateway works too. Now we need to start parsing events right. git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16301 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- fscomm/conf/freeswitch.xml | 3 -- fscomm/preferences/accountdialog.cpp | 41 ++++++++++++++++++++++++++-- fscomm/preferences/accountdialog.h | 1 + fscomm/preferences/prefaccounts.cpp | 28 +++++++++++++++++++ fscomm/preferences/prefdialog.ui | 2 +- 5 files changed, 69 insertions(+), 6 deletions(-) diff --git a/fscomm/conf/freeswitch.xml b/fscomm/conf/freeswitch.xml index c11c8a5365..60d3190b78 100644 --- a/fscomm/conf/freeswitch.xml +++ b/fscomm/conf/freeswitch.xml @@ -139,9 +139,6 @@ </global_settings> <profiles> <profile name="softphone"> - <gateways> - <X-PRE-PROCESS cmd="include" data="accounts/*.xml"/> - </gateways> <settings> <!--<param name="media-option" value="bypass-media-after-att-xfer"/>--> <param name="user-agent-string" value="FreeSWITCH/FSComm"/> diff --git a/fscomm/preferences/accountdialog.cpp b/fscomm/preferences/accountdialog.cpp index 9e35d1ea6c..819514ac96 100644 --- a/fscomm/preferences/accountdialog.cpp +++ b/fscomm/preferences/accountdialog.cpp @@ -57,6 +57,45 @@ void AccountDialog::addExtraParam() ui->sofiaExtraParamTable->setItem(ui->sofiaExtraParamTable->rowCount()-1,1,paramValItem); } +void AccountDialog::readConfig() +{ + _settings->beginGroup("FreeSWITCH/conf/sofia.conf/profiles/profile/gateways"); + _settings->beginGroup(_accId); + + _settings->beginGroup("gateway/attrs"); + ui->sofiaGwNameEdit->setText(_settings->value("name").toString()); + _settings->endGroup(); + + _settings->beginGroup("gateway/params"); + ui->sofiaGwUsernameEdit->setText(_settings->value("username").toString()); + ui->sofiaGwRealmEdit->setText(_settings->value("realm").toString()); + ui->sofiaGwPasswordEdit->setText(_settings->value("password").toString()); + ui->sofiaGwExtensionEdit->setText(_settings->value("extension").toString()); + ui->sofiaGwExpireSecondsSpin->setValue(_settings->value("expire-seconds").toInt()); + ui->sofiaGwRegisterCombo->setCurrentIndex(ui->sofiaGwRegisterCombo->findText(_settings->value("register").toString(), + Qt::MatchExactly)); + ui->sofiaGwRegisterTransportCombo->setCurrentIndex(ui->sofiaGwRegisterTransportCombo->findText(_settings->value("register-transport").toString(), + Qt::MatchExactly)); + ui->sofiaGwRetrySecondsSpin->setValue(_settings->value("retry-seconds").toInt()); + _settings->endGroup(); + + _settings->beginGroup("gateway/customParams"); + int row = 0; + foreach(QString k, _settings->childKeys()) + { + row++; + ui->sofiaExtraParamTable->setRowCount(row); + QTableWidgetItem *varName = new QTableWidgetItem(k); + QTableWidgetItem *varVal = new QTableWidgetItem(_settings->value(k).toString()); + ui->sofiaExtraParamTable->setItem(row-1, 0,varName); + ui->sofiaExtraParamTable->setItem(row-1, 1,varVal); + } + _settings->endGroup(); + + _settings->endGroup(); + _settings->endGroup(); +} + void AccountDialog::writeConfig() { _settings->beginGroup("FreeSWITCH/conf/sofia.conf/profiles/profile/gateways"); @@ -91,8 +130,6 @@ void AccountDialog::writeConfig() _settings->endGroup(); - _settings->endGroup(); - QString res; if (g_FSHost.sendCmd("sofia", "profile softphone rescan", &res) != SWITCH_STATUS_SUCCESS) { diff --git a/fscomm/preferences/accountdialog.h b/fscomm/preferences/accountdialog.h index 413f0c0a99..1a9504180c 100644 --- a/fscomm/preferences/accountdialog.h +++ b/fscomm/preferences/accountdialog.h @@ -16,6 +16,7 @@ public: ~AccountDialog(); void clear(); void setAccId(QString); + void readConfig(); signals: void gwAdded(); diff --git a/fscomm/preferences/prefaccounts.cpp b/fscomm/preferences/prefaccounts.cpp index f14f8b51eb..3694963234 100644 --- a/fscomm/preferences/prefaccounts.cpp +++ b/fscomm/preferences/prefaccounts.cpp @@ -10,6 +10,7 @@ PrefAccounts::PrefAccounts(Ui::PrefDialog *ui) : _accDlg = NULL; connect(_ui->sofiaGwAddBtn, SIGNAL(clicked()), this, SLOT(addAccountBtnClicked())); connect(_ui->sofiaGwRemBtn, SIGNAL(clicked()), this, SLOT(remAccountBtnClicked())); + connect(_ui->sofiaGwEditBtn, SIGNAL(clicked()), this, SLOT(editAccountBtnClicked())); } void PrefAccounts::addAccountBtnClicked() @@ -42,6 +43,33 @@ void PrefAccounts::addAccountBtnClicked() _accDlg->activateWindow(); } +void PrefAccounts::editAccountBtnClicked() +{ + QList<QTableWidgetSelectionRange> selList = _ui->accountsTable->selectedRanges(); + + if (selList.isEmpty()) + return; + QTableWidgetSelectionRange range = selList[0]; + + QString uuid = _ui->accountsTable->item(range.topRow(),0)->data(Qt::UserRole).toString(); + + if (!_accDlg) + { + _accDlg = new AccountDialog(uuid); + connect(_accDlg, SIGNAL(gwAdded()), this, SLOT(readConfig())); + } + else + { + _accDlg->setAccId(uuid); + } + + _accDlg->readConfig(); + + _accDlg->show(); + _accDlg->raise(); + _accDlg->activateWindow(); +} + void PrefAccounts::remAccountBtnClicked() { QList<QTableWidgetSelectionRange> sel = _ui->accountsTable->selectedRanges(); diff --git a/fscomm/preferences/prefdialog.ui b/fscomm/preferences/prefdialog.ui index 1ed428f5ef..2ec999747b 100644 --- a/fscomm/preferences/prefdialog.ui +++ b/fscomm/preferences/prefdialog.ui @@ -169,7 +169,7 @@ <item> <widget class="QPushButton" name="sofiaGwEditBtn"> <property name="enabled"> - <bool>false</bool> + <bool>true</bool> </property> <property name="text"> <string>Edit</string>