diff --git a/bin/dbus/cx.ring.Ring.ConfigurationManager.xml b/bin/dbus/cx.ring.Ring.ConfigurationManager.xml
index 469048349e33874f573d74e9f8c09d98181eaf8c..56c3e8137f43ea6a6aea60255439e5627800324b 100644
--- a/bin/dbus/cx.ring.Ring.ConfigurationManager.xml
+++ b/bin/dbus/cx.ring.Ring.ConfigurationManager.xml
@@ -66,6 +66,7 @@
                         <li>TLS_VERIFY_SERVER</li>
                         <li>TLS_VERIFY_CLIENT</li>
                         <li>TLS_REQUIRE_CLIENT_CERTIFICATE</li>
+                        <li>TLS_DISABLE_SECURE_DLG_CHECK</li>
                         <li>TLS_NEGOTIATION_TIMEOUT_SEC</li>
                     </ul>
                 </tp:docstring>
diff --git a/src/account_schema.h b/src/account_schema.h
index 3ff6ef0b6044e4c29c67113a59aeda14db9a7013..6491a54c11f881c757219a20e287d582df6bef64 100644
--- a/src/account_schema.h
+++ b/src/account_schema.h
@@ -101,6 +101,7 @@ static const char* const CONFIG_TLS_SERVER_NAME = "TLS.serverName";
 static const char* const CONFIG_TLS_VERIFY_SERVER = "TLS.verifyServer";
 static const char* const CONFIG_TLS_VERIFY_CLIENT = "TLS.verifyClient";
 static const char* const CONFIG_TLS_REQUIRE_CLIENT_CERTIFICATE = "TLS.requireClientCertificate";
+static const char* const CONFIG_TLS_DISABLE_SECURE_DLG_CHECK = "TLS.disableSecureDlgCheck";
 static const char* const CONFIG_TLS_NEGOTIATION_TIMEOUT_SEC = "TLS.negotiationTimeoutSec";
 
 // DHT specific parameters
diff --git a/src/jami/account_const.h b/src/jami/account_const.h
index 756d4874891ebe3f67d89964a9dfa4ba6516339f..08eef98dd4ad98bc360fd9437be9f80d1cc419ff 100644
--- a/src/jami/account_const.h
+++ b/src/jami/account_const.h
@@ -230,6 +230,7 @@ constexpr static const char SERVER_NAME[] = "TLS.serverName";
 constexpr static const char VERIFY_SERVER[] = "TLS.verifyServer";
 constexpr static const char VERIFY_CLIENT[] = "TLS.verifyClient";
 constexpr static const char REQUIRE_CLIENT_CERTIFICATE[] = "TLS.requireClientCertificate";
+constexpr static const char DISABLE_SECURE_DLG_CHECK[] = "TLS.disableSecureDlgCheck";
 constexpr static const char NEGOTIATION_TIMEOUT_SEC[] = "TLS.negotiationTimeoutSec";
 
 } // namespace TLS
diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp
index c98ce1c301126a94bea1f7d9805a44e353ec2ef2..8b65f5059775af728d9fdb2a7e1ca3b10d2e9a72 100644
--- a/src/jamidht/jamiaccount.cpp
+++ b/src/jamidht/jamiaccount.cpp
@@ -1493,6 +1493,7 @@ JamiAccount::getAccountDetails() const
     a.emplace(Conf::CONFIG_TLS_VERIFY_SERVER, TRUE_STR);
     a.emplace(Conf::CONFIG_TLS_VERIFY_CLIENT, TRUE_STR);
     a.emplace(Conf::CONFIG_TLS_REQUIRE_CLIENT_CERTIFICATE, TRUE_STR);
+    a.emplace(Conf::CONFIG_TLS_DISABLE_SECURE_DLG_CHECK, TRUE_STR);
     a.emplace(DRing::Account::ConfProperties::ALLOW_CERT_FROM_HISTORY,
               allowPeersFromHistory_ ? TRUE_STR : FALSE_STR);
     a.emplace(DRing::Account::ConfProperties::ALLOW_CERT_FROM_CONTACT,
diff --git a/src/manager.cpp b/src/manager.cpp
index c8e894dd5e1d709994fea69ca51e3d9b0ddd77d2..c5b1f8e7050499ffe6f4f4d250909cc5fda9b00f 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -823,12 +823,6 @@ Manager::init(const std::string& config_file)
         JAMI_ERR("%s", e.what());
         no_errors = false;
     }
