diff --git a/src/account.cpp b/src/account.cpp
index ca5f4ff98fab623243b4d128e9980ab9e87deb0a..eb4702a11e42adfaff3ff47eb86a62a33e6f5563 100644
--- a/src/account.cpp
+++ b/src/account.cpp
@@ -90,8 +90,7 @@ m_pStatusModel(nullptr),m_LastTransportCode(0),m_RegistrationState(Account::Regi
 m_UseDefaultPort(false),m_pProtocolModel(nullptr),m_pBootstrapModel(nullptr),m_RemoteEnabledState(false),
 m_HaveCalled(false),m_TotalCount(0),m_LastWeekCount(0),m_LastTrimCount(0),m_LastUsed(0),m_pKnownCertificates(nullptr),
 m_pBannedCertificates(nullptr), m_pAllowedCertificates(nullptr),m_InternalId(++p_sAutoIncrementId),
-m_pNetworkInterfaceModel(nullptr),m_pAllowedCerts(nullptr),m_pBannedCerts(nullptr), m_AllowIncomingFromHistory(true),
-m_AllowIncomingFromContact(true)
+m_pNetworkInterfaceModel(nullptr),m_pAllowedCerts(nullptr),m_pBannedCerts(nullptr)
 {
 }
 
@@ -948,12 +947,28 @@ bool Account::allowIncomingFromUnknown() const
 
 bool Account::allowIncomingFromHistory() const
 {
-   return d_ptr->m_AllowIncomingFromHistory;
+   if (protocol() != Account::Protocol::RING)
+      return false;
+
+   return d_ptr->accountDetail(DRing::Account::ConfProperties::ALLOW_CERT_FROM_HISTORY) IS_TRUE;
 }
 
 bool Account::allowIncomingFromContact() const
 {
-   return d_ptr->m_AllowIncomingFromContact;
+   if (protocol() != Account::Protocol::RING)
+      return false;
+
+   return d_ptr->accountDetail(DRing::Account::ConfProperties::ALLOW_CERT_FROM_CONTACT) IS_TRUE;
+}
+
+int Account::activeCallLimit() const
+{
+   return d_ptr->accountDetail(DRing::Account::ConfProperties::ACTIVE_CALL_LIMIT).toInt();
+}
+
+bool Account::hasActiveCallLimit() const
+{
+   return activeCallLimit() > -1;
 }
 
 
@@ -1143,6 +1158,10 @@ QVariant Account::roleData(int role) const
          return allowIncomingFromContact();
       case CAST(Account::Role::AllowIncomingFromUnknown ):
          return allowIncomingFromUnknown();
+      case CAST(Account::Role::ActiveCallLimit):
+         return activeCallLimit();
+      case CAST(Account::Role::HasActiveCallLimit):
+         return hasActiveCallLimit();
       default:
          return QVariant();
    }
@@ -1185,11 +1204,17 @@ bool Account::supportScheme( URI::SchemeType type )
 
 bool Account::allowCertificate(Certificate* c)
 {
+   if (protocol() != Account::Protocol::RING)
+      return false;
+
    return CertificateModel::instance()->d_ptr->allowCertificate(c, this);
 }
 
 bool Account::banCertificate(Certificate* c)
 {
+   if (protocol() != Account::Protocol::RING)
+      return false;
+
    return CertificateModel::instance()->d_ptr->banCertificate(c, this);
 }
 
@@ -1687,16 +1712,35 @@ void Account::setAllowIncomingFromUnknown(bool value)
 
 void Account::setAllowIncomingFromHistory(bool value)
 {
-   d_ptr->m_AllowIncomingFromHistory = value;
+   if (protocol() != Account::Protocol::RING)
+      return;
+
+   d_ptr->setAccountProperty(DRing::Account::ConfProperties::ALLOW_CERT_FROM_HISTORY, value TO_BOOL);
    performAction(Account::EditAction::MODIFY);
 }
 
 void Account::setAllowIncomingFromContact(bool value)
 {
-   d_ptr->m_AllowIncomingFromContact = value;
+   if (protocol() != Account::Protocol::RING)
+      return;
+
+   d_ptr->setAccountProperty(DRing::Account::ConfProperties::ALLOW_CERT_FROM_CONTACT, value TO_BOOL);
    performAction(Account::EditAction::MODIFY);
 }
 
