Revision
16113
Author
jmesquita
Date
2010-01-01 14:00:18 -0600 (Fri, 01 Jan 2010)

Log Message

We now can receive multiple calls.

Modified Paths

Diff

Modified: freeswitch/trunk/contrib/jmesquita/FSPhone/mainwindow.cpp (16112 => 16113)


--- freeswitch/trunk/contrib/jmesquita/FSPhone/mainwindow.cpp	2010-01-01 19:35:56 UTC (rev 16112)
+++ freeswitch/trunk/contrib/jmesquita/FSPhone/mainwindow.cpp	2010-01-01 20:00:18 UTC (rev 16113)
@@ -11,6 +11,7 @@
     connect(&g_FSHost, SIGNAL(ringing(Call *)), this, SLOT(ringing(Call *)));
     connect(ui->answerBtn, SIGNAL(clicked()), this, SLOT(paAnswer()));
     connect(ui->hangupBtn, SIGNAL(clicked()), this, SLOT(paHangup()));
+    connect(ui->listCalls, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(callListDoubleClick(QListWidgetItem*)));
 
     g_FSHost.start();
 }
@@ -23,6 +24,18 @@
     g_FSHost.wait();
 }
 
+void MainWindow::callListDoubleClick(QListWidgetItem *item)
+{
+    Call *call = _lines.value(item->data(Qt::UserRole).toString());
+    QString switch_str = QString("switch %1").arg(call->getCallID());
+    QString result;
+    if (g_FSHost.sendCmd("pa", switch_str.toAscii(), &result) == SWITCH_STATUS_FALSE) {
+        ui->textEdit->setText(QString("Error switching to call %1").arg(call->getCallID()));
+        return;
+    }
+    ui->hangupBtn->setEnabled(true);
+}
+
 void MainWindow::fshostReady()
 {
     ui->statusBar->showMessage("Ready", 0);
@@ -75,7 +88,10 @@
     }
     else
     {
+        _lines.insert(call->getUUID(), call);
         ui->textEdit->setText(QString("Number: %1\nName: %3").arg(call->getCidNumber(), call->getCidName()));
+        QListWidgetItem *item = new QListWidgetItem(tr("%1 - %2 (Ringing)").arg(call->getCidName(), call->getCidNumber()), ui->listCalls);
+        item->setData(Qt::UserRole, call->getUUID());
     }
     ui->answerBtn->setEnabled(true);
 }

Modified: freeswitch/trunk/contrib/jmesquita/FSPhone/mainwindow.h (16112 => 16113)


--- freeswitch/trunk/contrib/jmesquita/FSPhone/mainwindow.h	2010-01-01 19:35:56 UTC (rev 16112)
+++ freeswitch/trunk/contrib/jmesquita/FSPhone/mainwindow.h	2010-01-01 20:00:18 UTC (rev 16113)
@@ -34,7 +34,7 @@
 #define MAINWINDOW_H
 
 #include <QMainWindow>
-#include <QPushButton>
+#include <QListWidgetItem>
 #include <switch.h>
 #include <fshost.h>
 #include <call.h>
@@ -53,6 +53,7 @@
     void changeEvent(QEvent *e);
 
 private slots:
+    void callListDoubleClick(QListWidgetItem *);
     void fshostReady();
     void paAnswer();
     void paCall();

Modified: freeswitch/trunk/contrib/jmesquita/FSPhone/mainwindow.ui (16112 => 16113)


--- freeswitch/trunk/contrib/jmesquita/FSPhone/mainwindow.ui	2010-01-01 19:35:56 UTC (rev 16112)
+++ freeswitch/trunk/contrib/jmesquita/FSPhone/mainwindow.ui	2010-01-01 20:00:18 UTC (rev 16113)
@@ -6,151 +6,205 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>287</width>
-    <height>438</height>
+    <width>805</width>
+    <height>500</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>MainWindow</string>
   </property>
   <widget class="QWidget" name="centralWidget">
-   <layout class="QVBoxLayout" name="verticalLayout">
+   <layout class="QHBoxLayout" name="horizontalLayout_3">
     <item>
