From 11e7bafaa26c2667fca0145f7f0ae798beb8bb0a Mon Sep 17 00:00:00 2001
From: atraczyk <andreastraczyk@gmail.com>
Date: Wed, 5 Oct 2016 13:08:08 -0400
Subject: [PATCH] videocall: use sendTextMessage during video-call

- adds the use of SIP messages when in a call

Change-Id: Iff4cd42ac33e511d3371523ee2d909d6a3a8e2f5
Tuleap: #1206
---
 RingD.cpp          | 29 +++++++++++++++++++++++++++++
 RingD.h            |  1 +
 VideoPage.xaml.cpp |  2 +-
 3 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/RingD.cpp b/RingD.cpp
index 0e6249f..fe284c6 100644
--- a/RingD.cpp
+++ b/RingD.cpp
@@ -98,6 +98,35 @@ void RingClientUWP::RingD::sendAccountTextMessage(String^ message)
     }
 }
 
+// send message during video call
+void RingClientUWP::RingD::sendSIPTextMessage(String^ message)
+{
+    /* account id */
+    auto accountId = AccountsViewModel::instance->selectedAccount->accountID_;
+    std::wstring accountId2(accountId->Begin());
+    std::string accountId3(accountId2.begin(), accountId2.end());
+
+    /* call */
+    auto item = SmartPanelItemsViewModel::instance->_selectedItem;
+    auto callId = item->_callId;
+    std::wstring callId2(callId->Begin());
+    std::string callId3(callId2.begin(), callId2.end());
+
+    /* recipient */
+    auto contact = item->_contact;
+
+    /* payload(s) */
+    std::wstring message2(message->Begin());
+    std::string message3(message2.begin(), message2.end());
+    std::map<std::string, std::string> payloads;
+    payloads["text/plain"] = message3;
+
+    /* daemon */
+    DRing::sendTextMessage(callId3, payloads, accountId3, true /*not used*/);
+    contact->_conversation->addMessage(""/* date not yet used*/, MSG_FROM_ME, message);
+    contact->saveConversationToFile();
+}
+
 void
 RingD::createRINGAccount(String^ alias)
 {
diff --git a/RingD.h b/RingD.h
index b8177bc..d8991f1 100644
--- a/RingD.h
+++ b/RingD.h
@@ -76,6 +76,7 @@ internal:
     void startDaemon();
     void reloadAccountList();
     void sendAccountTextMessage(String^ message);
+    void sendSIPTextMessage(String^ message);
     void createRINGAccount(String^ alias);
     void createSIPAccount(String^ alias);
     void refuseIncommingCall(String^ call);
diff --git a/VideoPage.xaml.cpp b/VideoPage.xaml.cpp
index 1d44ac6..f6f5f54 100644
--- a/VideoPage.xaml.cpp
+++ b/VideoPage.xaml.cpp
@@ -186,7 +186,7 @@ RingClientUWP::Views::VideoPage::sendMessage()
     if (!contact || txt->IsEmpty())
         return;
 
-    RingD::instance->sendAccountTextMessage(txt);
+    RingD::instance->sendSIPTextMessage(txt);
     scrollDown();
 }
 
-- 
GitLab