diff --git a/sflphone-client-kde/CMakeLists.txt b/sflphone-client-kde/CMakeLists.txt index 65b269cfd0d95d8477259389787519d1fa829449..c16efdcb6e584685facfd002d0a085e729deb982 100644 --- a/sflphone-client-kde/CMakeLists.txt +++ b/sflphone-client-kde/CMakeLists.txt @@ -8,7 +8,7 @@ SET(CMAKE_MODULE_PATH "${LOCAL_CMAKE_MODULE_PATH}") # --- custom targets: --- INCLUDE( ${LOCAL_CMAKE_MODULE_PATH}/TargetDistclean.cmake REQUIRED) -FIND_PACKAGE ( Kabc REQUIRED ) +#FIND_PACKAGE ( Kabc REQUIRED ) # FIND_PACKAGE ( PkgConfig REQUIRED ) FIND_PACKAGE ( KDE4 REQUIRED ) FIND_PACKAGE ( Qt4 REQUIRED ) diff --git a/sflphone-client-kde/src/conf/ConfigurationSkeleton.cpp b/sflphone-client-kde/src/conf/ConfigurationSkeleton.cpp index f2bcf04b8b75eb3dbe8eb9879187df0cf2c2807d..991571bbdf94a66c7a52495b38fe1a843bce0f47 100644 --- a/sflphone-client-kde/src/conf/ConfigurationSkeleton.cpp +++ b/sflphone-client-kde/src/conf/ConfigurationSkeleton.cpp @@ -61,7 +61,7 @@ void ConfigurationSkeleton::readConfig() //////////////////////// //Call history settings - setEnableHistory(configurationManager.getHistoryEnabled()); + //setEnableHistory(configurationManager.getHistoryEnabled()); //TODO uncomment setHistoryMax(configurationManager.getHistoryLimit()); //SIP port settings @@ -119,10 +119,10 @@ void ConfigurationSkeleton::readConfig() setAlsaPlugin(configurationManager.getCurrentAudioOutputPlugin()); bool ok; QStringList devices = configurationManager.getCurrentAudioDevicesIndex(); - qDebug() << "inputDevice = " << devices[1]; - int inputDevice = devices[1].toInt(& ok); - if(!ok) qDebug() << "inputDevice is not a number"; - setAlsaInputDevice(inputDevice); + //qDebug() << "inputDevice = " << devices[1]; //TODO uncomment + //int inputDevice = devices[1].toInt(& ok); //TODO uncomment + //if(!ok) qDebug() << "inputDevice is not a number"; //TODO uncomment + //setAlsaInputDevice(inputDevice); //TODO uncomment qDebug() << "outputDevice = " << devices[0]; int outputDevice = devices[0].toInt(& ok); @@ -191,7 +191,7 @@ void ConfigurationSkeleton::writeConfig() qDebug() << "Writing General settings"; //Call history settings - if(enableHistory() != configurationManager.getHistoryEnabled()) configurationManager.setHistoryEnabled(); + //TODO if(enableHistory() != configurationManager.getHistoryEnabled()) configurationManager.setHistoryEnabled(); configurationManager.setHistoryLimit(historyMax()); //SIP port settings configurationManager.setSipPort(sIPPort()); diff --git a/sflphone-client-kde/src/conf/dlgaccounts.cpp b/sflphone-client-kde/src/conf/dlgaccounts.cpp index 78ac4cf34fb28e9e3577f5106b58520c2739a61e..f5d15522b01ea9b6999b81ee76075787f657b03c 100644 --- a/sflphone-client-kde/src/conf/dlgaccounts.cpp +++ b/sflphone-client-kde/src/conf/dlgaccounts.cpp @@ -40,35 +40,66 @@ DlgAccounts::DlgAccounts(KConfigDialog *parent) accountList = new AccountList(false); loadAccountList(); accountListHasChanged = false; - toolButton_accountsApply->setEnabled(false); + //toolButton_accountsApply->setEnabled(false); - connect(edit1_alias, SIGNAL(textEdited(const QString &)), - this, SLOT(changedAccountList())); - connect(edit2_protocol, SIGNAL(activated(int)), - this, SLOT(changedAccountList())); - connect(edit3_server, SIGNAL(textEdited(const QString &)), - this, SLOT(changedAccountList())); - connect(edit4_user, SIGNAL(textEdited(const QString &)), - this, SLOT(changedAccountList())); - connect(edit5_password, SIGNAL(textEdited(const QString &)), - this, SLOT(changedAccountList())); - connect(edit6_mailbox, SIGNAL(textEdited(const QString &)), - this, SLOT(changedAccountList())); - connect(spinbox_regExpire, SIGNAL(editingFinished()), - this, SLOT(changedAccountList())); - connect(checkBox_conformRFC, SIGNAL(clicked(bool)), - this, SLOT(changedAccountList())); - connect(button_accountUp, SIGNAL(clicked()), - this, SLOT(changedAccountList())); - connect(button_accountDown, SIGNAL(clicked()), - this, SLOT(changedAccountList())); - connect(button_accountAdd, SIGNAL(clicked()), - this, SLOT(changedAccountList())); - connect(button_accountRemove, SIGNAL(clicked()), - this, SLOT(changedAccountList())); + connect(edit1_alias, SIGNAL(textEdited(const QString &)), + this, SLOT(changedAccountList())); + connect(edit2_protocol, SIGNAL(activated(int)), + this, SLOT(changedAccountList())); + connect(edit3_server, SIGNAL(textEdited(const QString &)), + this, SLOT(changedAccountList())); + connect(edit4_user, SIGNAL(textEdited(const QString &)), + this, SLOT(changedAccountList())); + connect(edit5_password, SIGNAL(textEdited(const QString &)), + this, SLOT(changedAccountList())); + connect(edit6_mailbox, SIGNAL(textEdited(const QString &)), + this, SLOT(changedAccountList())); + connect(spinbox_regExpire, SIGNAL(editingFinished()), + this, SLOT(changedAccountList())); + connect(checkBox_conformRFC, SIGNAL(clicked(bool)), + this, SLOT(changedAccountList())); + connect(button_accountUp, SIGNAL(clicked()), + this, SLOT(changedAccountList())); + connect(button_accountDown, SIGNAL(clicked()), + this, SLOT(changedAccountList())); + connect(button_accountAdd, SIGNAL(clicked()), + this, SLOT(changedAccountList())); + connect(button_accountRemove, SIGNAL(clicked()), + this, SLOT(changedAccountList())); + connect(edit_tls_private_key_password, SIGNAL(textEdited(const QString &)), + this, SLOT(changedAccountList())); + connect(spinbox_tls_listener, SIGNAL(editingFinished()), + this, SLOT(changedAccountList())); + connect(file_tls_authority, SIGNAL(textChanged(const QString &)), + this, SLOT(changedAccountList())); + connect(file_tls_endpoint, SIGNAL(textChanged(const QString &)), + this, SLOT(changedAccountList())); + connect(file_tls_private_key, SIGNAL(textChanged(const QString &)), + this, SLOT(changedAccountList())); + connect(combo_tls_method, SIGNAL(currentIndexChanged(int)), + this, SLOT(changedAccountList())); + connect(edit_tls_cipher, SIGNAL(textEdited(const QString &)), + this, SLOT(changedAccountList())); + connect(edit_tls_outgoing, SIGNAL(textEdited(const QString &)), + this, SLOT(changedAccountList())); + connect(spinbox_tls_timeout_sec, SIGNAL(editingFinished()), + this, SLOT(changedAccountList())); + connect(spinbox_tls_timeout_msec, SIGNAL(editingFinished()), + this, SLOT(changedAccountList())); + connect(check_tls_incoming, SIGNAL(clicked(bool)), + this, SLOT(changedAccountList())); + connect(check_tls_answer, SIGNAL(clicked(bool)), + this, SLOT(changedAccountList())); + connect(check_tls_requier_cert, SIGNAL(clicked(bool)), + this, SLOT(changedAccountList())); + connect(group_security_tls, SIGNAL(clicked(bool)), + this, SLOT(changedAccountList())); - connect(&configurationManager, SIGNAL(accountsChanged()), - this, SLOT(updateAccountStates())); + connect(&configurationManager, SIGNAL(accountsChanged()), + this, SLOT(updateAccountStates())); + + connect(edit_tls_private_key_password, SIGNAL(textEdited(const QString &)), + this, SLOT(changedAccountList())); connect(this, SIGNAL(updateButtons()), parent, SLOT(updateButtons())); @@ -156,6 +187,24 @@ void DlgAccounts::saveAccount(QListWidgetItem * item) account->setAccountDetail(ACCOUNT_RESOLVE_ONCE, checkBox_conformRFC->isChecked() ? "FALSE" : "TRUE"); account->setAccountDetail(ACCOUNT_EXPIRE, QString::number(spinbox_regExpire->value())); account->setAccountDetail(ACCOUNT_ENABLED, account->isChecked() ? ACCOUNT_ENABLED_TRUE : ACCOUNT_ENABLED_FALSE); + + //Security + account->setAccountDetail(TLS_PASSWORD,edit_tls_private_key_password->text()); + account->setAccountDetail(TLS_LISTENER_PORT,QString::number(spinbox_tls_listener->value())); + account->setAccountDetail(TLS_CA_LIST_FILE,file_tls_authority->text()); + account->setAccountDetail(TLS_CERTIFICATE_FILE,file_tls_endpoint->text()); + account->setAccountDetail(TLS_PRIVATE_KEY_FILE,file_tls_private_key->text()); + //qDebug() << "\n\n\n\nSET: " << combo_tls_method->currentText() << "\n\n\n"; + account->setAccountDetail(TLS_METHOD,combo_tls_method->currentText()); + account->setAccountDetail(TLS_CIPHERS,edit_tls_cipher->text()); + account->setAccountDetail(TLS_SERVER_NAME,edit_tls_outgoing->text()); + account->setAccountDetail(TLS_NEGOTIATION_TIMEOUT_SEC,QString::number(spinbox_tls_timeout_sec->value())); + account->setAccountDetail(TLS_NEGOTIATION_TIMEOUT_MSEC,QString::number(spinbox_tls_timeout_msec->value())); + account->setAccountDetail(TLS_VERIFY_SERVER,check_tls_incoming->isChecked()?"true":"false"); + account->setAccountDetail(TLS_VERIFY_CLIENT,check_tls_answer->isChecked()?"true":"false"); + account->setAccountDetail(TLS_REQUIRE_CLIENT_CERTIFICATE,check_tls_requier_cert->isChecked()?"true":"false"); + account->setAccountDetail(TLS_ENABLE,group_security_tls->isChecked()?"true":"false"); + account->setAccountDetail(TLS_METHOD, QString::number(combo_security_STRP->currentIndex())); } void DlgAccounts::loadAccount(QListWidgetItem * item) @@ -186,6 +235,27 @@ void DlgAccounts::loadAccount(QListWidgetItem * item) bool ok; int val = account->getAccountDetail(ACCOUNT_EXPIRE).toInt(&ok); spinbox_regExpire->setValue(ok ? val : ACCOUNT_EXPIRE_DEFAULT); + + //Security + edit_tls_private_key_password->setText( account->getAccountDetail(TLS_PASSWORD )); + spinbox_tls_listener->setValue( account->getAccountDetail(TLS_LISTENER_PORT ).toInt()); + file_tls_authority->setText( account->getAccountDetail(TLS_CA_LIST_FILE )); + file_tls_endpoint->setText( account->getAccountDetail(TLS_CERTIFICATE_FILE )); + file_tls_private_key->setText( account->getAccountDetail(TLS_PRIVATE_KEY_FILE )); + //qDebug() << "\n\n\n\nTHIS: " << account->getAccountDetail(TLS_METHOD ) << "\n\n\n"; + combo_tls_method->setCurrentIndex( combo_tls_method->findText(account->getAccountDetail(TLS_METHOD ))); + edit_tls_cipher->setText( account->getAccountDetail(TLS_CIPHERS )); + edit_tls_outgoing->setText( account->getAccountDetail(TLS_SERVER_NAME )); + spinbox_tls_timeout_sec->setValue( account->getAccountDetail(TLS_NEGOTIATION_TIMEOUT_SEC ).toInt()); + spinbox_tls_timeout_msec->setValue( account->getAccountDetail(TLS_NEGOTIATION_TIMEOUT_MSEC ).toInt()); + check_tls_incoming->setChecked( (account->getAccountDetail(TLS_VERIFY_SERVER ) == "true")?1:0); + check_tls_answer->setChecked( (account->getAccountDetail(TLS_VERIFY_CLIENT ) == "true")?1:0); + check_tls_requier_cert->setChecked( (account->getAccountDetail(TLS_REQUIRE_CLIENT_CERTIFICATE ) == "true")?1:0); + group_security_tls->setChecked( (account->getAccountDetail(TLS_ENABLE ) == "true")?1:0); + + combo_security_STRP->setCurrentIndex(account->getAccountDetail(TLS_METHOD ).toInt()); + + updateStatusLabel(account); frame2_editAccounts->setEnabled(true); } @@ -220,7 +290,7 @@ void DlgAccounts::changedAccountList() qDebug() << "changedAccountList"; accountListHasChanged = true; emit updateButtons(); - toolButton_accountsApply->setEnabled(true); + //toolButton_accountsApply->setEnabled(true); } @@ -288,12 +358,12 @@ void DlgAccounts::on_button_accountRemove_clicked() listWidget_accountList->setCurrentRow( (r >= listWidget_accountList->count()) ? r-1 : r ); } -void DlgAccounts::on_toolButton_accountsApply_clicked() -{ - qDebug() << "on_toolButton_accountsApply_clicked"; - updateSettings(); - updateWidgets(); -} +// void DlgAccounts::on_toolButton_accountsApply_clicked() //This button have been removed, coded kept for potential reversal +// { +// qDebug() << "on_toolButton_accountsApply_clicked"; +// updateSettings(); +// updateWidgets(); +// } void DlgAccounts::on_edit1_alias_textChanged(const QString & text) { @@ -365,7 +435,7 @@ void DlgAccounts::updateSettings() if(accountListHasChanged) { saveAccountList(); - toolButton_accountsApply->setEnabled(false); + //toolButton_accountsApply->setEnabled(false); accountListHasChanged = false; } } @@ -374,7 +444,7 @@ void DlgAccounts::updateWidgets() { qDebug() << "DlgAccounts::updateWidgets"; loadAccountList(); - toolButton_accountsApply->setEnabled(false); + //toolButton_accountsApply->setEnabled(false); accountListHasChanged = false; } diff --git a/sflphone-client-kde/src/conf/dlgaccounts.h b/sflphone-client-kde/src/conf/dlgaccounts.h index 32743689175be525b94fb91aab1bd98eb694a9db..2eff977fb2b3f5551f1e21e05c351dd2b496012d 100644 --- a/sflphone-client-kde/src/conf/dlgaccounts.h +++ b/sflphone-client-kde/src/conf/dlgaccounts.h @@ -78,7 +78,7 @@ private slots: void on_button_accountRemove_clicked(); void on_edit1_alias_textChanged(const QString & text); void on_listWidget_accountList_currentItemChanged ( QListWidgetItem * current, QListWidgetItem * previous ); - void on_toolButton_accountsApply_clicked(); + //void on_toolButton_accountsApply_clicked(); //Disabled for future removal void updateAccountStates(); void addAccountToAccountList(Account * account); void updateAccountListCommands(); diff --git a/sflphone-client-kde/src/conf/dlgaccountsbase.ui b/sflphone-client-kde/src/conf/dlgaccountsbase.ui index eafe181482ff650951b73e6f5f9ab1781cf4c1b8..a794240e5a4d840c83d7c9b795cfec75f651467a 100644 --- a/sflphone-client-kde/src/conf/dlgaccountsbase.ui +++ b/sflphone-client-kde/src/conf/dlgaccountsbase.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>603</width> - <height>455</height> + <width>748</width> + <height>447</height> </rect> </property> <property name="windowTitle"> @@ -29,8 +29,8 @@ <item> <widget class="QFrame" name="frame1_accountList"> <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>1</horstretch> + <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding"> + <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> @@ -46,6 +46,12 @@ <height>16777215</height> </size> </property> + <property name="sizeIncrement"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> <property name="frameShape"> <enum>QFrame::StyledPanel</enum> </property> @@ -212,16 +218,6 @@ </property> </spacer> </item> - <item> - <widget class="QToolButton" name="toolButton_accountsApply"> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="text"> - <string>Apply</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -232,7 +228,7 @@ <widget class="QTabWidget" name="frame2_editAccounts"> <property name="sizePolicy"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> - <horstretch>1</horstretch> + <horstretch>3</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> @@ -419,6 +415,445 @@ </item> </layout> </widget> + <widget class="QWidget" name="tab"> + <attribute name="title"> + <string>Credential</string> + </attribute> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0" rowspan="2" colspan="3"> + <widget class="QListWidget" name="list_credential"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + </widget> + </item> + <item row="2" column="0"> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>327</width> + <height>23</height> + </size> + </property> + </spacer> + </item> + <item row="3" column="0" colspan="3"> + <widget class="QGroupBox" name="group_credential"> + <property name="title"> + <string>Details</string> + </property> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="0"> + <widget class="QLabel" name="label_credential_realm"> + <property name="text"> + <string>Realm</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="labe_credential_auth"> + <property name="text"> + <string>Auth. name</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_credential_password"> + <property name="text"> + <string>Password</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="KLineEdit" name="edit_credential_realm"/> + </item> + <item row="1" column="1"> + <widget class="KLineEdit" name="edit_credential_auth"/> + </item> + <item row="2" column="1"> + <widget class="KLineEdit" name="edit_credential_password"/> + </item> + </layout> + </widget> + </item> + <item row="2" column="1"> + <widget class="QToolButton" name="button_add_credential"> + <property name="text"> + <string>Add</string> + </property> + </widget> + </item> + <item row="2" column="2"> + <widget class="QToolButton" name="button_remove_credential"> + <property name="text"> + <string>Remove</string> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="tab_2"> + <attribute name="title"> + <string>Security</string> + </attribute> + <layout class="QGridLayout" name="gridLayout_3"> + <item row="0" column="0"> + <widget class="QScrollArea" name="scrollArea"> + <property name="widgetResizable"> + <bool>true</bool> + </property> + <widget class="QWidget" name="scrollAreaWidgetContents"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>426</width> + <height>588</height> + </rect> + </property> + <layout class="QGridLayout" name="gridLayout_5"> + <item row="0" column="0"> + <widget class="QLabel" name="label_security_STRP"> + <property name="text"> + <string>STRP key exchange</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="combo_security_STRP"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <item> + <property name="text"> + <string>Disabled</string> + </property> + </item> + <item> + <property name="text"> + <string>ZRTP</string> + </property> + </item> + <item> + <property name="text"> + <string>SDES</string> + </property> + </item> + </widget> + </item> + <item row="0" column="2"> + <widget class="QToolButton" name="button_security_STRP"> + <property name="text"> + <string>Edit</string> + </property> + </widget> + </item> + <item row="1" column="0" colspan="3"> + <widget class="QLabel" name="label_tls_info"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>TLS transport can be used along with UDP for those calls that would require secure sip transactions (aka SIPS). You can configure a different TLS transport for each account. However each of them will run on a dedicated port, different one from each other.</string> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="2" column="0" colspan="3"> + <widget class="QGroupBox" name="group_security_tls"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Enable TLS</string> + </property> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="checked"> + <bool>false</bool> + </property> + <layout class="QGridLayout" name="gridLayout_4"> + <item row="0" column="0"> + <widget class="QLabel" name="label_tls_listener"> + <property name="text"> + <string>Global TLS listener*</string> + </property> + </widget> + </item> + <item row="0" column="1" colspan="3"> + <widget class="KIntSpinBox" name="spinbox_tls_listener"> + <property name="maximum"> + <number>65535</number> + </property> + </widget> + </item> + <item row="0" column="4" colspan="5"> + <spacer name="horizontalSpacer_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_tls_authority"> + <property name="text"> + <string>Authority certificate list</string> + </property> + </widget> + </item> + <item row="1" column="1" colspan="8"> + <widget class="KUrlRequester" name="file_tls_authority"/> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_tls_endpoint"> + <property name="text"> + <string>Public endpoint certificate</string> + </property> + </widget> + </item> + <item row="2" column="1" colspan="8"> + <widget class="KUrlRequester" name="file_tls_endpoint"/> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="label_tls_private_key"> + <property name="text"> + <string>Private key</string> + </property> + </widget> + </item> + <item row="3" column="1" colspan="8"> + <widget class="KUrlRequester" name="file_tls_private_key"/> + </item> + <item row="4" column="0"> + <widget class="QLabel" name="label_tls_private_key_password"> + <property name="text"> + <string>Private key password</string> + </property> + </widget> + </item> + <item row="4" column="1" colspan="8"> + <widget class="KLineEdit" name="edit_tls_private_key_password"/> + </item> + <item row="5" column="0"> + <widget class="QLabel" name="label_tls_method"> + <property name="text"> + <string>TLS protocol method</string> + </property> + </widget> + </item> + <item row="5" column="1" colspan="3"> + <widget class="QComboBox" name="combo_tls_method"> + <item> + <property name="text"> + <string>Default</string> + </property> + </item> + <item> + <property name="text"> + <string>TLSv1</string> + </property> + </item> + <item> + <property name="text"> + <string>SSLv2</string> + </property> + </item> + <item> + <property name="text"> + <string>SSLv3</string> + </property> + </item> + <item> + <property name="text"> + <string>SSLv23</string> + </property> + </item> + </widget> + </item> + <item row="5" column="4" colspan="5"> + <spacer name="horizontalSpacer_5"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="6" column="0"> + <widget class="QLabel" name="label_tls_cipher"> + <property name="text"> + <string>TLS cipher list</string> + </property> + </widget> + </item> + <item row="6" column="1" colspan="8"> + <widget class="KLineEdit" name="edit_tls_cipher"/> + </item> + <item row="7" column="0"> + <widget class="QLabel" name="label_tls_outgoing"> + <property name="text"> + <string>Outgoing TLS server name</string> + </property> + </widget> + </item> + <item row="7" column="1" colspan="8"> + <widget class="KLineEdit" name="edit_tls_outgoing"/> + </item> + <item row="8" column="0"> + <widget class="QLabel" name="label_tls_timeout"> + <property name="text"> + <string>Negotiation timeout (s:ms)</string> + </property> + </widget> + </item> + <item row="8" column="1"> + <widget class="KIntSpinBox" name="spinbox_tls_timeout_sec"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>50</width> + <height>0</height> + </size> + </property> + </widget> + </item> + <item row="9" column="0" colspan="5"> + <widget class="QCheckBox" name="check_tls_incoming"> + <property name="text"> + <string>Verify incoming certificates (server side)</string> + </property> + </widget> + </item> + <item row="10" column="0" colspan="5"> + <widget class="QCheckBox" name="check_tls_answer"> + <property name="text"> + <string>Verify answer certificates (client side)</string> + </property> + </widget> + </item> + <item row="11" column="0" colspan="5"> + <widget class="QCheckBox" name="check_tls_requier_cert"> + <property name="text"> + <string>Require a certificate for incoming TLS connections</string> + </property> + </widget> + </item> + <item row="12" column="0"> + <widget class="QLabel" name="label_tls_details"> + <property name="text"> + <string>*Apply to all accounts</string> + </property> + </widget> + </item> + <item row="13" column="0"> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + <item row="8" column="4" colspan="5"> + <spacer name="horizontalSpacer_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="8" column="3"> + <widget class="KIntSpinBox" name="spinbox_tls_timeout_msec"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>50</width> + <height>0</height> + </size> + </property> + </widget> + </item> + <item row="8" column="2"> + <widget class="QLabel" name="label_timeout2"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>10</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>10</width> + <height>16777215</height> + </size> + </property> + <property name="text"> + <string><center>:</center></string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </widget> + </item> + </layout> + </widget> </widget> </item> </layout> @@ -484,6 +919,11 @@ <extends>QSpinBox</extends> <header>knuminput.h</header> </customwidget> + <customwidget> + <class>KUrlRequester</class> + <extends>QFrame</extends> + <header>kurlrequester.h</header> + </customwidget> <customwidget> <class>KLineEdit</class> <extends>QLineEdit</extends> diff --git a/sflphone-client-kde/src/sflphone_const.h b/sflphone-client-kde/src/sflphone_const.h index 356a2e5755c5300b06bc4707172f84fe09daa9b8..c26ce8ed0341d863b7a4a24707f9f138b504425e 100644 --- a/sflphone-client-kde/src/sflphone_const.h +++ b/sflphone-client-kde/src/sflphone_const.h @@ -205,6 +205,35 @@ #define CONST_ALSA 0 #define CONST_PULSEAUDIO 1 - +/** TLS */ +#define TLS_LISTENER_PORT "TLS.listenerPort" +#define TLS_ENABLE "TLS.enable" +#define TLS_PORT "TLS.port" +#define TLS_CA_LIST_FILE "TLS.certificateListFile" +#define TLS_CERTIFICATE_FILE "TLS.certificateFile" +#define TLS_PRIVATE_KEY_FILE "TLS.privateKeyFile" +#define TLS_PASSWORD "TLS.password" +#define TLS_METHOD "TLS.method" +#define TLS_CIPHERS "TLS.ciphers" +#define TLS_SERVER_NAME "TLS.serverName" +#define TLS_VERIFY_SERVER "TLS.verifyServer" +#define TLS_VERIFY_CLIENT "TLS.verifyClient" +#define TLS_REQUIRE_CLIENT_CERTIFICATE "TLS.requireClientCertificate" +#define TLS_NEGOTIATION_TIMEOUT_SEC "TLS.negotiationTimeoutSec" +#define TLS_NEGOTIATION_TIMEOUT_MSEC "TLS.negotiationTimemoutMsec" + +#define ACCOUNT_PASSWORD "password" +#define ACCOUNT_AUTHENTICATION_USERNAME "authenticationUsername" +#define ACCOUNT_REALM "realm" +#define ACCOUNT_KEY_EXCHANGE "SRTP.keyExchange" +#define ACCOUNT_SRTP_ENABLED "SRTP.enable" +#define ACCOUNT_SRTP_RTP_FALLBACK "SRTP.rtpFallback" +#define ACCOUNT_ZRTP_DISPLAY_SAS "ZRTP.displaySAS" +#define ACCOUNT_ZRTP_NOT_SUPP_WARNING "ZRTP.notSuppWarning" +#define ACCOUNT_ZRTP_HELLO_HASH "ZRTP.helloHashEnable" +#define ACCOUNT_DISPLAY_SAS_ONCE "ZRTP.displaySasOnce" +#define KEY_EXCHANGE_NONE "0" +#define ZRTP "1" +#define SDES "2" #endif