diff --git a/src/components/settings/SettingsModel.cpp b/src/components/settings/SettingsModel.cpp index d30b75155..3db31d1e9 100644 --- a/src/components/settings/SettingsModel.cpp +++ b/src/components/settings/SettingsModel.cpp @@ -504,9 +504,6 @@ QVariantList SettingsModel::getSupportedMediaEncryptions () const { shared_ptr core = CoreManager::getInstance()->getCore(); QVariantList list; - if (core->mediaEncryptionSupported(linphone::MediaEncryption::DTLS)) - list << buildEncryptionDescription(MediaEncryptionDtls, "DTLS"); - if (core->mediaEncryptionSupported(linphone::MediaEncryption::SRTP)) list << buildEncryptionDescription(MediaEncryptionSrtp, "SRTP"); @@ -534,10 +531,31 @@ void SettingsModel::setMediaEncryption (MediaEncryption encryption) { CoreManager::getInstance()->getCore()->setMediaEncryption( static_cast(encryption) ); + if (mandatoryMediaEncryptionEnabled() && encryption == SettingsModel::MediaEncryptionNone) { + //Disable mandatory encryption if none is selected + enableMandatoryMediaEncryption(false); + } emit mediaEncryptionChanged(encryption); } +bool SettingsModel::mandatoryMediaEncryptionEnabled () const { + return CoreManager::getInstance()->getCore()->isMediaEncryptionMandatory(); +} + +void SettingsModel::enableMandatoryMediaEncryption(bool mandatory) { + if (mandatoryMediaEncryptionEnabled() == mandatory) { + return; + } + CoreManager::getInstance()->getCore()->setMediaEncryptionMandatory(mandatory); + if (mandatory && getMediaEncryption() == SettingsModel::MediaEncryptionNone) { + //Force to SRTP if mandatory but 'none' was selected + setMediaEncryption(SettingsModel::MediaEncryptionSrtp); + } else { + emit mediaEncryptionChanged(getMediaEncryption()); + } +} + // ----------------------------------------------------------------------------- SettingsModel::LimeState SettingsModel::getLimeState () const { diff --git a/src/components/settings/SettingsModel.hpp b/src/components/settings/SettingsModel.hpp index efee8835b..704e7b449 100644 --- a/src/components/settings/SettingsModel.hpp +++ b/src/components/settings/SettingsModel.hpp @@ -17,7 +17,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Created on: February 2, 2017 - * Author: Ronan Abhamon + * Author: Ronan Abhamon */ #ifndef SETTINGS_MODEL_H_ @@ -29,522 +29,527 @@ // ============================================================================= class SettingsModel : public QObject { - Q_OBJECT; + Q_OBJECT; - // =========================================================================== - // PROPERTIES. - // =========================================================================== + // =========================================================================== + // PROPERTIES. + // =========================================================================== - // Assistant. ---------------------------------------------------------------- + // Assistant. ---------------------------------------------------------------- - Q_PROPERTY(bool createAppSipAccountEnabled READ getCreateAppSipAccountEnabled WRITE setCreateAppSipAccountEnabled NOTIFY createAppSipAccountEnabledChanged); - Q_PROPERTY(bool fetchRemoteConfigurationEnabled READ getFetchRemoteConfigurationEnabled WRITE setFetchRemoteConfigurationEnabled NOTIFY fetchRemoteConfigurationEnabledChanged); - Q_PROPERTY(bool useAppSipAccountEnabled READ getUseAppSipAccountEnabled WRITE setUseAppSipAccountEnabled NOTIFY useAppSipAccountEnabledChanged); - Q_PROPERTY(bool useOtherSipAccountEnabled READ getUseOtherSipAccountEnabled WRITE setUseOtherSipAccountEnabled NOTIFY useOtherSipAccountEnabledChanged); + Q_PROPERTY(bool createAppSipAccountEnabled READ getCreateAppSipAccountEnabled WRITE setCreateAppSipAccountEnabled NOTIFY createAppSipAccountEnabledChanged); + Q_PROPERTY(bool fetchRemoteConfigurationEnabled READ getFetchRemoteConfigurationEnabled WRITE setFetchRemoteConfigurationEnabled NOTIFY fetchRemoteConfigurationEnabledChanged); + Q_PROPERTY(bool useAppSipAccountEnabled READ getUseAppSipAccountEnabled WRITE setUseAppSipAccountEnabled NOTIFY useAppSipAccountEnabledChanged); + Q_PROPERTY(bool useOtherSipAccountEnabled READ getUseOtherSipAccountEnabled WRITE setUseOtherSipAccountEnabled NOTIFY useOtherSipAccountEnabledChanged); - Q_PROPERTY(bool assistantSupportsPhoneNumbers READ getAssistantSupportsPhoneNumbers WRITE setAssistantSupportsPhoneNumbers NOTIFY assistantSupportsPhoneNumbersChanged); + Q_PROPERTY(bool assistantSupportsPhoneNumbers READ getAssistantSupportsPhoneNumbers WRITE setAssistantSupportsPhoneNumbers NOTIFY assistantSupportsPhoneNumbersChanged); - // Audio. -------------------------------------------------------------------- + // Audio. -------------------------------------------------------------------- - Q_PROPERTY(QStringList captureDevices READ getCaptureDevices CONSTANT); - Q_PROPERTY(QStringList playbackDevices READ getPlaybackDevices CONSTANT); + Q_PROPERTY(QStringList captureDevices READ getCaptureDevices CONSTANT); + Q_PROPERTY(QStringList playbackDevices READ getPlaybackDevices CONSTANT); - Q_PROPERTY(QString captureDevice READ getCaptureDevice WRITE setCaptureDevice NOTIFY captureDeviceChanged); - Q_PROPERTY(QString playbackDevice READ getPlaybackDevice WRITE setPlaybackDevice NOTIFY playbackDeviceChanged); - Q_PROPERTY(QString ringerDevice READ getRingerDevice WRITE setRingerDevice NOTIFY ringerDeviceChanged); + Q_PROPERTY(QString captureDevice READ getCaptureDevice WRITE setCaptureDevice NOTIFY captureDeviceChanged); + Q_PROPERTY(QString playbackDevice READ getPlaybackDevice WRITE setPlaybackDevice NOTIFY playbackDeviceChanged); + Q_PROPERTY(QString ringerDevice READ getRingerDevice WRITE setRingerDevice NOTIFY ringerDeviceChanged); - Q_PROPERTY(QString ringPath READ getRingPath WRITE setRingPath NOTIFY ringPathChanged); + Q_PROPERTY(QString ringPath READ getRingPath WRITE setRingPath NOTIFY ringPathChanged); - Q_PROPERTY(bool echoCancellationEnabled READ getEchoCancellationEnabled WRITE setEchoCancellationEnabled NOTIFY echoCancellationEnabledChanged); + Q_PROPERTY(bool echoCancellationEnabled READ getEchoCancellationEnabled WRITE setEchoCancellationEnabled NOTIFY echoCancellationEnabledChanged); - Q_PROPERTY(bool showAudioCodecs READ getShowAudioCodecs WRITE setShowAudioCodecs NOTIFY showAudioCodecsChanged); + Q_PROPERTY(bool showAudioCodecs READ getShowAudioCodecs WRITE setShowAudioCodecs NOTIFY showAudioCodecsChanged); - // Video. -------------------------------------------------------------------- + // Video. -------------------------------------------------------------------- - Q_PROPERTY(QStringList videoDevices READ getVideoDevices CONSTANT); + Q_PROPERTY(QStringList videoDevices READ getVideoDevices CONSTANT); - Q_PROPERTY(QString videoDevice READ getVideoDevice WRITE setVideoDevice NOTIFY videoDeviceChanged); + Q_PROPERTY(QString videoDevice READ getVideoDevice WRITE setVideoDevice NOTIFY videoDeviceChanged); - Q_PROPERTY(QString videoPreset READ getVideoPreset WRITE setVideoPreset NOTIFY videoPresetChanged); - Q_PROPERTY(int videoFramerate READ getVideoFramerate WRITE setVideoFramerate NOTIFY videoFramerateChanged); + Q_PROPERTY(QString videoPreset READ getVideoPreset WRITE setVideoPreset NOTIFY videoPresetChanged); + Q_PROPERTY(int videoFramerate READ getVideoFramerate WRITE setVideoFramerate NOTIFY videoFramerateChanged); - Q_PROPERTY(QVariantList supportedVideoDefinitions READ getSupportedVideoDefinitions CONSTANT); + Q_PROPERTY(QVariantList supportedVideoDefinitions READ getSupportedVideoDefinitions CONSTANT); - Q_PROPERTY(QVariantMap videoDefinition READ getVideoDefinition WRITE setVideoDefinition NOTIFY videoDefinitionChanged); + Q_PROPERTY(QVariantMap videoDefinition READ getVideoDefinition WRITE setVideoDefinition NOTIFY videoDefinitionChanged); - Q_PROPERTY(bool videoSupported READ getVideoSupported CONSTANT); + Q_PROPERTY(bool videoSupported READ getVideoSupported CONSTANT); - Q_PROPERTY(bool showVideoCodecs READ getShowVideoCodecs WRITE setShowVideoCodecs NOTIFY showVideoCodecsChanged); + Q_PROPERTY(bool showVideoCodecs READ getShowVideoCodecs WRITE setShowVideoCodecs NOTIFY showVideoCodecsChanged); - // Chat & calls. ------------------------------------------------------------- + // Chat & calls. ------------------------------------------------------------- - Q_PROPERTY(bool autoAnswerStatus READ getAutoAnswerStatus WRITE setAutoAnswerStatus NOTIFY autoAnswerStatusChanged); - Q_PROPERTY(bool autoAnswerVideoStatus READ getAutoAnswerVideoStatus WRITE setAutoAnswerVideoStatus NOTIFY autoAnswerVideoStatusChanged); - Q_PROPERTY(int autoAnswerDelay READ getAutoAnswerDelay WRITE setAutoAnswerDelay NOTIFY autoAnswerDelayChanged); + Q_PROPERTY(bool autoAnswerStatus READ getAutoAnswerStatus WRITE setAutoAnswerStatus NOTIFY autoAnswerStatusChanged); + Q_PROPERTY(bool autoAnswerVideoStatus READ getAutoAnswerVideoStatus WRITE setAutoAnswerVideoStatus NOTIFY autoAnswerVideoStatusChanged); + Q_PROPERTY(int autoAnswerDelay READ getAutoAnswerDelay WRITE setAutoAnswerDelay NOTIFY autoAnswerDelayChanged); - Q_PROPERTY(bool showTelKeypadAutomatically READ getShowTelKeypadAutomatically WRITE setShowTelKeypadAutomatically NOTIFY showTelKeypadAutomaticallyChanged); + Q_PROPERTY(bool showTelKeypadAutomatically READ getShowTelKeypadAutomatically WRITE setShowTelKeypadAutomatically NOTIFY showTelKeypadAutomaticallyChanged); - Q_PROPERTY(bool keepCallsWindowInBackground READ getKeepCallsWindowInBackground WRITE setKeepCallsWindowInBackground NOTIFY keepCallsWindowInBackgroundChanged); + Q_PROPERTY(bool keepCallsWindowInBackground READ getKeepCallsWindowInBackground WRITE setKeepCallsWindowInBackground NOTIFY keepCallsWindowInBackgroundChanged); - Q_PROPERTY(bool outgoingCallsEnabled READ getOutgoingCallsEnabled WRITE setOutgoingCallsEnabled NOTIFY outgoingCallsEnabledChanged); + Q_PROPERTY(bool outgoingCallsEnabled READ getOutgoingCallsEnabled WRITE setOutgoingCallsEnabled NOTIFY outgoingCallsEnabledChanged); - Q_PROPERTY(bool callRecorderEnabled READ getCallRecorderEnabled WRITE setCallRecorderEnabled NOTIFY callRecorderEnabledChanged); - Q_PROPERTY(bool automaticallyRecordCalls READ getAutomaticallyRecordCalls WRITE setAutomaticallyRecordCalls NOTIFY automaticallyRecordCallsChanged); + Q_PROPERTY(bool callRecorderEnabled READ getCallRecorderEnabled WRITE setCallRecorderEnabled NOTIFY callRecorderEnabledChanged); + Q_PROPERTY(bool automaticallyRecordCalls READ getAutomaticallyRecordCalls WRITE setAutomaticallyRecordCalls NOTIFY automaticallyRecordCallsChanged); - Q_PROPERTY(bool callPauseEnabled READ getCallPauseEnabled WRITE setCallPauseEnabled NOTIFY callPauseEnabledChanged); - Q_PROPERTY(bool muteMicrophoneEnabled READ getMuteMicrophoneEnabled WRITE setMuteMicrophoneEnabled NOTIFY muteMicrophoneEnabledChanged); + Q_PROPERTY(bool callPauseEnabled READ getCallPauseEnabled WRITE setCallPauseEnabled NOTIFY callPauseEnabledChanged); + Q_PROPERTY(bool muteMicrophoneEnabled READ getMuteMicrophoneEnabled WRITE setMuteMicrophoneEnabled NOTIFY muteMicrophoneEnabledChanged); - Q_PROPERTY(bool chatEnabled READ getChatEnabled WRITE setChatEnabled NOTIFY chatEnabledChanged); + Q_PROPERTY(bool chatEnabled READ getChatEnabled WRITE setChatEnabled NOTIFY chatEnabledChanged); - Q_PROPERTY(bool conferenceEnabled READ getConferenceEnabled WRITE setConferenceEnabled NOTIFY conferenceEnabledChanged); + Q_PROPERTY(bool conferenceEnabled READ getConferenceEnabled WRITE setConferenceEnabled NOTIFY conferenceEnabledChanged); - Q_PROPERTY(bool chatNotificationSoundEnabled READ getChatNotificationSoundEnabled WRITE setChatNotificationSoundEnabled NOTIFY chatNotificationSoundEnabledChanged); - Q_PROPERTY(QString chatNotificationSoundPath READ getChatNotificationSoundPath WRITE setChatNotificationSoundPath NOTIFY chatNotificationSoundPathChanged); + Q_PROPERTY(bool chatNotificationSoundEnabled READ getChatNotificationSoundEnabled WRITE setChatNotificationSoundEnabled NOTIFY chatNotificationSoundEnabledChanged); + Q_PROPERTY(QString chatNotificationSoundPath READ getChatNotificationSoundPath WRITE setChatNotificationSoundPath NOTIFY chatNotificationSoundPathChanged); - Q_PROPERTY(QString fileTransferUrl READ getFileTransferUrl WRITE setFileTransferUrl NOTIFY fileTransferUrlChanged); + Q_PROPERTY(QString fileTransferUrl READ getFileTransferUrl WRITE setFileTransferUrl NOTIFY fileTransferUrlChanged); - Q_PROPERTY(bool limeIsSupported READ getLimeIsSupported CONSTANT); - Q_PROPERTY(QVariantList supportedMediaEncryptions READ getSupportedMediaEncryptions CONSTANT); + Q_PROPERTY(bool limeIsSupported READ getLimeIsSupported CONSTANT); + Q_PROPERTY(QVariantList supportedMediaEncryptions READ getSupportedMediaEncryptions CONSTANT); - Q_PROPERTY(MediaEncryption mediaEncryption READ getMediaEncryption WRITE setMediaEncryption NOTIFY mediaEncryptionChanged); - Q_PROPERTY(LimeState limeState READ getLimeState WRITE setLimeState NOTIFY limeStateChanged); + Q_PROPERTY(MediaEncryption mediaEncryption READ getMediaEncryption WRITE setMediaEncryption NOTIFY mediaEncryptionChanged); + Q_PROPERTY(bool mediaEncryptionMandatory READ mandatoryMediaEncryptionEnabled WRITE enableMandatoryMediaEncryption NOTIFY mediaEncryptionChanged); - Q_PROPERTY(bool contactsEnabled READ getContactsEnabled WRITE setContactsEnabled NOTIFY contactsEnabledChanged); + Q_PROPERTY(LimeState limeState READ getLimeState WRITE setLimeState NOTIFY limeStateChanged); - // Network. ------------------------------------------------------------------ + Q_PROPERTY(bool contactsEnabled READ getContactsEnabled WRITE setContactsEnabled NOTIFY contactsEnabledChanged); - Q_PROPERTY(bool showNetworkSettings READ getShowNetworkSettings WRITE setShowNetworkSettings NOTIFY showNetworkSettingsChanged); + // Network. ------------------------------------------------------------------ - Q_PROPERTY(bool useSipInfoForDtmfs READ getUseSipInfoForDtmfs WRITE setUseSipInfoForDtmfs NOTIFY dtmfsProtocolChanged); - Q_PROPERTY(bool useRfc2833ForDtmfs READ getUseRfc2833ForDtmfs WRITE setUseRfc2833ForDtmfs NOTIFY dtmfsProtocolChanged); + Q_PROPERTY(bool showNetworkSettings READ getShowNetworkSettings WRITE setShowNetworkSettings NOTIFY showNetworkSettingsChanged); - Q_PROPERTY(bool ipv6Enabled READ getIpv6Enabled WRITE setIpv6Enabled NOTIFY ipv6EnabledChanged); + Q_PROPERTY(bool useSipInfoForDtmfs READ getUseSipInfoForDtmfs WRITE setUseSipInfoForDtmfs NOTIFY dtmfsProtocolChanged); + Q_PROPERTY(bool useRfc2833ForDtmfs READ getUseRfc2833ForDtmfs WRITE setUseRfc2833ForDtmfs NOTIFY dtmfsProtocolChanged); - Q_PROPERTY(int downloadBandwidth READ getDownloadBandwidth WRITE setDownloadBandwidth NOTIFY downloadBandWidthChanged); - Q_PROPERTY(int uploadBandwidth READ getUploadBandwidth WRITE setUploadBandwidth NOTIFY uploadBandWidthChanged); + Q_PROPERTY(bool ipv6Enabled READ getIpv6Enabled WRITE setIpv6Enabled NOTIFY ipv6EnabledChanged); - Q_PROPERTY( - bool adaptiveRateControlEnabled - READ getAdaptiveRateControlEnabled - WRITE setAdaptiveRateControlEnabled - NOTIFY adaptiveRateControlEnabledChanged - ); + Q_PROPERTY(int downloadBandwidth READ getDownloadBandwidth WRITE setDownloadBandwidth NOTIFY downloadBandWidthChanged); + Q_PROPERTY(int uploadBandwidth READ getUploadBandwidth WRITE setUploadBandwidth NOTIFY uploadBandWidthChanged); - Q_PROPERTY(int tcpPort READ getTcpPort WRITE setTcpPort NOTIFY tcpPortChanged); - Q_PROPERTY(int udpPort READ getUdpPort WRITE setUdpPort NOTIFY udpPortChanged); + Q_PROPERTY( + bool adaptiveRateControlEnabled + READ getAdaptiveRateControlEnabled + WRITE setAdaptiveRateControlEnabled + NOTIFY adaptiveRateControlEnabledChanged + ); - Q_PROPERTY(QList audioPortRange READ getAudioPortRange WRITE setAudioPortRange NOTIFY audioPortRangeChanged); - Q_PROPERTY(QList videoPortRange READ getVideoPortRange WRITE setVideoPortRange NOTIFY videoPortRangeChanged); + Q_PROPERTY(int tcpPort READ getTcpPort WRITE setTcpPort NOTIFY tcpPortChanged); + Q_PROPERTY(int udpPort READ getUdpPort WRITE setUdpPort NOTIFY udpPortChanged); - Q_PROPERTY(bool iceEnabled READ getIceEnabled WRITE setIceEnabled NOTIFY iceEnabledChanged); - Q_PROPERTY(bool turnEnabled READ getTurnEnabled WRITE setTurnEnabled NOTIFY turnEnabledChanged); + Q_PROPERTY(QList audioPortRange READ getAudioPortRange WRITE setAudioPortRange NOTIFY audioPortRangeChanged); + Q_PROPERTY(QList videoPortRange READ getVideoPortRange WRITE setVideoPortRange NOTIFY videoPortRangeChanged); - Q_PROPERTY(QString stunServer READ getStunServer WRITE setStunServer NOTIFY stunServerChanged); + Q_PROPERTY(bool iceEnabled READ getIceEnabled WRITE setIceEnabled NOTIFY iceEnabledChanged); + Q_PROPERTY(bool turnEnabled READ getTurnEnabled WRITE setTurnEnabled NOTIFY turnEnabledChanged); - Q_PROPERTY(QString turnUser READ getTurnUser WRITE setTurnUser NOTIFY turnUserChanged); - Q_PROPERTY(QString turnPassword READ getTurnPassword WRITE setTurnPassword NOTIFY turnPasswordChanged); + Q_PROPERTY(QString stunServer READ getStunServer WRITE setStunServer NOTIFY stunServerChanged); - Q_PROPERTY(int dscpSip READ getDscpSip WRITE setDscpSip NOTIFY dscpSipChanged); - Q_PROPERTY(int dscpAudio READ getDscpAudio WRITE setDscpAudio NOTIFY dscpAudioChanged); - Q_PROPERTY(int dscpVideo READ getDscpVideo WRITE setDscpVideo NOTIFY dscpVideoChanged); + Q_PROPERTY(QString turnUser READ getTurnUser WRITE setTurnUser NOTIFY turnUserChanged); + Q_PROPERTY(QString turnPassword READ getTurnPassword WRITE setTurnPassword NOTIFY turnPasswordChanged); - Q_PROPERTY(bool rlsUriEnabled READ getRlsUriEnabled WRITE setRlsUriEnabled NOTIFY rlsUriEnabledChanged); + Q_PROPERTY(int dscpSip READ getDscpSip WRITE setDscpSip NOTIFY dscpSipChanged); + Q_PROPERTY(int dscpAudio READ getDscpAudio WRITE setDscpAudio NOTIFY dscpAudioChanged); + Q_PROPERTY(int dscpVideo READ getDscpVideo WRITE setDscpVideo NOTIFY dscpVideoChanged); - // UI. ----------------------------------------------------------------------- + Q_PROPERTY(bool rlsUriEnabled READ getRlsUriEnabled WRITE setRlsUriEnabled NOTIFY rlsUriEnabledChanged); - Q_PROPERTY(QString remoteProvisioning READ getRemoteProvisioning WRITE setRemoteProvisioning NOTIFY remoteProvisioningChanged); + // UI. ----------------------------------------------------------------------- - Q_PROPERTY(QString savedScreenshotsFolder READ getSavedScreenshotsFolder WRITE setSavedScreenshotsFolder NOTIFY savedScreenshotsFolderChanged); - Q_PROPERTY(QString savedCallsFolder READ getSavedCallsFolder WRITE setSavedCallsFolder NOTIFY savedCallsFolderChanged); - Q_PROPERTY(QString downloadFolder READ getDownloadFolder WRITE setDownloadFolder NOTIFY downloadFolderChanged); + Q_PROPERTY(QString remoteProvisioning READ getRemoteProvisioning WRITE setRemoteProvisioning NOTIFY remoteProvisioningChanged); - Q_PROPERTY(bool exitOnClose READ getExitOnClose WRITE setExitOnClose NOTIFY exitOnCloseChanged); + Q_PROPERTY(QString savedScreenshotsFolder READ getSavedScreenshotsFolder WRITE setSavedScreenshotsFolder NOTIFY savedScreenshotsFolderChanged); + Q_PROPERTY(QString savedCallsFolder READ getSavedCallsFolder WRITE setSavedCallsFolder NOTIFY savedCallsFolderChanged); + Q_PROPERTY(QString downloadFolder READ getDownloadFolder WRITE setDownloadFolder NOTIFY downloadFolderChanged); - // Advanced. ----------------------------------------------------------------- + Q_PROPERTY(bool exitOnClose READ getExitOnClose WRITE setExitOnClose NOTIFY exitOnCloseChanged); - Q_PROPERTY(QString logsFolder READ getLogsFolder WRITE setLogsFolder NOTIFY logsFolderChanged); - Q_PROPERTY(QString logsUploadUrl READ getLogsUploadUrl WRITE setLogsUploadUrl NOTIFY logsUploadUrlChanged); - Q_PROPERTY(bool logsEnabled READ getLogsEnabled WRITE setLogsEnabled NOTIFY logsEnabledChanged); - Q_PROPERTY(QString logsEmail READ getLogsEmail WRITE setLogsEmail NOTIFY logsEmailChanged); + // Advanced. ----------------------------------------------------------------- - Q_PROPERTY(bool developerSettingsEnabled READ getDeveloperSettingsEnabled WRITE setDeveloperSettingsEnabled NOTIFY developerSettingsEnabledChanged); + Q_PROPERTY(QString logsFolder READ getLogsFolder WRITE setLogsFolder NOTIFY logsFolderChanged); + Q_PROPERTY(QString logsUploadUrl READ getLogsUploadUrl WRITE setLogsUploadUrl NOTIFY logsUploadUrlChanged); + Q_PROPERTY(bool logsEnabled READ getLogsEnabled WRITE setLogsEnabled NOTIFY logsEnabledChanged); + Q_PROPERTY(QString logsEmail READ getLogsEmail WRITE setLogsEmail NOTIFY logsEmailChanged); + + Q_PROPERTY(bool developerSettingsEnabled READ getDeveloperSettingsEnabled WRITE setDeveloperSettingsEnabled NOTIFY developerSettingsEnabledChanged); public: - enum MediaEncryption { - MediaEncryptionNone = int(linphone::MediaEncryption::None), - MediaEncryptionDtls = int(linphone::MediaEncryption::DTLS), - MediaEncryptionSrtp = int(linphone::MediaEncryption::SRTP), - MediaEncryptionZrtp = int(linphone::MediaEncryption::ZRTP) - }; - Q_ENUM(MediaEncryption); + enum MediaEncryption { + MediaEncryptionNone = int(linphone::MediaEncryption::None), + // MediaEncryptionDtls = int(linphone::MediaEncryption::DTLS), + MediaEncryptionSrtp = int(linphone::MediaEncryption::SRTP), + MediaEncryptionZrtp = int(linphone::MediaEncryption::ZRTP) + }; + Q_ENUM(MediaEncryption); - enum LimeState { - LimeStateDisabled = int(linphone::LimeState::Disabled), - LimeStateMandatory = int(linphone::LimeState::Mandatory), - LimeStatePreferred = int(linphone::LimeState::Preferred) - }; - Q_ENUM(LimeState); + enum LimeState { + LimeStateDisabled = int(linphone::LimeState::Disabled), + LimeStateMandatory = int(linphone::LimeState::Mandatory), + LimeStatePreferred = int(linphone::LimeState::Preferred) + }; + Q_ENUM(LimeState); - SettingsModel (QObject *parent = Q_NULLPTR); + SettingsModel (QObject *parent = Q_NULLPTR); - // =========================================================================== - // METHODS. - // =========================================================================== + // =========================================================================== + // METHODS. + // =========================================================================== - // Assistant. ---------------------------------------------------------------- + // Assistant. ---------------------------------------------------------------- - bool getCreateAppSipAccountEnabled () const; - void setCreateAppSipAccountEnabled (bool status); + bool getCreateAppSipAccountEnabled () const; + void setCreateAppSipAccountEnabled (bool status); - bool getFetchRemoteConfigurationEnabled () const; - void setFetchRemoteConfigurationEnabled (bool status); + bool getFetchRemoteConfigurationEnabled () const; + void setFetchRemoteConfigurationEnabled (bool status); - bool getUseAppSipAccountEnabled () const; - void setUseAppSipAccountEnabled (bool status); + bool getUseAppSipAccountEnabled () const; + void setUseAppSipAccountEnabled (bool status); - bool getUseOtherSipAccountEnabled () const; - void setUseOtherSipAccountEnabled (bool status); + bool getUseOtherSipAccountEnabled () const; + void setUseOtherSipAccountEnabled (bool status); - bool getAssistantSupportsPhoneNumbers () const; - void setAssistantSupportsPhoneNumbers (bool status); + bool getAssistantSupportsPhoneNumbers () const; + void setAssistantSupportsPhoneNumbers (bool status); - // Audio. -------------------------------------------------------------------- + // Audio. -------------------------------------------------------------------- - QStringList getCaptureDevices () const; - QStringList getPlaybackDevices () const; + QStringList getCaptureDevices () const; + QStringList getPlaybackDevices () const; - QString getCaptureDevice () const; - void setCaptureDevice (const QString &device); + QString getCaptureDevice () const; + void setCaptureDevice (const QString &device); - QString getPlaybackDevice () const; - void setPlaybackDevice (const QString &device); + QString getPlaybackDevice () const; + void setPlaybackDevice (const QString &device); - QString getRingerDevice () const; - void setRingerDevice (const QString &device); + QString getRingerDevice () const; + void setRingerDevice (const QString &device); - QString getRingPath () const; - void setRingPath (const QString &path); + QString getRingPath () const; + void setRingPath (const QString &path); - bool getEchoCancellationEnabled () const; - void setEchoCancellationEnabled (bool status); + bool getEchoCancellationEnabled () const; + void setEchoCancellationEnabled (bool status); - bool getShowAudioCodecs () const; - void setShowAudioCodecs (bool status); + bool getShowAudioCodecs () const; + void setShowAudioCodecs (bool status); - // Video. -------------------------------------------------------------------- + // Video. -------------------------------------------------------------------- - QStringList getVideoDevices () const; + QStringList getVideoDevices () const; - QString getVideoDevice () const; - void setVideoDevice (const QString &device); + QString getVideoDevice () const; + void setVideoDevice (const QString &device); - QString getVideoPreset () const; - void setVideoPreset (const QString &preset); + QString getVideoPreset () const; + void setVideoPreset (const QString &preset); - int getVideoFramerate () const; - void setVideoFramerate (int framerate); + int getVideoFramerate () const; + void setVideoFramerate (int framerate); - QVariantList getSupportedVideoDefinitions () const; + QVariantList getSupportedVideoDefinitions () const; - QVariantMap getVideoDefinition () const; - void setVideoDefinition (const QVariantMap &definition); + QVariantMap getVideoDefinition () const; + void setVideoDefinition (const QVariantMap &definition); - bool getVideoSupported () const; + bool getVideoSupported () const; - bool getShowVideoCodecs () const; - void setShowVideoCodecs (bool status); + bool getShowVideoCodecs () const; + void setShowVideoCodecs (bool status); - // Chat & calls. ------------------------------------------------------------- + // Chat & calls. ------------------------------------------------------------- - bool getAutoAnswerStatus () const; - void setAutoAnswerStatus (bool status); + bool getAutoAnswerStatus () const; + void setAutoAnswerStatus (bool status); - bool getAutoAnswerVideoStatus () const; - void setAutoAnswerVideoStatus (bool status); + bool getAutoAnswerVideoStatus () const; + void setAutoAnswerVideoStatus (bool status); - int getAutoAnswerDelay () const; - void setAutoAnswerDelay (int delay); + int getAutoAnswerDelay () const; + void setAutoAnswerDelay (int delay); - bool getShowTelKeypadAutomatically () const; - void setShowTelKeypadAutomatically (bool status); + bool getShowTelKeypadAutomatically () const; + void setShowTelKeypadAutomatically (bool status); - bool getKeepCallsWindowInBackground () const; - void setKeepCallsWindowInBackground (bool status); + bool getKeepCallsWindowInBackground () const; + void setKeepCallsWindowInBackground (bool status); - bool getOutgoingCallsEnabled () const; - void setOutgoingCallsEnabled (bool status); + bool getOutgoingCallsEnabled () const; + void setOutgoingCallsEnabled (bool status); - bool getCallRecorderEnabled () const; - void setCallRecorderEnabled (bool status); + bool getCallRecorderEnabled () const; + void setCallRecorderEnabled (bool status); - bool getAutomaticallyRecordCalls () const; - void setAutomaticallyRecordCalls (bool status); + bool getAutomaticallyRecordCalls () const; + void setAutomaticallyRecordCalls (bool status); - bool getCallPauseEnabled () const; - void setCallPauseEnabled (bool status); + bool getCallPauseEnabled () const; + void setCallPauseEnabled (bool status); - bool getMuteMicrophoneEnabled () const; - void setMuteMicrophoneEnabled (bool status); + bool getMuteMicrophoneEnabled () const; + void setMuteMicrophoneEnabled (bool status); - bool getChatEnabled () const; - void setChatEnabled (bool status); + bool getChatEnabled () const; + void setChatEnabled (bool status); - bool getConferenceEnabled () const; - void setConferenceEnabled (bool status); + bool getConferenceEnabled () const; + void setConferenceEnabled (bool status); - bool getChatNotificationSoundEnabled () const; - void setChatNotificationSoundEnabled (bool status); + bool getChatNotificationSoundEnabled () const; + void setChatNotificationSoundEnabled (bool status); - QString getChatNotificationSoundPath () const; - void setChatNotificationSoundPath (const QString &path); + QString getChatNotificationSoundPath () const; + void setChatNotificationSoundPath (const QString &path); - QString getFileTransferUrl () const; - void setFileTransferUrl (const QString &url); + QString getFileTransferUrl () const; + void setFileTransferUrl (const QString &url); - bool getLimeIsSupported () const; - QVariantList getSupportedMediaEncryptions () const; + bool getLimeIsSupported () const; + QVariantList getSupportedMediaEncryptions () const; - MediaEncryption getMediaEncryption () const; - void setMediaEncryption (MediaEncryption encryption); + MediaEncryption getMediaEncryption () const; + void setMediaEncryption (MediaEncryption encryption); - LimeState getLimeState () const; - void setLimeState (LimeState state); + bool mandatoryMediaEncryptionEnabled () const; + void enableMandatoryMediaEncryption(bool mandatory); - bool getContactsEnabled () const; - void setContactsEnabled (bool status); + LimeState getLimeState () const; + void setLimeState (LimeState state); - // Network. ------------------------------------------------------------------ + bool getContactsEnabled () const; + void setContactsEnabled (bool status); - bool getShowNetworkSettings () const; - void setShowNetworkSettings (bool status); + // Network. ------------------------------------------------------------------ - bool getUseSipInfoForDtmfs () const; - void setUseSipInfoForDtmfs (bool status); + bool getShowNetworkSettings () const; + void setShowNetworkSettings (bool status); - bool getUseRfc2833ForDtmfs () const; - void setUseRfc2833ForDtmfs (bool status); + bool getUseSipInfoForDtmfs () const; + void setUseSipInfoForDtmfs (bool status); - bool getIpv6Enabled () const; - void setIpv6Enabled (bool status); + bool getUseRfc2833ForDtmfs () const; + void setUseRfc2833ForDtmfs (bool status); - int getDownloadBandwidth () const; - void setDownloadBandwidth (int bandwidth); + bool getIpv6Enabled () const; + void setIpv6Enabled (bool status); - int getUploadBandwidth () const; - void setUploadBandwidth (int bandwidth); + int getDownloadBandwidth () const; + void setDownloadBandwidth (int bandwidth); - bool getAdaptiveRateControlEnabled () const; - void setAdaptiveRateControlEnabled (bool status); + int getUploadBandwidth () const; + void setUploadBandwidth (int bandwidth); - int getTcpPort () const; - void setTcpPort (int port); + bool getAdaptiveRateControlEnabled () const; + void setAdaptiveRateControlEnabled (bool status); - int getUdpPort () const; - void setUdpPort (int port); + int getTcpPort () const; + void setTcpPort (int port); - QList getAudioPortRange () const; - void setAudioPortRange (const QList &range); + int getUdpPort () const; + void setUdpPort (int port); - QList getVideoPortRange () const; - void setVideoPortRange (const QList &range); + QList getAudioPortRange () const; + void setAudioPortRange (const QList &range); - bool getIceEnabled () const; - void setIceEnabled (bool status); + QList getVideoPortRange () const; + void setVideoPortRange (const QList &range); - bool getTurnEnabled () const; - void setTurnEnabled (bool status); + bool getIceEnabled () const; + void setIceEnabled (bool status); - QString getStunServer () const; - void setStunServer (const QString &stunServer); + bool getTurnEnabled () const; + void setTurnEnabled (bool status); - QString getTurnUser () const; - void setTurnUser (const QString &user); + QString getStunServer () const; + void setStunServer (const QString &stunServer); - QString getTurnPassword () const; - void setTurnPassword (const QString &password); + QString getTurnUser () const; + void setTurnUser (const QString &user); - int getDscpSip () const; - void setDscpSip (int dscp); + QString getTurnPassword () const; + void setTurnPassword (const QString &password); - int getDscpAudio () const; - void setDscpAudio (int dscp); + int getDscpSip () const; + void setDscpSip (int dscp); - int getDscpVideo () const; - void setDscpVideo (int dscp); + int getDscpAudio () const; + void setDscpAudio (int dscp); - bool getRlsUriEnabled () const; - void setRlsUriEnabled (bool status); + int getDscpVideo () const; + void setDscpVideo (int dscp); - void configureRlsUri (); - void configureRlsUri (const std::shared_ptr &proxyConfig); + bool getRlsUriEnabled () const; + void setRlsUriEnabled (bool status); - // UI. ----------------------------------------------------------------------- + void configureRlsUri (); + void configureRlsUri (const std::shared_ptr &proxyConfig); - QString getSavedScreenshotsFolder () const; - void setSavedScreenshotsFolder (const QString &folder); + // UI. ----------------------------------------------------------------------- - QString getSavedCallsFolder () const; - void setSavedCallsFolder (const QString &folder); + QString getSavedScreenshotsFolder () const; + void setSavedScreenshotsFolder (const QString &folder); - QString getDownloadFolder () const; - void setDownloadFolder (const QString &folder); + QString getSavedCallsFolder () const; + void setSavedCallsFolder (const QString &folder); - QString getRemoteProvisioning () const; - void setRemoteProvisioning (const QString &remoteProvisioning); + QString getDownloadFolder () const; + void setDownloadFolder (const QString &folder); - bool getExitOnClose () const; - void setExitOnClose (bool value); + QString getRemoteProvisioning () const; + void setRemoteProvisioning (const QString &remoteProvisioning); - // --------------------------------------------------------------------------- + bool getExitOnClose () const; + void setExitOnClose (bool value); - QString getLogsFolder () const; - void setLogsFolder (const QString &folder); + // --------------------------------------------------------------------------- - QString getLogsUploadUrl () const; - void setLogsUploadUrl (const QString &url); + QString getLogsFolder () const; + void setLogsFolder (const QString &folder); - bool getLogsEnabled () const; - void setLogsEnabled (bool status); + QString getLogsUploadUrl () const; + void setLogsUploadUrl (const QString &url); - QString getLogsEmail () const; - void setLogsEmail (const QString &email); + bool getLogsEnabled () const; + void setLogsEnabled (bool status); - // --------------------------------------------------------------------------- + QString getLogsEmail () const; + void setLogsEmail (const QString &email); - static QString getLogsFolder (const std::shared_ptr &config); - static bool getLogsEnabled (const std::shared_ptr &config); + // --------------------------------------------------------------------------- - // --------------------------------------------------------------------------- + static QString getLogsFolder (const std::shared_ptr &config); + static bool getLogsEnabled (const std::shared_ptr &config); - bool getDeveloperSettingsEnabled () const; - void setDeveloperSettingsEnabled (bool status); + // --------------------------------------------------------------------------- - static const std::string UiSection; + bool getDeveloperSettingsEnabled () const; + void setDeveloperSettingsEnabled (bool status); - // =========================================================================== - // SIGNALS. - // =========================================================================== + static const std::string UiSection; + + // =========================================================================== + // SIGNALS. + // =========================================================================== signals: - // Assistant. ---------------------------------------------------------------- + // Assistant. ---------------------------------------------------------------- - void createAppSipAccountEnabledChanged (bool status); - void fetchRemoteConfigurationEnabledChanged (bool status); - void useAppSipAccountEnabledChanged (bool status); - void useOtherSipAccountEnabledChanged (bool status); + void createAppSipAccountEnabledChanged (bool status); + void fetchRemoteConfigurationEnabledChanged (bool status); + void useAppSipAccountEnabledChanged (bool status); + void useOtherSipAccountEnabledChanged (bool status); - void assistantSupportsPhoneNumbersChanged (bool status); + void assistantSupportsPhoneNumbersChanged (bool status); - // Audio. -------------------------------------------------------------------- + // Audio. -------------------------------------------------------------------- - void captureDeviceChanged (const QString &device); - void playbackDeviceChanged (const QString &device); - void ringerDeviceChanged (const QString &device); + void captureDeviceChanged (const QString &device); + void playbackDeviceChanged (const QString &device); + void ringerDeviceChanged (const QString &device); - void ringPathChanged (const QString &path); + void ringPathChanged (const QString &path); - void echoCancellationEnabledChanged (bool status); + void echoCancellationEnabledChanged (bool status); - void showAudioCodecsChanged (bool status); + void showAudioCodecsChanged (bool status); - // Video. -------------------------------------------------------------------- + // Video. -------------------------------------------------------------------- - void videoDeviceChanged (const QString &device); + void videoDeviceChanged (const QString &device); - void videoPresetChanged (const QString &preset); - void videoFramerateChanged (int framerate); + void videoPresetChanged (const QString &preset); + void videoFramerateChanged (int framerate); - void videoDefinitionChanged (const QVariantMap &definition); + void videoDefinitionChanged (const QVariantMap &definition); - void showVideoCodecsChanged (bool status); + void showVideoCodecsChanged (bool status); - // Chat & calls. ------------------------------------------------------------- + // Chat & calls. ------------------------------------------------------------- - void autoAnswerStatusChanged (bool status); - void autoAnswerVideoStatusChanged (bool status); - void autoAnswerDelayChanged (int delay); + void autoAnswerStatusChanged (bool status); + void autoAnswerVideoStatusChanged (bool status); + void autoAnswerDelayChanged (int delay); - void showTelKeypadAutomaticallyChanged (bool status); + void showTelKeypadAutomaticallyChanged (bool status); - void keepCallsWindowInBackgroundChanged (bool status); + void keepCallsWindowInBackgroundChanged (bool status); - void outgoingCallsEnabledChanged (bool status); + void outgoingCallsEnabledChanged (bool status); - void callRecorderEnabledChanged (bool status); - void automaticallyRecordCallsChanged (bool status); + void callRecorderEnabledChanged (bool status); + void automaticallyRecordCallsChanged (bool status); - void callPauseEnabledChanged (bool status); - void muteMicrophoneEnabledChanged (bool status); + void callPauseEnabledChanged (bool status); + void muteMicrophoneEnabledChanged (bool status); - void chatEnabledChanged (bool status); + void chatEnabledChanged (bool status); - void conferenceEnabledChanged (bool status); + void conferenceEnabledChanged (bool status); - void chatNotificationSoundEnabledChanged (bool status); - void chatNotificationSoundPathChanged (const QString &path); + void chatNotificationSoundEnabledChanged (bool status); + void chatNotificationSoundPathChanged (const QString &path); - void fileTransferUrlChanged (const QString &url); + void fileTransferUrlChanged (const QString &url); - void mediaEncryptionChanged (MediaEncryption encryption); - void limeStateChanged (LimeState state); + void mediaEncryptionChanged (MediaEncryption encryption); + void limeStateChanged (LimeState state); - void contactsEnabledChanged (bool status); + void contactsEnabledChanged (bool status); - // Network. ------------------------------------------------------------------ + // Network. ------------------------------------------------------------------ - void showNetworkSettingsChanged (bool status); + void showNetworkSettingsChanged (bool status); - void dtmfsProtocolChanged (); + void dtmfsProtocolChanged (); - void ipv6EnabledChanged (bool status); + void ipv6EnabledChanged (bool status); - void downloadBandWidthChanged (int bandwidth); - void uploadBandWidthChanged (int bandwidth); + void downloadBandWidthChanged (int bandwidth); + void uploadBandWidthChanged (int bandwidth); - bool adaptiveRateControlEnabledChanged (bool status); + bool adaptiveRateControlEnabledChanged (bool status); - void tcpPortChanged (int port); - void udpPortChanged (int port); + void tcpPortChanged (int port); + void udpPortChanged (int port); - void audioPortRangeChanged (int a, int b); - void videoPortRangeChanged (int a, int b); + void audioPortRangeChanged (int a, int b); + void videoPortRangeChanged (int a, int b); - void iceEnabledChanged (bool status); - void turnEnabledChanged (bool status); + void iceEnabledChanged (bool status); + void turnEnabledChanged (bool status); - void stunServerChanged (const QString &server); + void stunServerChanged (const QString &server); - void turnUserChanged (const QString &user); - void turnPasswordChanged (const QString &password); + void turnUserChanged (const QString &user); + void turnPasswordChanged (const QString &password); - void dscpSipChanged (int dscp); - void dscpAudioChanged (int dscp); - void dscpVideoChanged (int dscp); + void dscpSipChanged (int dscp); + void dscpAudioChanged (int dscp); + void dscpVideoChanged (int dscp); - void rlsUriEnabledChanged (bool status); + void rlsUriEnabledChanged (bool status); - // UI. ----------------------------------------------------------------------- + // UI. ----------------------------------------------------------------------- - void savedScreenshotsFolderChanged (const QString &folder); - void savedCallsFolderChanged (const QString &folder); - void downloadFolderChanged (const QString &folder); + void savedScreenshotsFolderChanged (const QString &folder); + void savedCallsFolderChanged (const QString &folder); + void downloadFolderChanged (const QString &folder); - void remoteProvisioningChanged (const QString &remoteProvisioning); - void remoteProvisioningNotChanged (const QString &remoteProvisioning); + void remoteProvisioningChanged (const QString &remoteProvisioning); + void remoteProvisioningNotChanged (const QString &remoteProvisioning); - void exitOnCloseChanged (bool value); + void exitOnCloseChanged (bool value); - // Advanced. ----------------------------------------------------------------- + // Advanced. ----------------------------------------------------------------- - void logsFolderChanged (const QString &folder); - void logsUploadUrlChanged (const QString &url); - void logsEnabledChanged (bool status); - void logsEmailChanged (const QString &email); + void logsFolderChanged (const QString &folder); + void logsUploadUrlChanged (const QString &url); + void logsEnabledChanged (bool status); + void logsEmailChanged (const QString &email); - bool developerSettingsEnabledChanged (bool status); + bool developerSettingsEnabledChanged (bool status); private: - std::shared_ptr mConfig; + std::shared_ptr mConfig; }; Q_DECLARE_METATYPE(std::shared_ptr); diff --git a/ui/views/App/Settings/SettingsCallsChat.qml b/ui/views/App/Settings/SettingsCallsChat.qml index 8305930f9..cfdc70550 100644 --- a/ui/views/App/Settings/SettingsCallsChat.qml +++ b/ui/views/App/Settings/SettingsCallsChat.qml @@ -55,6 +55,17 @@ TabContainer { } } } + FormGroup { + label: qsTr('encryptionMandatoryLabel') + + Switch { + id: encryptionMandatory + + checked: SettingsModel.mediaEncryptionMandatory + + onClicked: SettingsModel.mediaEncryptionMandatory = !checked + } + } } FormLine {