-    // Some VoIP services support SIP/TLS and SRTP, but do not set the
-    // correct schema in the INVITE request. For more details, see:
-    // https://trac.pjsip.org/repos/ticket/1735
-    if (voipPreferences.getDisableSecureDlgCheck()) {
-        pjsip_cfg()->endpt.disable_secure_dlg_check = PJ_TRUE;
-    }
 
     // always back up last error-free configuration
     if (no_errors) {
diff --git a/src/preferences.cpp b/src/preferences.cpp
index 6e14b7955454899a350a6b584f8a537baefbee3d..86dcea4f6543083fd69ac537a802c7ec0fb2d7a9 100644
--- a/src/preferences.cpp
+++ b/src/preferences.cpp
@@ -93,7 +93,6 @@ static constexpr const char* MD5_HASH_KEY {"md5Hash"};
 
 // voip preferences
 constexpr const char* const VoipPreference::CONFIG_LABEL;
-static constexpr const char* DISABLE_SECURE_DLG_CHECK_KEY {"disableSecureDlgCheck"};
 static constexpr const char* PLAY_DTMF_KEY {"playDtmf"};
 static constexpr const char* PLAY_TONES_KEY {"playTones"};
 static constexpr const char* PULSE_LENGTH_KEY {"pulseLength"};
@@ -240,8 +239,7 @@ Preferences::unserialize(const YAML::Node& in)
 }
 
 VoipPreference::VoipPreference()
-    : disableSecureDlgCheck_(false)
-    , playDtmf_(true)
+    : playDtmf_(true)
     , playTones_(true)
     , pulseLength_(PULSE_LENGTH_DEFAULT)
     , symmetricRtp_(true)
