diff --git a/daemon/src/dbus/configurationmanager.cpp b/daemon/src/dbus/configurationmanager.cpp index 0afb2bc353216a28e918aad06dc4e721a3355c16..a1d0df05c861a19b70bddfdc670d9b17466d695f 100644 --- a/daemon/src/dbus/configurationmanager.cpp +++ b/daemon/src/dbus/configurationmanager.cpp @@ -125,7 +125,6 @@ std::map<std::string, std::string> ConfigurationManager::getIp2IpDetails (void) ip2ipAccountDetails, ip2ipAccountDetails.end())); return ip2ipAccountDetails; - } void ConfigurationManager::setIp2IpDetails (const std::map<std::string, @@ -191,7 +190,6 @@ void ConfigurationManager::setIp2IpDetails (const std::map<std::string, std::map<std::string, std::string> ConfigurationManager::getTlsSettings() { - std::map<std::string, std::string> tlsSettings; SIPAccount *sipaccount = (SIPAccount *) Manager::instance().getAccount (IP2IP_PROFILE); @@ -715,7 +713,6 @@ std::vector<std::string> ConfigurationManager::getAllIpInterfaceByName (void) std::map<std::string, std::string> ConfigurationManager::getShortcuts() { - return Manager::instance().shortcutPreferences.getShortcuts(); } diff --git a/daemon/src/sip/sipaccount.cpp b/daemon/src/sip/sipaccount.cpp index dfcd8b62c1038682f36a29c8f672e0d6fd8a83e2..04df6c97b5a883404d59e9c52eaf1ef20fbc8d77 100644 --- a/daemon/src/sip/sipaccount.cpp +++ b/daemon/src/sip/sipaccount.cpp @@ -31,6 +31,7 @@ */ #include "sipaccount.h" +#include "sipvoiplink.h" #include "manager.h" #include "config.h" #include <pwd.h> @@ -485,50 +486,50 @@ std::map<std::string, std::string> SIPAccount::getAccountDetails() const // Add sip specific details a[ROUTESET] = getServiceRoute(); - a[CONFIG_ACCOUNT_RESOLVE_ONCE] = isResolveOnce() ? "true" : "false"; + a[CONFIG_ACCOUNT_RESOLVE_ONCE] = resolveOnce_ ? "true" : "false"; a[USERAGENT] = userAgent_; - a[CONFIG_ACCOUNT_REGISTRATION_EXPIRE] = getRegistrationExpire(); - a[LOCAL_INTERFACE] = getLocalInterface(); - a[PUBLISHED_SAMEAS_LOCAL] = getPublishedSameasLocal() ? "true" : "false"; - a[PUBLISHED_ADDRESS] = getPublishedAddress(); + a[CONFIG_ACCOUNT_REGISTRATION_EXPIRE] = registrationExpire_; + a[LOCAL_INTERFACE] = interface_; + a[PUBLISHED_SAMEAS_LOCAL] = publishedSameasLocal_ ? "true" : "false"; + a[PUBLISHED_ADDRESS] = publishedIpAddress_; std::stringstream localport; - localport << getLocalPort(); + localport << localPort_; a[LOCAL_PORT] = localport.str(); std::stringstream publishedport; - publishedport << getPublishedPort(); + publishedport << publishedPort_; a[PUBLISHED_PORT] = publishedport.str(); - a[STUN_ENABLE] = isStunEnabled() ? "true" : "false"; - a[STUN_SERVER] = getStunServer(); - a[ACCOUNT_DTMF_TYPE] = (getDtmfType() == OVERRTP) ? "overrtp" : "sipinfo"; + a[STUN_ENABLE] = stunEnabled_ ? "true" : "false"; + a[STUN_SERVER] = stunServer_; + a[ACCOUNT_DTMF_TYPE] = (dtmfType_ == OVERRTP) ? "overrtp" : "sipinfo"; - a[SRTP_KEY_EXCHANGE] = getSrtpKeyExchange(); - a[SRTP_ENABLE] = getSrtpEnable() ? "true" : "false"; - a[SRTP_RTP_FALLBACK] = getSrtpFallback() ? "true" : "false"; + a[SRTP_KEY_EXCHANGE] = srtpKeyExchange_; + a[SRTP_ENABLE] = srtpEnabled_ ? "true" : "false"; + a[SRTP_RTP_FALLBACK] = srtpFallback_ ? "true" : "false"; - a[ZRTP_DISPLAY_SAS] = getZrtpDisplaySas() ? "true" : "false"; - a[ZRTP_DISPLAY_SAS_ONCE] = getZrtpDiaplaySasOnce() ? "true" : "false"; - a[ZRTP_HELLO_HASH] = getZrtpHelloHash() ? "true" : "false"; - a[ZRTP_NOT_SUPP_WARNING] = getZrtpNotSuppWarning() ? "true" : "false"; + a[ZRTP_DISPLAY_SAS] = zrtpDisplaySas_ ? "true" : "false"; + a[ZRTP_DISPLAY_SAS_ONCE] = zrtpDisplaySasOnce_ ? "true" : "false"; + a[ZRTP_HELLO_HASH] = zrtpHelloHash_ ? "true" : "false"; + a[ZRTP_NOT_SUPP_WARNING] = zrtpNotSuppWarning_ ? "true" : "false"; // TLS listener is unique and parameters are modified through IP2IP_PROFILE std::stringstream tlslistenerport; - tlslistenerport << getTlsListenerPort(); + tlslistenerport << tlsListenerPort_; a[TLS_LISTENER_PORT] = tlslistenerport.str(); - a[TLS_ENABLE] = getTlsEnable(); - a[TLS_CA_LIST_FILE] = getTlsCaListFile(); - a[TLS_CERTIFICATE_FILE] = getTlsCertificateFile(); - a[TLS_PRIVATE_KEY_FILE] = getTlsPrivateKeyFile(); - a[TLS_PASSWORD] = getTlsPassword(); - a[TLS_METHOD] = getTlsMethod(); - a[TLS_CIPHERS] = getTlsCiphers(); - a[TLS_SERVER_NAME] = getTlsServerName(); - a[TLS_VERIFY_SERVER] = getTlsVerifyServer() ? "true" : "false"; - a[TLS_VERIFY_CLIENT] = getTlsVerifyClient() ? "true" : "false"; - a[TLS_REQUIRE_CLIENT_CERTIFICATE] = getTlsRequireClientCertificate() ? "true" : "false"; - a[TLS_NEGOTIATION_TIMEOUT_SEC] = getTlsNegotiationTimeoutSec(); - a[TLS_NEGOTIATION_TIMEOUT_MSEC] = getTlsNegotiationTimeoutMsec(); + a[TLS_ENABLE] = tlsEnable_; + a[TLS_CA_LIST_FILE] = tlsCaListFile_; + a[TLS_CERTIFICATE_FILE] = tlsCertificateFile_; + a[TLS_PRIVATE_KEY_FILE] = tlsPrivateKeyFile_; + a[TLS_PASSWORD] = tlsPassword_; + a[TLS_METHOD] = tlsMethod_; + a[TLS_CIPHERS] = tlsCiphers_; + a[TLS_SERVER_NAME] = tlsServerName_; + a[TLS_VERIFY_SERVER] = tlsVerifyServer_ ? "true" : "false"; + a[TLS_VERIFY_CLIENT] = tlsVerifyClient_ ? "true" : "false"; + a[TLS_REQUIRE_CLIENT_CERTIFICATE] = tlsRequireClientCertificate_ ? "true" : "false"; + a[TLS_NEGOTIATION_TIMEOUT_SEC] = tlsNegotiationTimeoutSec_; + a[TLS_NEGOTIATION_TIMEOUT_MSEC] = tlsNegotiationTimeoutMsec_; return a; } @@ -549,7 +550,7 @@ int SIPAccount::registerVoIPLink() // Init TLS settings if the user wants to use TLS if (tlsEnable_ == "true") { - _debug ("SIPAccount: TLS is enabled for account %s", getAccountID().c_str()); + _debug ("SIPAccount: TLS is enabled for account %s", accountID_.c_str()); transportType_ = PJSIP_TRANSPORT_TLS; initTlsConfiguration(); } @@ -671,9 +672,8 @@ void SIPAccount::loadConfig() if (tlsEnable_ == "true") { initTlsConfiguration(); transportType_ = PJSIP_TRANSPORT_TLS; - } else { + } else transportType_ = PJSIP_TRANSPORT_UDP; - } } bool SIPAccount::fullMatch (const std::string& username, const std::string& hostname) const diff --git a/daemon/src/sip/sipaccount.h b/daemon/src/sip/sipaccount.h index 4cdb44feacaa16cfbca6a8f52c10b92475178f35..0fd5363bae76e7c649851db83feda1f0089e6536 100644 --- a/daemon/src/sip/sipaccount.h +++ b/daemon/src/sip/sipaccount.h @@ -37,73 +37,72 @@ #include <sstream> - #include "account.h" -#include "sipvoiplink.h" #include "pjsip/sip_transport_tls.h" #include "pjsip/sip_types.h" -#include "config/serializable.h" -#include <exception> +#include "pjsip-ua/sip_regc.h" #include <vector> #include <map> +namespace Conf { + class YamlEmitter; + class MappingNode; +} enum DtmfType { OVERRTP, SIPINFO}; #define OVERRTPSTR "overrtp" #define SIPINFOSTR "sipinfo" - - // SIP specific configuration keys -const std::string expireKey ("expire"); -const std::string interfaceKey ("interface"); -const std::string portKey ("port"); -const std::string publishAddrKey ("publishAddr"); -const std::string publishPortKey ("publishPort"); -const std::string sameasLocalKey ("sameasLocal"); -const std::string resolveOnceKey ("resolveOnce"); -const std::string dtmfTypeKey ("dtmfType"); -const std::string serviceRouteKey ("serviceRoute"); +static const char *const expireKey = "expire"; +static const char *const interfaceKey = "interface"; +static const char *const portKey = "port"; +static const char *const publishAddrKey = "publishAddr"; +static const char *const publishPortKey = "publishPort"; +static const char *const sameasLocalKey = "sameasLocal"; +static const char *const resolveOnceKey = "resolveOnce"; +static const char *const dtmfTypeKey = "dtmfType"; +static const char *const serviceRouteKey = "serviceRoute"; // TODO: write an object to store credential which implement serializable -const std::string srtpKey ("srtp"); -const std::string srtpEnableKey ("enable"); -const std::string keyExchangeKey ("keyExchange"); -const std::string rtpFallbackKey ("rtpFallback"); +static const char *const srtpKey = "srtp"; +static const char *const srtpEnableKey = "enable"; +static const char *const keyExchangeKey = "keyExchange"; +static const char *const rtpFallbackKey = "rtpFallback"; // TODO: wirte an object to store zrtp params wich implement serializable -const std::string zrtpKey ("zrtp"); -const std::string displaySasKey ("displaySas"); -const std::string displaySasOnceKey ("displaySasOnce"); -const std::string helloHashEnabledKey ("helloHashEnabled"); -const std::string notSuppWarningKey ("notSuppWarning"); +static const char *const zrtpKey = "zrtp"; +static const char *const displaySasKey = "displaySas"; +static const char *const displaySasOnceKey = "displaySasOnce"; +static const char *const helloHashEnabledKey = "helloHashEnabled"; +static const char *const notSuppWarningKey = "notSuppWarning"; // TODO: write an object to store tls params which implement serializable -const std::string tlsKey ("tls"); -const std::string tlsPortKey ("tlsPort"); -const std::string certificateKey ("certificate"); -const std::string calistKey ("calist"); -const std::string ciphersKey ("ciphers"); -const std::string tlsEnableKey ("enable"); -const std::string methodKey ("method"); -const std::string timeoutKey ("timeout"); -const std::string tlsPasswordKey ("password"); -const std::string privateKeyKey ("privateKey"); -const std::string requireCertifKey ("requireCertif"); -const std::string serverKey ("server"); -const std::string verifyClientKey ("verifyClient"); -const std::string verifyServerKey ("verifyServer"); - -const std::string stunEnabledKey ("stunEnabled"); -const std::string stunServerKey ("stunServer"); - -const std::string credKey ("credential"); +static const char *const tlsKey = "tls"; +static const char *const tlsPortKey = "tlsPort"; +static const char *const certificateKey = "certificate"; +static const char *const calistKey = "calist"; +static const char *const ciphersKey = "ciphers"; +static const char *const tlsEnableKey = "enable"; +static const char *const methodKey = "method"; +static const char *const timeoutKey = "timeout"; +static const char *const tlsPasswordKey = "password"; +static const char *const privateKeyKey = "privateKey"; +static const char *const requireCertifKey = "requireCertif"; +static const char *const serverKey = "server"; +static const char *const verifyClientKey = "verifyClient"; +static const char *const verifyServerKey = "verifyServer"; + +static const char *const stunEnabledKey = "stunEnabled"; +static const char *const stunServerKey = "stunServer"; + +static const char *const credKey = "credential"; class SIPVoIPLink; /** * @file sipaccount.h - * @brief A SIP Account specify SIP specific functions and object (SIPCall/SIPVoIPLink) + * @brief A SIP Account specify SIP specific functions and object = SIPCall/SIPVoIPLink) */ class SIPAccount : public Account @@ -115,12 +114,6 @@ class SIPAccount : public Account */ SIPAccount (const std::string& accountID); - /* Copy Constructor */ - SIPAccount (const SIPAccount& rh); - - /* Assignment Operator */ - SIPAccount& operator= (const SIPAccount& rh); - /** * Virtual destructor */ @@ -136,24 +129,9 @@ class SIPAccount : public Account virtual std::map<std::string, std::string> getAccountDetails() const; - /** - * Set route header to appears in sip messages for this account - */ - void setRouteSet (const std::string &route) { - routeSet_ = route; - } - - /** - * Get route header to appear in sip messages for this account - */ - std::string getRouteSet (void) const { - return routeSet_; - } - /** * Special setVoIPLink which increment SipVoIPLink's number of client. */ - // void setVoIPLink(VoIPLink *link); void setVoIPLink(); /** @@ -559,6 +537,7 @@ class SIPAccount : public Account std::string getTlsPassword (void) const { return tlsPassword_; } + void setTlsPassword (const std::string &pass) { tlsPassword_ = pass; } diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp index 8feea1adbf3366875fbbc757ea416a6b7321355e..4ae88ec6c782193e031e121467c8e5bb5e33ec6e 100644 --- a/daemon/src/sip/sipvoiplink.cpp +++ b/daemon/src/sip/sipvoiplink.cpp @@ -1184,7 +1184,6 @@ SIPVoIPLink::carryingDTMFdigits (const std::string& id, char code) return true; } - bool SIPVoIPLink::dtmfSipInfo (SIPCall *call, char code) {