diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp index 110b9c4b644665da808bdc592a72a1a49f4d15bc..a5d84e69d22f1c389b86f479f9fc59788d022c08 100644 --- a/src/ringdht/ringaccount.cpp +++ b/src/ringdht/ringaccount.cpp @@ -3457,5 +3457,14 @@ void RingAccount::pushNotificationReceived(const std::string& from, const std::m dht_.pushNotificationReceived(data); } +std::string +RingAccount::getUserUri() const +{ +#ifdef HAVE_RINGNS + if (not registeredName_.empty()) + return RING_URI_PREFIX + registeredName_; +#endif + return username_; +} } // namespace ring diff --git a/src/ringdht/ringaccount.h b/src/ringdht/ringaccount.h index 5d9c8907ab51c50cbcabff171bda7f6127c214ec..d6021a78c43608a0226025a07aa368b6b724362f 100644 --- a/src/ringdht/ringaccount.h +++ b/src/ringdht/ringaccount.h @@ -376,6 +376,8 @@ class RingAccount : public SIPAccountBase { */ void pushNotificationReceived(const std::string& from, const std::map<std::string, std::string>& data); + std::string getUserUri() const override; + private: NON_COPYABLE(RingAccount); diff --git a/src/sip/sipaccount.cpp b/src/sip/sipaccount.cpp index 73f64ae6f7a5528cc007369165a98a38fa9786ef..7f94a6c8d5e8268e25ea3f549ec2e07a51178960 100644 --- a/src/sip/sipaccount.cpp +++ b/src/sip/sipaccount.cpp @@ -2101,4 +2101,10 @@ SIPAccount::sendTextMessage(const std::string& to, const std::map<std::string, s } } +std::string +SIPAccount::getUserUri() const +{ + return getFromUri(); +} + } // namespace ring diff --git a/src/sip/sipaccount.h b/src/sip/sipaccount.h index e6f594d99264ebbb70001ce4b88032c2f4e540c2..7f5d2d57ff50e01be6b7e42ffe73b3c39e2eee31 100644 --- a/src/sip/sipaccount.h +++ b/src/sip/sipaccount.h @@ -494,6 +494,8 @@ class SIPAccount : public SIPAccountBase { void connectivityChanged() override; + std::string getUserUri() const override; + private: void doRegister1_(); void doRegister2_(); diff --git a/src/sip/sipaccountbase.h b/src/sip/sipaccountbase.h index 4b1e9e568655b5a144843dfc82d0a98d72c3f7a2..a1ecedcb30591d259b810037b1f421e6f8af9c46 100644 --- a/src/sip/sipaccountbase.h +++ b/src/sip/sipaccountbase.h @@ -274,6 +274,8 @@ public: void connectivityChanged() override {}; + virtual std::string getUserUri() const = 0; + public: // overloaded methods virtual void flush() override;