dring: add message id in IncomingAccountMessage

Change-Id: I5622a466d0baccf906e6934b748719b2aa3ec37b
This commit is contained in:
Adrien Béraud
2020-03-03 20:51:15 -05:00
committed by Sébastien Blin
parent a7cf037271
commit e40f5facdb
12 changed files with 21 additions and 18 deletions

View File

@ -11,6 +11,7 @@
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="s" name="accountType" direction="in" tp:type="String">
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out" tp:type="String_String_Map">
</arg>
</method>
@ -99,6 +100,7 @@
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="MapStringString"/>
<arg type="s" name="accountID" direction="in">
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="in" tp:type="String_String_Map">
</arg>
</method>
@ -563,8 +565,8 @@
<method name="getNearbyPeers" tp:name-for-bindings="getNearbyPeers">
<arg type="s" name="accountID" direction="in"/>
<arg type="a{ss}" name="result" direction="out" tp:type="String_String_Map"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="result" direction="out" tp:type="String_String_Map"/>
<tp:docstring>
Get Discovered Peer Map
</tp:docstring>
@ -592,9 +594,10 @@
Notify clients that a new text message has been received at the account level.
</tp:docstring>
<arg type="s" name="accountID"/>
<arg type="s" name="messageID"/>
<arg type="s" name="from"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="MapStringString"/>
<arg type="a{ss}" name="payloads"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In3" value="MapStringString"/>
<arg type="a{ss}" name="payloads"/>
</signal>
<signal name="accountMessageStatusChanged" tp:name-for-bindings="accountMessageStatusChanged">

View File

@ -175,7 +175,7 @@ DBusClient::initLibrary(int flags)
exportable_callback<ConfigurationSignal::RegistrationStateChanged>(bind(&DBusConfigurationManager::registrationStateChanged, confM, _1, _2, _3, _4)),
exportable_callback<ConfigurationSignal::VolatileDetailsChanged>(bind(&DBusConfigurationManager::volatileAccountDetailsChanged, confM, _1, _2)),
exportable_callback<ConfigurationSignal::Error>(bind(&DBusConfigurationManager::errorAlert, confM, _1)),
exportable_callback<ConfigurationSignal::IncomingAccountMessage>(bind(&DBusConfigurationManager::incomingAccountMessage, confM, _1, _2, _3 )),
exportable_callback<ConfigurationSignal::IncomingAccountMessage>(bind(&DBusConfigurationManager::incomingAccountMessage, confM, _1, _2, _3, _4 )),
exportable_callback<ConfigurationSignal::AccountMessageStatusChanged>(bind(&DBusConfigurationManager::accountMessageStatusChanged, confM, _1, _2, _3, _4 )),
exportable_callback<ConfigurationSignal::ComposingStatusChanged>(bind(&DBusConfigurationManager::composingStatusChanged, confM, _1, _2, _3 )),
exportable_callback<ConfigurationSignal::IncomingTrustRequest>(bind(&DBusConfigurationManager::incomingTrustRequest, confM, _1, _2, _3, _4 )),

View File