+void Account::setActiveCallLimit(int value )
+{
+   d_ptr->setAccountProperty(DRing::Account::ConfProperties::ACTIVE_CALL_LIMIT, QString::number(value));
+}
+
+void Account::setHasActiveCallLimit(bool value )
+{
+   if ((!value) && activeCallLimit() != -1)
+      return;
+
+   setActiveCallLimit(value?1:-1);
+}
+
 ///Set the DTMF type
 void Account::setDTMFType(DtmfType type)
 {
@@ -1899,6 +1943,12 @@ void Account::setRoleData(int role, const QVariant& value)
       case CAST(Account::Role::AllowIncomingFromUnknown ):
          setAllowIncomingFromUnknown(value.toBool());
          break;
+      case CAST(Account::Role::ActiveCallLimit):
+         return setActiveCallLimit(value.toInt());
+         break;
+      case CAST(Account::Role::HasActiveCallLimit):
+         return setHasActiveCallLimit(value.toBool());
+         break;
    }
 }
 #undef CAST
diff --git a/src/account.h b/src/account.h
index aa3546766e2a0a654b5df48022b0a8acc166ce36..d9abfe89899fdf8bc623b5bb3096f6dd46b3c9c8 100644
--- a/src/account.h
+++ b/src/account.h
@@ -287,7 +287,9 @@ class LIB_EXPORT Account : public QObject {
          AllowedCertificatesModel    = 186,
          AllowIncomingFromHistory    = 187,
          AllowIncomingFromContact    = 188,
-         AllowIncomingFromUnknown    = 189
+         AllowIncomingFromUnknown    = 189,
+         ActiveCallLimit             = 190,
+         HasActiveCallLimit          = 191
       };
 
       ///@enum RoleState Whether a role can be used in a certain context
@@ -412,6 +414,8 @@ class LIB_EXPORT Account : public QObject {
       bool    allowIncomingFromUnknown     () const;
       bool    allowIncomingFromHistory     () const;
       bool    allowIncomingFromContact     () const;
+      int     activeCallLimit              () const;
+      bool    hasActiveCallLimit           () const;
 
       bool   isUsedForOutgogingCall () const;
       uint   totalCallCount         () const;
@@ -472,6 +476,7 @@ class LIB_EXPORT Account : public QObject {
       void setAudioPortMin                  (int port   );
       void setVideoPortMax                  (int port   );
       void setVideoPortMin                  (int port   );
+      void setActiveCallLimit               (int value  );
       void setDTMFType                      (DtmfType type);
       void setUserAgent                     (const QString& agent);
       void setUpnpEnabled                   (bool enable);
@@ -481,6 +486,7 @@ class LIB_EXPORT Account : public QObject {
       void setAllowIncomingFromHistory      (bool value );
       void setAllowIncomingFromContact      (bool value );
       void setAllowIncomingFromUnknown      (bool value );
+      void setHasActiveCallLimit            (bool value );
 
       void setRoleData(int role, const QVariant& value);
 
diff --git a/src/accountmodel.cpp b/src/accountmodel.cpp
index 605b2ab88f2ab69225eba6dd200f221323d83245..f141afd0c5b4fbe26c63de546929f083a2215e73 100644
--- a/src/accountmodel.cpp
+++ b/src/accountmodel.cpp
@@ -184,6 +184,8 @@ QHash<int,QByteArray> AccountModel::roleNames() const
       roles.insert(CAST(Account::Role::AllowIncomingFromHistory    ) ,QByteArray("allowIncomingFromHistory"      ));
       roles.insert(CAST(Account::Role::AllowIncomingFromContact    ) ,QByteArray("allowIncomingFromContact"      ));
       roles.insert(CAST(Account::Role::AllowIncomingFromUnknown    ) ,QByteArray("allowIncomingFromUnknown"      ));
+      roles.insert(CAST(Account::Role::ActiveCallLimit             ) ,QByteArray("activeCallLimit"               ));
+      roles.insert(CAST(Account::Role::HasActiveCallLimit          ) ,QByteArray("hasActiveCallLimit"            ));
    }
    return roles;
 }
diff --git a/src/private/account_p.h b/src/private/account_p.h
index 8c2b278be200472edbaa727e213b734d65503e08..f8a363ae61ba15676df252f39b71b0c840c1c319 100644
--- a/src/private/account_p.h
+++ b/src/private/account_p.h
@@ -136,8 +136,6 @@ public:
    DaemonCertificateCollection* m_pAllowedCerts           ;
    DaemonCertificateCollection* m_pBannedCerts            ;
    Account::EditState           m_CurrentState            ;
-   bool                         m_AllowIncomingFromHistory;
-   bool                         m_AllowIncomingFromContact;
 
    QHash<int, Account::RoleStatus> m_hRoleStatus;