diff --git a/src/client/configurationmanager.cpp b/src/client/configurationmanager.cpp index c947b803cb82def6d179837fa08e48b206e07a2a..c4a5a10d75b3bdfa3b33d92f628c3788fa09ac64 100644 --- a/src/client/configurationmanager.cpp +++ b/src/client/configurationmanager.cpp @@ -661,8 +661,13 @@ void setCredentials(const std::string& accountID, const std::vector<std::map<std::string, std::string>>& details) { - if (auto sipaccount = ring::Manager::instance().getAccount<SIPAccount>(accountID)) - sipaccount->setCredentials(details); + if (auto sipaccount = ring::Manager::instance().getAccount<SIPAccount>(accountID)) { + sipaccount->doUnregister([&](bool /* transport_free */) { + sipaccount->setCredentials(details); + if (sipaccount->isEnabled()) + sipaccount->doRegister(); + }); + } } } // namespace DRing