-     <widget class="QTextEdit" name="textEdit">
-      <property name="enabled">
-       <bool>false</bool>
-      </property>
-      <property name="readOnly">
-       <bool>true</bool>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <layout class="QGridLayout" name="gridLayout_2">
-      <item row="0" column="0">
-       <widget class="QPushButton" name="answerBtn">
+     <layout class="QVBoxLayout" name="verticalLayout_2">
+      <item>
+       <widget class="QTextEdit" name="textEdit">
         <property name="enabled">
          <bool>false</bool>
         </property>
-        <property name="text">
-         <string>Answer</string>
+        <property name="readOnly">
+         <bool>true</bool>
         </property>
        </widget>
       </item>
-      <item row="0" column="1">
-       <widget class="QPushButton" name="hangupBtn">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>Hangup</string>
-        </property>
-       </widget>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout">
+        <item>
+         <widget class="QPushButton" name="newCallBtn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>New Call</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
       </item>
+      <item>
+       <layout class="QGridLayout" name="gridLayout_2">
+        <item row="0" column="0">
+         <widget class="QPushButton" name="answerBtn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>Answer</string>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="1">
+         <widget class="QPushButton" name="hangupBtn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>Hangup</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QGridLayout" name="gridLayout">
+        <item row="0" column="0">
+         <widget class="QPushButton" name="dtmf1Btn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>1</string>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="1">
+         <widget class="QPushButton" name="dtmf2Btn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>2</string>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="2">
+         <widget class="QPushButton" name="dtmf3Btn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>3</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="0">
+         <widget class="QPushButton" name="dtmf4Btn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>4</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="1">
+         <widget class="QPushButton" name="dtmf5Btn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>5</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="2">
+         <widget class="QPushButton" name="dtmf6Btn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>6</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="0">
+         <widget class="QPushButton" name="dtmf7Btn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>7</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="1">
+         <widget class="QPushButton" name="dtmf8Btn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>8</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="2">
+         <widget class="QPushButton" name="dtmf9Btn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>9</string>
+          </property>
+         </widget>
+        </item>
+        <item row="3" column="0">
+         <widget class="QPushButton" name="dtmfAstBtn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>*</string>
+          </property>
+         </widget>
+        </item>
+        <item row="3" column="1">
+         <widget class="QPushButton" name="dtmf0Btn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>0</string>
+          </property>
+         </widget>
+        </item>
+        <item row="3" column="2">
+         <widget class="QPushButton" name="dtmfPoundBtn">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>#</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
      </layout>
     </item>
     <item>
-     <layout class="QGridLayout" name="gridLayout">
-      <item row="0" column="0">
-       <widget class="QPushButton" name="dtmf1Btn">
-        <property name="enabled">
-         <bool>false</bool>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <widget class="QGroupBox" name="groupBox">
+        <property name="title">
+         <string>Active Calls</string>
         </property>
-        <property name="text">
-         <string>1</string>
-        </property>
+        <layout class="QVBoxLayout" name="verticalLayout_3">
+         <item>
+          <widget class="QListWidget" name="listCalls"/>
+         </item>
+        </layout>
        </widget>
       </item>
-      <item row="0" column="1">
-       <widget class="QPushButton" name="dtmf2Btn">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>2</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2">
-       <widget class="QPushButton" name="dtmf3Btn">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>3</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QPushButton" name="dtmf4Btn">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>4</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QPushButton" name="dtmf5Btn">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>5</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="2">
-       <widget class="QPushButton" name="dtmf6Btn">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>6</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="0">
-       <widget class="QPushButton" name="dtmf7Btn">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>7</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="QPushButton" name="dtmf8Btn">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>8</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="2">
-       <widget class="QPushButton" name="dtmf9Btn">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>9</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1">
-       <widget class="QPushButton" name="dtmf0Btn">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="text">
-         <string>0</string>
-        </property>
-       </widget>
-      </item>
      </layout>
     </item>
    </layout>
@@ -160,7 +214,7 @@
     <rect>
      <x>0</x>
      <y>0</y>
-     <width>287</width>
+     <width>805</width>
      <height>24</height>
     </rect>
    </property>