]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Fix editing accounts and add more descriptive information of why it fails.
authorJoão Mesquita <jmesquita@freeswitch.org>
Sun, 24 Jan 2010 20:18:24 +0000 (20:18 +0000)
committerJoão Mesquita <jmesquita@freeswitch.org>
Sun, 24 Jan 2010 20:18:24 +0000 (20:18 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16504 d0543943-73ff-0310-b7d9-9358b9ac24b2

fscomm/account.cpp
fscomm/account.h
fscomm/call.h
fscomm/fshost.cpp
fscomm/mainwindow.cpp
fscomm/mod_qsettings/mod_qsettings.cpp

index 971181842623afbd553e9183c7f5bd28e30c002c..3309c01b6ae9dde90f0fc6ac82fe857f5df3b2ed 100644 (file)
@@ -4,6 +4,9 @@
 Account::Account(QString name) :
     _name(name)
 {
+    _statusCode = QString();
+    _statusPhrase = QString();
+
     QSettings settings;
     settings.beginGroup("FreeSWITCH/conf/sofia.conf/profiles/profile/gateways");
     foreach(QString g, settings.childGroups())
@@ -12,7 +15,17 @@ Account::Account(QString name) :
         if(settings.value("gateway/attrs/name").toString() == name)
         {
             _uuid = g;
+            settings.endGroup();
             break;
         }
+        settings.endGroup();
     }
 }
+
+QString Account::getStateName()
+{
+    if (_statusPhrase.isEmpty())
+        return fscomm_gw_state_names[_state];
+
+    return QString("%1 - %2").arg(fscomm_gw_state_names[_state], _statusPhrase);
+}
index 7a044151f314069c97fcf103ae5638dcaf0968a0..302a112678114ddcac5af46300732a306e8f39e8 100644 (file)
@@ -35,13 +35,17 @@ public:
     QString getName() { return _name; }
     void setState(int state) { _state = state; }
     int getState() { return _state; }
-    QString getStateName() { return fscomm_gw_state_names[_state]; }
+    QString getStateName();
     QString getUUID() { return _uuid; }
+    void setStausCode(QString code) { _statusCode = code; }
+    void setStatusPhrase(QString phrase) { _statusPhrase = phrase; }
 
 private:
     QString _name;
     int _state;
     QString _uuid;
+    QString _statusCode;
+    QString _statusPhrase;
 };
 
 #endif // ACCOUNT_H
index b02459e4b98d26d4404c64e5773ad3bf63f55d44..6ec45d2076d968816094f0d19e55b1505d93affe 100644 (file)
@@ -49,7 +49,6 @@ class Call {
 public:
     Call();
     Call(int call_id, QString cid_name, QString cid_number, fscomm_call_direction_t direction, QString uuid);
-    /*~Call() { qDebug() << "I am being freed uuid: " << _uuid; }*/
     QString getCidName(void) { return _cid_name; }
     QString getCidNumber(void) { return _cid_number; }
     int getCallID(void) { return _call_id; }
index 7acad440e89cceea4fb2106b789a1d8c17ff3a09..69e732cc7a97cbb701f6578ccd4523b518db433b 100644 (file)
@@ -346,30 +346,38 @@ void FSHost::generalEventHandler(switch_event_t *event)
                     return;
 
                 if (state == "TRYING") {
+                    acc.data()->setStatusPhrase(switch_event_get_header_nil(event, "Phrase"));
                     acc.data()->setState(FSCOMM_GW_STATE_TRYING);
                     emit accountStateChange(acc);
                 } else if (state == "REGISTER") {
+                    acc.data()->setStatusPhrase(switch_event_get_header_nil(event, "Phrase"));
                     acc.data()->setState(FSCOMM_GW_STATE_REGISTER);
                     emit accountStateChange(acc);
                 } else if (state == "REGED") {
+                    acc.data()->setStatusPhrase(switch_event_get_header_nil(event, "Phrase"));
                     acc.data()->setState(FSCOMM_GW_STATE_REGED);
                     emit accountStateChange(acc);
                 } else if (state == "UNREGED") {
+                    acc.data()->setStatusPhrase(switch_event_get_header_nil(event, "Phrase"));
                     acc.data()->setState(FSCOMM_GW_STATE_UNREGED);
                     emit accountStateChange(acc);
                 } else if (state == "UNREGISTER") {
+                    acc.data()->setStatusPhrase(switch_event_get_header_nil(event, "Phrase"));
                     acc.data()->setState(FSCOMM_GW_STATE_UNREGISTER);
                     emit accountStateChange(acc);
                 } else if (state =="FAILED") {
+                    acc.data()->setStatusPhrase(switch_event_get_header_nil(event, "Phrase"));
                     acc.data()->setState(FSCOMM_GW_STATE_FAILED);
                     emit accountStateChange(acc);
                 } else if (state == "FAIL_WAIT") {
                     acc.data()->setState(FSCOMM_GW_STATE_FAIL_WAIT);
                     emit accountStateChange(acc);
                 } else if (state == "EXPIRED") {
+                    acc.data()->setStatusPhrase(switch_event_get_header_nil(event, "Phrase"));
                     acc.data()->setState(FSCOMM_GW_STATE_EXPIRED);
                     emit accountStateChange(acc);
                 } else if (state == "NOREG") {
+                    acc.data()->setStatusPhrase(switch_event_get_header_nil(event, "Phrase"));
                     acc.data()->setState(FSCOMM_GW_STATE_NOREG);
                     emit accountStateChange(acc);
                 }
index e9a0d7baf0090a1f06ed011a3888b1264f4e878e..3ff3b4f695e3806de4103f80369fc9fd6c8bb90f 100644 (file)
@@ -168,6 +168,7 @@ void MainWindow::coreLoadingError(QString err)
 
 void MainWindow::accountAdd(QSharedPointer<Account> acc)
 {
+    qDebug() << "Adding: " << acc.data()->getName();
     ui->tableAccounts->setRowCount(ui->tableAccounts->rowCount()+1);
     QTableWidgetItem *gwField = new QTableWidgetItem(acc.data()->getName());
     QTableWidgetItem *stField = new QTableWidgetItem(acc.data()->getStateName());
@@ -180,16 +181,17 @@ void MainWindow::accountAdd(QSharedPointer<Account> acc)
 
 void MainWindow::accountDel(QSharedPointer<Account> acc)
 {
+    qDebug() << "Deleting: " << acc.data()->getName();
     foreach (QTableWidgetItem *i, ui->tableAccounts->findItems(acc.data()->getName(), Qt::MatchExactly))
     {
         if (i->text() == acc.data()->getName())
         {
             ui->tableAccounts->removeRow(i->row());
-            ui->tableAccounts->setRowCount(ui->tableAccounts->rowCount()-1);
+            //ui->tableAccounts->setRowCount(ui->tableAccounts->rowCount()-1);
             ui->tableAccounts->resizeColumnsToContents();
             ui->tableAccounts->resizeRowsToContents();
             ui->tableAccounts->horizontalHeader()->setStretchLastSection(true);
-            return;
+            break;
         }
     }
 }
index bc3fb34e16b59d5439d0b28935fcd0b202081aa0..e8e873b5c75ed1b6f69d2c1ba069da9d4afbb29c 100644 (file)
@@ -183,7 +183,6 @@ static switch_status_t do_config(void)
     settings.beginGroup("FreeSWITCH/conf");
     if (settings.childGroups().isEmpty())
     {
-        qDebug() << "We are settings default.";
         setQSettingsDefaults();
     }
     settings.endGroup();