23#include <pjlib-util/md5.h>
48constexpr const char*
const TLS_KEY =
"tls";
81 out << YAML::BeginMap;
189std::map<std::string, std::string>
210 std::string password {};
214 password =
cred.password;
268 JAMI_WARN(
"No credentials set, inferring them...");
269 std::map<std::string, std::string> map;
308std::map<std::string, std::string>
333 for (
int i = 0;
i < 16; ++
i)
336 password_h = {
hash, 32};
339std::vector<std::map<std::string, std::string>>
342 std::vector<std::map<std::string, std::string>>
ret;
345 ret.emplace_back(c.toMap());
Account specific keys/constants that must be shared in daemon and clients.
constexpr const char * CALIST_KEY
constexpr const char * INTERFACE_KEY
constexpr const char * PUBLISH_ADDR_KEY
static const char *const CONFIG_SRTP_KEY_EXCHANGE
constexpr const char * STUN_SERVER_KEY
static const char *const CONFIG_ACCOUNT_USERNAME
const char *const TLS_PASSWORD_KEY
constexpr const char * ALLOW_IP_AUTO_REWRITE
static const char *const CONFIG_ACCOUNT_REALM
static const char *const CONFIG_TLS_VERIFY_CLIENT
static const char *const CONFIG_ACCOUNT_IP_AUTO_REWRITE
constexpr const char * PRESENCE_ENABLED_KEY
constexpr const char * SAME_AS_LOCAL_KEY
static const char *const CONFIG_SRTP_RTP_FALLBACK
static const char *const CONFIG_PUBLISHED_SAMEAS_LOCAL
static const char *const CONFIG_PRESENCE_ENABLED
constexpr const char * STUN_ENABLED_KEY
static const char *const CONFIG_TLS_DISABLE_SECURE_DLG_CHECK
constexpr const char * CIPHERS_KEY
static const char *const CONFIG_TLS_CIPHERS
constexpr const char * PRESENCE_SUBSCRIBE_SUPPORTED_KEY
constexpr const char * DISABLE_SECURE_DLG_CHECK
static const char *const CONFIG_TLS_SERVER_NAME
static const char *const CONFIG_PUBLISHED_ADDRESS
constexpr const char * SERVICE_ROUTE_KEY
static const char *const CONFIG_STUN_SERVER
constexpr const char * REQUIRE_CERTIF_KEY
constexpr const char * VERIFY_SERVER_KEY
static const char *const CONFIG_TLS_ENABLE
constexpr const char * DTMF_TYPE_KEY
constexpr const char * KEEP_ALIVE_ENABLED
constexpr const char * TIMEOUT_KEY
constexpr const char * CRED_KEY
static const char *const CONFIG_TLS_CERTIFICATE_FILE
constexpr const char * RTP_FALLBACK_KEY
static const char *const CONFIG_STUN_ENABLE
constexpr const char * PRESENCE_PUBLISH_SUPPORTED_KEY
constexpr const char *const TLS_KEY
static const char *const CONFIG_TLS_PASSWORD
constexpr const char * PUBLISH_PORT_KEY
constexpr const char * METHOD_KEY
constexpr const char * BIND_ADDRESS_KEY
constexpr const char * ID_KEY
static const char *const CONFIG_TLS_PRIVATE_KEY_FILE
constexpr const char * PRESENCE_NOTE_KEY
static const char *const CONFIG_TLS_LISTENER_PORT
const char *const PRIVATE_KEY_KEY
constexpr const char * PRESENCE_MODULE_ENABLED_KEY
constexpr const char * TLS_ENABLE_KEY
static const char *const CONFIG_KEEP_ALIVE_ENABLED
static const char *const CONFIG_TLS_NEGOTIATION_TIMEOUT_SEC
static const char *const CONFIG_TLS_REQUIRE_CLIENT_CERTIFICATE
constexpr const char * PRESENCE_STATUS_KEY
static const char *const CONFIG_ACCOUNT_DTMF_TYPE
constexpr const char * VERIFY_CLIENT_KEY
constexpr const char * CERTIFICATE_KEY
static const char *const CONFIG_TLS_VERIFY_SERVER
constexpr const char * USERNAME_KEY
constexpr const char * TLS_PORT_KEY
constexpr const char * PORT_KEY
static const char *const CONFIG_TLS_CA_LIST_FILE
constexpr const char * KEY_EXCHANGE_KEY
static const char *const CONFIG_LOCAL_PORT
constexpr const char * SERVER_KEY
static const char *const CONFIG_ACCOUNT_PASSWORD
static const char *const CONFIG_BIND_ADDRESS
static const char *const CONFIG_PUBLISHED_PORT
static const char *const CONFIG_ACCOUNT_ROUTESET
static const char *const CONFIG_ACCOUNT_REGISTRATION_EXPIRE
constexpr const char * SRTP_KEY
static const char *const CONFIG_TLS_METHOD
static const char *const CONFIG_LOCAL_INTERFACE
static KeyExchangeProtocol getKeyExchangeProtocol(std::string_view name)
static constexpr const char * getKeyExchangeName(KeyExchangeProtocol kx)
std::vector< std::map< std::string, std::string > > parseVectorMap(const YAML::Node &node, const std::initializer_list< std::string > &keys)
bool parseValueOptional(const YAML::Node &node, const char *key, T &value)
void parseBool(const std::map< std::string, std::string > &details, const char *key, bool &s)
static constexpr const char TRUE_STR[]
void emitSignal(Args... args)
void parseInt(const std::map< std::string, std::string > &details, const char *key, T &s)
static constexpr const char FALSE_STR[]
void parseString(const std::map< std::string, std::string > &details, const char *key, std::string &s)
void parsePath(const std::map< std::string, std::string > &details, const char *key, std::string &s, const std::filesystem::path &base)
static const JamiAccountConfig DEFAULT_CONFIG
static constexpr unsigned MIN_REGISTRATION_TIME
const std::filesystem::path path
Path where the configuration file is stored.
const std::string id
Account id.
bool publishedSameasLocal
Flag which determine if localIpAddress_ or publishedIpAddress_ is used in sip headers.
std::string tlsCaListFile
std::string tlsPrivateKeyFile
std::string tlsCertificateFile
void fromMap(const std::map< std::string, std::string > &) override
void serializeDiff(YAML::Emitter &out, const SipAccountBaseConfig &def) const
void unserialize(const YAML::Node &node) override
std::map< std::string, std::string > toMap() const override
Credentials(const std::string &r, const std::string &u, const std::string &p)
void computePasswordHash()
std::map< std::string, std::string > toMap() const
uint16_t publishedPort
Published port, used only if defined by the user.
bool tlsDisableSecureDlgCheck
std::string stunServer
The STUN server hostname (optional), used to provide the public IP address in case the softphone stay...
void unserialize(const YAML::Node &node) override
bool srtpFallback
Determine if the softphone should fallback on non secured media channel if SRTP negotiation fails.
std::vector< std::map< std::string, std::string > > getCredentials() const
std::string interface
interface name on which this account is bound
bool stunEnabled
Determine if STUN public address resolution is required to register this account.
uint16_t localPort
Local port to whih this account is bound.
unsigned registrationExpire
Network settings.
std::map< std::string, std::string > toMap() const override
uint16_t tlsListenerPort
The TLS listener port.
int tlsNegotiationTimeout
void setCredentials(const std::vector< std::map< std::string, std::string > > &creds)
void serialize(YAML::Emitter &out) const override
std::string serviceRoute
Input Outbound Proxy Server Address.
std::vector< Credentials > credentials
bool tlsRequireClientCertificate
KeyExchangeProtocol srtpKeyExchange
Specifies the type of key exchange used for SRTP, if any.
std::string bindAddress
Potential ip addresss on which this account is bound.
std::string tlsServerName
bool registrationRefreshEnabled
void fromMap(const std::map< std::string, std::string > &) override