@ -33,7 +33,7 @@ public:
virtual void accountDetailsChanged(const std::string& account_id, const std::map<std::string, std::string>& details){}
virtual void registrationStateChanged(const std::string& account_id, const std::string& state, int code, const std::string& detail_str){}
virtual void volatileAccountDetailsChanged(const std::string& account_id, const std::map<std::string, std::string>& details){}
virtual void incomingAccountMessage(const std::string& /*account_id*/, const std::string& /*from*/, const std::map<std::string, std::string>& /*payload*/){}
virtual void incomingAccountMessage(const std::string& /*account_id*/, const std::string& /*message_id*/, const std::string& /*from*/, const std::map<std::string, std::string>& /*payload*/){}
virtual void accountMessageStatusChanged(const std::string& /*account_id*/, uint64_t /*message_id*/, const std::string& /*to*/, int /*state*/){}
virtual void composingStatusChanged(const std::string& /*account_id*/, const std::string& /*from*/, int /*state*/){}
virtual void knownDevicesChanged(const std::string& /*account_id*/, const std::map<std::string, std::string>& /*devices*/){}
@ -242,7 +242,7 @@ public:
virtual void accountDetailsChanged(const std::string& account_id, const std::map<std::string, std::string>& details){}
virtual void registrationStateChanged(const std::string& account_id, const std::string& state, int code, const std::string& detail_str){}
virtual void volatileAccountDetailsChanged(const std::string& account_id, const std::map<std::string, std::string>& details){}
virtual void incomingAccountMessage(const std::string& /*account_id*/, const std::string& /*from*/, const std::map<std::string, std::string>& /*payload*/){}
virtual void incomingAccountMessage(const std::string& /*account_id*/, const std::string& /*message_id*/, const std::string& /*from*/, const std::map<std::string, std::string>& /*payload*/){}
virtual void accountMessageStatusChanged(const std::string& /*account_id*/, uint64_t /*message_id*/, const std::string& /*to*/, int /*state*/){}
virtual void composingStatusChanged(const std::string& /*account_id*/, const std::string& /*from*/, int /*state*/){}
virtual void knownDevicesChanged(const std::string& /*account_id*/, const std::map<std::string, std::string>& /*devices*/){}

View File

@ -261,7 +261,7 @@ void init(ConfigurationCallback* confM, Callback* callM, PresenceCallback* presM
exportable_callback<ConfigurationSignal::KnownDevicesChanged>(bind(&ConfigurationCallback::knownDevicesChanged, confM, _1, _2)),
exportable_callback<ConfigurationSignal::ExportOnRingEnded>(bind(&ConfigurationCallback::exportOnRingEnded, confM, _1, _2, _3)),
exportable_callback<ConfigurationSignal::Error>(bind(&ConfigurationCallback::errorAlert, confM, _1)),
exportable_callback<ConfigurationSignal::IncomingAccountMessage>(bind(&ConfigurationCallback::incomingAccountMessage, confM, _1, _2, _3 )),
exportable_callback<ConfigurationSignal::IncomingAccountMessage>(bind(&ConfigurationCallback::incomingAccountMessage, confM, _1, _2, _3, _4 )),
exportable_callback<ConfigurationSignal::AccountMessageStatusChanged>(bind(&ConfigurationCallback::accountMessageStatusChanged, confM, _1, _2, _3, _4 )),
exportable_callback<ConfigurationSignal::ComposingStatusChanged>(bind(&ConfigurationCallback::composingStatusChanged, confM, _1, _2, _3 )),
exportable_callback<ConfigurationSignal::IncomingTrustRequest>(bind(&ConfigurationCallback::incomingTrustRequest, confM, _1, _2, _3, _4 )),

View File

@ -148,7 +148,7 @@ void init(const v8::Handle<v8::Value> &funcMap){
exportable_callback<ConfigurationSignal::RegisteredNameFound>(bind(&registeredNameFound, _1, _2, _3, _4 )),
exportable_callback<ConfigurationSignal::VolatileDetailsChanged>(bind(&volatileDetailsChanged, _1, _2)),
exportable_callback<ConfigurationSignal::KnownDevicesChanged>(bind(&knownDevicesChanged, _1, _2 )),
exportable_callback<ConfigurationSignal::IncomingAccountMessage>(bind(&incomingAccountMessage, _1, _2, _3 )),
exportable_callback<ConfigurationSignal::IncomingAccountMessage>(bind(&incomingAccountMessage, _1, _2, _3, _4 )),
exportable_callback<ConfigurationSignal::AccountMessageStatusChanged>(bind(&accountMessageStatusChanged, _1, _2, _3, _4 )),
exportable_callback<ConfigurationSignal::IncomingTrustRequest>(bind(&incomingTrustRequest, _1, _2, _3, _4 )),
};

View File

@ -2,7 +2,7 @@ dnl Jami - configure.ac for automake 1.9 and autoconf 2.59
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.65])
AC_INIT([Jami Daemon],[8.0.0],[ring@gnu.org],[jami])
AC_INIT([Jami Daemon],[9.0.0],[ring@gnu.org],[jami])
AC_COPYRIGHT([[Copyright (c) Savoir-faire Linux 2004-2019]])
AC_REVISION([$Revision$])