@@ -251,7 +249,6 @@ void
 VoipPreference::serialize(YAML::Emitter& out) const
 {
     out << YAML::Key << CONFIG_LABEL << YAML::Value << YAML::BeginMap;
-    out << YAML::Key << DISABLE_SECURE_DLG_CHECK_KEY << YAML::Value << disableSecureDlgCheck_;
     out << YAML::Key << PLAY_DTMF_KEY << YAML::Value << playDtmf_;
     out << YAML::Key << PLAY_TONES_KEY << YAML::Value << playTones_;
     out << YAML::Key << PULSE_LENGTH_KEY << YAML::Value << pulseLength_;
@@ -264,7 +261,6 @@ void
 VoipPreference::unserialize(const YAML::Node& in)
 {
     const auto& node = in[CONFIG_LABEL];
-    parseValue(node, DISABLE_SECURE_DLG_CHECK_KEY, disableSecureDlgCheck_);
     parseValue(node, PLAY_DTMF_KEY, playDtmf_);
     parseValue(node, PLAY_TONES_KEY, playTones_);
     parseValue(node, PULSE_LENGTH_KEY, pulseLength_);
diff --git a/src/preferences.h b/src/preferences.h
index 2a2985f0ff7d5f51ef839057c8fdc38c47b2ef40..2ab1e581bc3a017a83a91389e6d89c6ab2811796 100644
--- a/src/preferences.h
+++ b/src/preferences.h
@@ -111,9 +111,6 @@ public:
     void serialize(YAML::Emitter& out) const override;
     void unserialize(const YAML::Node& in) override;
 
-    bool getDisableSecureDlgCheck() const { return disableSecureDlgCheck_; }
-    void setDisableSecureDlgCheck(bool disable) { disableSecureDlgCheck_ = disable; }
-
     bool getPlayDtmf() const { return playDtmf_; }
 
     void setPlayDtmf(bool dtmf) { playDtmf_ = dtmf; }
@@ -133,7 +130,6 @@ public:
     void setZidFile(const std::string& file) { zidFile_ = file; }
 
 private:
-    bool disableSecureDlgCheck_;
     bool playDtmf_;
     bool playTones_;
     int pulseLength_;
diff --git a/src/sip/sipaccount.cpp b/src/sip/sipaccount.cpp
index fc8455d4cffafd3da765b1096debf7e8267f795e..0cf2992a783e51d8d56498f6806d904e6090a8af 100644
--- a/src/sip/sipaccount.cpp
+++ b/src/sip/sipaccount.cpp
@@ -140,6 +140,7 @@ SIPAccount::SIPAccount(const std::string& accountID, bool presenceEnabled)
     , tlsVerifyServer_(false)
     , tlsVerifyClient_(true)
     , tlsRequireClientCertificate_(true)
+    , tlsDisableSecureDlgCheck_(true)
     , tlsNegotiationTimeoutSec_("2")
     , registrationStateDetailed_()
     , registrationRefreshEnabled_(true)
@@ -465,6 +466,7 @@ SIPAccount::serialize(YAML::Emitter& out) const
     out << YAML::Key << Conf::VERIFY_CLIENT_KEY << YAML::Value << tlsVerifyClient_;
     out << YAML::Key << Conf::VERIFY_SERVER_KEY << YAML::Value << tlsVerifyServer_;
     out << YAML::Key << Conf::REQUIRE_CERTIF_KEY << YAML::Value << tlsRequireClientCertificate_;
+    out << YAML::Key << Conf::DISABLE_SECURE_DLG_CHECK << YAML::Value << tlsDisableSecureDlgCheck_;
     out << YAML::Key << Conf::TIMEOUT_KEY << YAML::Value << tlsNegotiationTimeoutSec_;
     out << YAML::Key << Conf::CIPHERS_KEY << YAML::Value << tlsCiphers_;
     out << YAML::Key << Conf::METHOD_KEY << YAML::Value << tlsMethod_;
@@ -581,6 +583,7 @@ SIPAccount::unserialize(const YAML::Node& node)
 
     parseValue(tlsMap, Conf::SERVER_KEY, tlsServerName_);
     parseValue(tlsMap, Conf::REQUIRE_CERTIF_KEY, tlsRequireClientCertificate_);
+    parseValueOptional(tlsMap, Conf::DISABLE_SECURE_DLG_CHECK, tlsDisableSecureDlgCheck_);
     parseValue(tlsMap, Conf::VERIFY_CLIENT_KEY, tlsVerifyClient_);
     parseValue(tlsMap, Conf::VERIFY_SERVER_KEY, tlsVerifyServer_);
     // FIXME
@@ -635,6 +638,7 @@ SIPAccount::setAccountDetails(const std::map<std::string, std::string>& details)
     parseBool(details, Conf::CONFIG_TLS_VERIFY_SERVER, tlsVerifyServer_);
     parseBool(details, Conf::CONFIG_TLS_VERIFY_CLIENT, tlsVerifyClient_);
     parseBool(details, Conf::CONFIG_TLS_REQUIRE_CLIENT_CERTIFICATE, tlsRequireClientCertificate_);
+    parseBool(details, Conf::CONFIG_TLS_DISABLE_SECURE_DLG_CHECK, tlsDisableSecureDlgCheck_);
     parseString(details, Conf::CONFIG_TLS_NEGOTIATION_TIMEOUT_SEC, tlsNegotiationTimeoutSec_);
     parseBool(details, Conf::CONFIG_TLS_VERIFY_SERVER, tlsVerifyServer_);
     parseBool(details, Conf::CONFIG_TLS_VERIFY_CLIENT, tlsVerifyClient_);
@@ -1309,6 +1313,9 @@ SIPAccount::initTlsConfiguration()
     tlsSetting_.verify_client = tlsVerifyClient_;
     tlsSetting_.require_client_cert = tlsRequireClientCertificate_;
 
+    pjsip_cfg()->endpt.disable_secure_dlg_check = tlsDisableSecureDlgCheck_;
+    JAMI_DEBUG("Secure check dialog disabled ? {}", tlsDisableSecureDlgCheck_);
+
     tlsSetting_.timeout.sec = atol(tlsNegotiationTimeoutSec_.c_str());
 
     tlsSetting_.qos_type = PJ_QOS_TYPE_BEST_EFFORT;
@@ -1794,6 +1801,8 @@ SIPAccount::getTlsSettings() const
             {Conf::CONFIG_TLS_VERIFY_CLIENT, tlsVerifyClient_ ? TRUE_STR : FALSE_STR},
             {Conf::CONFIG_TLS_REQUIRE_CLIENT_CERTIFICATE,
              tlsRequireClientCertificate_ ? TRUE_STR : FALSE_STR},
+            {Conf::CONFIG_TLS_DISABLE_SECURE_DLG_CHECK,
+             tlsDisableSecureDlgCheck_ ? TRUE_STR : FALSE_STR},
             {Conf::CONFIG_TLS_NEGOTIATION_TIMEOUT_SEC, tlsNegotiationTimeoutSec_}};
 }
 
