Fix for publish/subscribe error
[vicar] / src / vicar-lib / src / telepathyutility.cpp
index 259ad0c..8aca28a 100644 (file)
@@ -8,6 +8,7 @@
 #include "accountmanagerproxy.h"
 #include "accountproxy.h"
 #include "accountcompatproxy.h"
+#include "connifacereqproxy.h"
 #include <QDBusInterface>
 #include <QDBusConnection>
 #include <QStringList>
@@ -109,7 +110,7 @@ QString TelepathyUtility::getAccountStatus(){
     return status;
 }
 
-//Create Vicar telepathy account (used installation)
+//Create Vicar telepathy account (used during installation)
 bool TelepathyUtility::createAccount(){
 
     AccountManagerProxy *amProxy = new AccountManagerProxy(AM_SERVICE,AM_OBJ_PATH,QDBusConnection::sessionBus(),this);
@@ -189,6 +190,39 @@ bool TelepathyUtility::deleteAccount(){
     return true;
 }
 
+bool TelepathyUtility::callNumberWithRing(QString number){
+
+    bool result = false;
+
+    ConnectionInterfaceRequestsProxy *requestsProxy = new ConnectionInterfaceRequestsProxy(RING_CONN_SERVICE,RING_CONN_PATH,QDBusConnection::sessionBus(),this);
+    if (requestsProxy->isValid()){
+        QVariantMap channelRequestDetails;
+        uint targetHandleType(1);
+        channelRequestDetails.insert("org.freedesktop.Telepathy.Channel.TargetHandleType",targetHandleType);
+        channelRequestDetails.insert("org.freedesktop.Telepathy.Channel.TargetID",number);
+        channelRequestDetails.insert("org.freedesktop.Telepathy.Channel.ChannelType","org.freedesktop.Telepathy.Channel.Type.StreamedMedia");
+        QDBusPendingReply<QDBusObjectPath,QVariantMap> dbusReply = requestsProxy->CreateChannel(channelRequestDetails);
+        dbusReply.waitForFinished();
+        if (!dbusReply.isError()){
+            QDBusObjectPath objPath = dbusReply.argumentAt<0>();
+            QVariantMap channelProperties = dbusReply.argumentAt<1>();
+            result = true;
+        }
+        else{
+            qDebug() << "Error occurred calling "<<number<< ". Error is "<< dbusReply.error();
+            result = false;
+        }
+    }
+
+    return result;
+}
+
+bool TelepathyUtility::sendDTMFTone(QString tone){
+    bool result = false;
+
+    return result;
+}
+
 // Marshall the Presence data into a D-Bus argument
  QDBusArgument &operator<<(QDBusArgument &argument, const SimplePresence &simplePresence)
  {