View File

@ -284,7 +284,7 @@ struct DRING_PUBLIC ConfigurationSignal {
};
struct DRING_PUBLIC IncomingAccountMessage {
constexpr static const char* name = "IncomingAccountMessage";
using cb_type = void(const std::string& /*account_id*/, const std::string& /*from*/, const std::map<std::string, std::string>& /*payloads*/);
using cb_type = void(const std::string& /*account_id*/, const std::string& /*message_id*/, const std::string& /*from*/, const std::map<std::string, std::string>& /*payloads*/);
};
struct DRING_PUBLIC AccountMessageStatusChanged {
constexpr static const char* name = "AccountMessageStatusChanged";

View File

@ -1992,7 +1992,7 @@ JamiAccount::doRegister_()
}
std::map<std::string, std::string> payloads = {{datatype,
utf8_make_valid(v.msg)}};
onTextMessage(peer_account.toString(), payloads);
onTextMessage(std::to_string(v.id), peer_account.toString(), payloads);
JAMI_DBG() << "Sending message confirmation " << v.id;
dht_->putEncrypted(inboxDeviceKey,
v.from,
@ -2019,12 +2019,12 @@ JamiAccount::doRegister_()
}
void
JamiAccount::onTextMessage(const std::string& from,
JamiAccount::onTextMessage(const std::string& id, const std::string& from,
const std::map<std::string, std::string>& payloads)
{
try {
const std::string fromUri = parseJamiUri(from);
SIPAccountBase::onTextMessage(fromUri, payloads);
SIPAccountBase::onTextMessage(id, fromUri, payloads);
} catch (...) {
}
}

View File

@ -271,7 +271,7 @@ public:
std::shared_ptr<SIPCall>
newIncomingCall(const std::string& from, const std::map<std::string, std::string>& details = {}, const std::shared_ptr<SipTransport>& sipTr = nullptr) override;
void onTextMessage(const std::string& from, const std::map<std::string, std::string>& payloads) override;
void onTextMessage(const std::string& id, const std::string& from, const std::map<std::string, std::string>& payloads) override;
virtual bool isTlsEnabled() const override {
return true;

View File

@ -454,7 +454,7 @@ SIPAccountBase::getIceOptions() const noexcept
}
void
SIPAccountBase::onTextMessage(const std::string& from,
SIPAccountBase::onTextMessage(const std::string& id, const std::string& from,
const std::map<std::string, std::string>& payloads)
{
JAMI_DBG("Text message received from %s, %zu part(s)", from.c_str(), payloads.size());
@ -482,7 +482,7 @@ SIPAccountBase::onTextMessage(const std::string& from,
}
}
}
emitSignal<DRing::ConfigurationSignal::IncomingAccountMessage>(accountID_, from, payloads);
emitSignal<DRing::ConfigurationSignal::IncomingAccountMessage>(accountID_, id, from, payloads);
DRing::Message message;
message.from = from;
message.payloads = payloads;

View File

@ -279,7 +279,7 @@ public:
return messageEngine_.cancel(id);
}
virtual void onTextMessage(const std::string& from, const std::map<std::string, std::string>& payloads);
virtual void onTextMessage(const std::string& id, const std::string& from, const std::map<std::string, std::string>& payloads);
/* Returns true if the username and/or hostname match this account */
virtual MatchRank matches(const std::string &username, const std::string &hostname) const = 0;

View File

@ -249,7 +249,7 @@ transaction_request_cb(pjsip_rx_data *rdata)
// Process message content in case of multi-part body
auto payloads = im::parseSipMessage(rdata->msg_info.msg);
if (payloads.size() > 0)
account->onTextMessage(peerNumber, payloads);
account->onTextMessage({}, peerNumber, payloads);
return PJ_FALSE;
}