diff --git a/src/sip/sipaccount.h b/src/sip/sipaccount.h
index 525cda54d9731bf6b165c6b1887028a4e3052b0a..33ff31e6a35cbac9bc072713abc9544895456131 100644
--- a/src/sip/sipaccount.h
+++ b/src/sip/sipaccount.h
@@ -680,6 +680,7 @@ private:
     bool tlsVerifyServer_;
     bool tlsVerifyClient_;
     bool tlsRequireClientCertificate_;
+    bool tlsDisableSecureDlgCheck_;
     std::string tlsNegotiationTimeoutSec_;
 
     /**
diff --git a/src/sip/sipaccountbase.h b/src/sip/sipaccountbase.h
index 0d9c4a459a5e6ac250f75860f2dc2a1d5d17842b..bc9a1521e5cc457ae99c7fc4fdf47a349230cb1c 100644
--- a/src/sip/sipaccountbase.h
+++ b/src/sip/sipaccountbase.h
@@ -87,6 +87,7 @@ const char* const TIMEOUT_KEY = "timeout";
 const char* const TLS_PASSWORD_KEY = "password";
 const char* const PRIVATE_KEY_KEY = "privateKey";
 const char* const REQUIRE_CERTIF_KEY = "requireCertif";
+const char* const DISABLE_SECURE_DLG_CHECK = "disableSecureDlgCheck";
 const char* const SERVER_KEY = "server";
 const char* const VERIFY_CLIENT_KEY = "verifyClient";
 const char* const VERIFY_SERVER_KEY = "verifyServer";
diff --git a/src/sip/siptransport.cpp b/src/sip/siptransport.cpp
index adcf65870205bd376c7d1a536bfd6b5718e17f29..2776331f0d0f5a752ea49969da4cbcf5736540a7 100644
--- a/src/sip/siptransport.cpp
+++ b/src/sip/siptransport.cpp
@@ -337,7 +337,7 @@ SipTransportBroker::getTlsListener(const IpAddr& ipAddress, const pjsip_tls_sett
 {
     RETURN_IF_FAIL(settings, nullptr, "TLS settings not specified");
     RETURN_IF_FAIL(ipAddress, nullptr, "Could not determine IP address for this transport");
-    JAMI_DBG("Creating TLS listener on %s...", ipAddress.toString(true).c_str());
+    JAMI_DEBUG("Creating TLS listener on {:s}...", ipAddress.toString(true));
 #if 0
     JAMI_DBG(" ca_list_file : %s", settings->ca_list_file.ptr);
     JAMI_DBG(" cert_file    : %s", settings->cert_file.ptr);
diff --git a/src/sip/sipvoiplink.cpp b/src/sip/sipvoiplink.cpp
index 954009c57aaf727c6005fc4ceefa35d389642d2b..fc89b3e1fa91aa077824274d544b6503026a90eb 100644
--- a/src/sip/sipvoiplink.cpp
+++ b/src/sip/sipvoiplink.cpp
@@ -376,7 +376,6 @@ transaction_request_cb(pjsip_rx_data* rdata)
     }
 
     pjmedia_sdp_session* r_sdp {nullptr};
-
     if (body) {
         if (pjmedia_sdp_parse(rdata->tp_info.pool, (char*) body->data, body->len, &r_sdp)
             != PJ_SUCCESS) {
@@ -387,7 +386,6 @@ transaction_request_cb(pjsip_rx_data* rdata)
 
     if (not account->hasActiveCodec(MEDIA_AUDIO)) {
         try_respond_stateless(endpt_, rdata, PJSIP_SC_NOT_ACCEPTABLE_HERE, NULL, NULL, NULL);
-
         return PJ_FALSE;
     }
 
@@ -395,6 +393,8 @@ transaction_request_cb(pjsip_rx_data* rdata)
     unsigned options = 0;
 
     if (pjsip_inv_verify_request(rdata, &options, NULL, NULL, endpt_, NULL) != PJ_SUCCESS) {
+
+        JAMI_ERR("Couldn't verify INVITE request in secure dialog.");
         try_respond_stateless(endpt_, rdata, PJSIP_SC_METHOD_NOT_ALLOWED, NULL, NULL, NULL);
         return PJ_FALSE;
     }