diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp index 95baebbe63e1830d6131acb6310109c3f12ab9eb..89c6b29b58e44aa6222f79404cfb4060f1ae2e6d 100644 --- a/src/ringdht/ringaccount.cpp +++ b/src/ringdht/ringaccount.cpp @@ -79,6 +79,10 @@ static constexpr auto ICE_NEGOTIATION_TIMEOUT = std::chrono::seconds(60); static constexpr auto TLS_TIMEOUT = std::chrono::seconds(30); static constexpr const char * const RING_URI_PREFIX = "ring:"; +static constexpr const char * DEFAULT_TURN_SERVER = "turn.ring.cx"; +static constexpr const char * DEFAULT_TURN_USERNAME = "ring"; +static constexpr const char * DEFAULT_TURN_PWD = "ring"; +static constexpr const char * DEFAULT_TURN_REALM = "ring"; constexpr const char * const RingAccount::ACCOUNT_TYPE; /* constexpr */ const std::pair<uint16_t, uint16_t> RingAccount::DHT_PORT_RANGE {4000, 8888}; @@ -142,6 +146,13 @@ RingAccount::RingAccount(const std::string& accountID, bool /* presenceEnabled * cachePath_ = fileutils::get_cache_dir()+DIR_SEPARATOR_STR+getAccountID(); dataPath_ = cachePath_ + DIR_SEPARATOR_STR "values"; idPath_ = fileutils::get_data_dir()+DIR_SEPARATOR_STR+getAccountID(); + + // Force the SFL turn server if none provided yet + turnServer_ = DEFAULT_TURN_SERVER; + turnServerUserName_ = DEFAULT_TURN_USERNAME; + turnServerPwd_ = DEFAULT_TURN_PWD; + turnServerRealm_ = DEFAULT_TURN_REALM; + turnEnabled_ = true; } RingAccount::~RingAccount() @@ -525,6 +536,7 @@ void RingAccount::setAccountDetails(const std::map<std::string, std::string> &details) { SIPAccountBase::setAccountDetails(details); + if (hostname_.empty()) hostname_ = DHT_DEFAULT_BOOTSTRAP; parseInt(details, Conf::CONFIG_DHT_PORT, dhtPort_);