Commit 6d7ceb67 authored by Adrian Georgescu's avatar Adrian Georgescu

Added NAT traversal section in Preferences and STUN servers settings

parent 27df9531
...@@ -18,7 +18,7 @@ from zope.interface import implementer ...@@ -18,7 +18,7 @@ from zope.interface import implementer
from sipsimple.account import AccountManager, BonjourAccount from sipsimple.account import AccountManager, BonjourAccount
from sipsimple.application import SIPApplication from sipsimple.application import SIPApplication
from sipsimple.configuration import DefaultValue from sipsimple.configuration import DefaultValue
from sipsimple.configuration.datatypes import H264Profile, MSRPRelayAddress, Path, PortRange, SIPProxyAddress from sipsimple.configuration.datatypes import H264Profile, MSRPRelayAddress, Path, PortRange, SIPProxyAddress, STUNServerAddress, STUNServerAddressList
from sipsimple.configuration.settings import SIPSimpleSettings from sipsimple.configuration.settings import SIPSimpleSettings
from sipsimple.threading import run_in_thread from sipsimple.threading import run_in_thread
...@@ -234,6 +234,7 @@ class PreferencesWindow(base_class, ui_class, metaclass=QSingleton): ...@@ -234,6 +234,7 @@ class PreferencesWindow(base_class, ui_class, metaclass=QSingleton):
self.auth_username_editor.editingFinished.connect(self._SH_AuthUsernameEditorEditingFinished) self.auth_username_editor.editingFinished.connect(self._SH_AuthUsernameEditorEditingFinished)
self.always_use_my_msrp_relay_button.clicked.connect(self._SH_AlwaysUseMyMSRPRelayButtonClicked) self.always_use_my_msrp_relay_button.clicked.connect(self._SH_AlwaysUseMyMSRPRelayButtonClicked)
self.msrp_relay_host_editor.editingFinished.connect(self._SH_MSRPRelayHostEditorEditingFinished) self.msrp_relay_host_editor.editingFinished.connect(self._SH_MSRPRelayHostEditorEditingFinished)
self.stun_server_list_editor.editingFinished.connect(self._SH_StunServerListEditorEditingFinished)
self.msrp_relay_port.valueChanged[int].connect(self._SH_MSRPRelayPortValueChanged) self.msrp_relay_port.valueChanged[int].connect(self._SH_MSRPRelayPortValueChanged)
self.msrp_relay_transport_button.activated[str].connect(self._SH_MSRPRelayTransportButtonActivated) self.msrp_relay_transport_button.activated[str].connect(self._SH_MSRPRelayTransportButtonActivated)
self.voicemail_uri_editor.editingFinished.connect(self._SH_VoicemailURIEditorEditingFinished) self.voicemail_uri_editor.editingFinished.connect(self._SH_VoicemailURIEditorEditingFinished)
...@@ -241,7 +242,7 @@ class PreferencesWindow(base_class, ui_class, metaclass=QSingleton): ...@@ -241,7 +242,7 @@ class PreferencesWindow(base_class, ui_class, metaclass=QSingleton):
self.server_tools_url_editor.editingFinished.connect(self._SH_ServerToolsURLEditorEditingFinished) self.server_tools_url_editor.editingFinished.connect(self._SH_ServerToolsURLEditorEditingFinished)
self.conference_server_editor.editingFinished.connect(self._SH_ConferenceServerEditorEditingFinished) self.conference_server_editor.editingFinished.connect(self._SH_ConferenceServerEditorEditingFinished)
# Account network settings # Account NAT traversal settings
self.use_ice_button.clicked.connect(self._SH_UseICEButtonClicked) self.use_ice_button.clicked.connect(self._SH_UseICEButtonClicked)
self.msrp_transport_button.activated[str].connect(self._SH_MSRPTransportButtonActivated) self.msrp_transport_button.activated[str].connect(self._SH_MSRPTransportButtonActivated)
...@@ -820,6 +821,12 @@ class PreferencesWindow(base_class, ui_class, metaclass=QSingleton): ...@@ -820,6 +821,12 @@ class PreferencesWindow(base_class, ui_class, metaclass=QSingleton):
self.always_use_my_proxy_button.setChecked(account.sip.always_use_my_proxy) self.always_use_my_proxy_button.setChecked(account.sip.always_use_my_proxy)
outbound_proxy = account.sip.outbound_proxy or UnspecifiedOutboundProxy outbound_proxy = account.sip.outbound_proxy or UnspecifiedOutboundProxy
self.outbound_proxy_host_editor.setText(outbound_proxy.host) self.outbound_proxy_host_editor.setText(outbound_proxy.host)
if account.nat_traversal.stun_server_list:
stun_server_list = ", ".join('%s:%s' % (s.host, s.port) for s in account.nat_traversal.stun_server_list)
else:
stun_server_list = ""
self.stun_server_list_editor.setText(stun_server_list)
with blocked_qt_signals(self.outbound_proxy_port): with blocked_qt_signals(self.outbound_proxy_port):
self.outbound_proxy_port.setValue(outbound_proxy.port) self.outbound_proxy_port.setValue(outbound_proxy.port)
self.outbound_proxy_transport_button.setCurrentIndex(self.outbound_proxy_transport_button.findText(outbound_proxy.transport.upper())) self.outbound_proxy_transport_button.setCurrentIndex(self.outbound_proxy_transport_button.findText(outbound_proxy.transport.upper()))
...@@ -1026,7 +1033,7 @@ class PreferencesWindow(base_class, ui_class, metaclass=QSingleton): ...@@ -1026,7 +1033,7 @@ class PreferencesWindow(base_class, ui_class, metaclass=QSingleton):
if tab_widget.indexOf(self.server_settings_tab) == -1: if tab_widget.indexOf(self.server_settings_tab) == -1:
tab_widget.addTab(self.server_settings_tab, "Server Settings") tab_widget.addTab(self.server_settings_tab, "Server Settings")
if tab_widget.indexOf(self.network_tab) == -1: if tab_widget.indexOf(self.network_tab) == -1:
tab_widget.addTab(self.network_tab, "Network") tab_widget.addTab(self.network_tab, "NAT Traversal")
if tab_widget.indexOf(self.advanced_tab) == -1: if tab_widget.indexOf(self.advanced_tab) == -1:
tab_widget.addTab(self.advanced_tab, "Advanced") tab_widget.addTab(self.advanced_tab, "Advanced")
self.password_label.show() self.password_label.show()
...@@ -1233,6 +1240,37 @@ class PreferencesWindow(base_class, ui_class, metaclass=QSingleton): ...@@ -1233,6 +1240,37 @@ class PreferencesWindow(base_class, ui_class, metaclass=QSingleton):
account.nat_traversal.msrp_relay = msrp_relay account.nat_traversal.msrp_relay = msrp_relay
account.save() account.save()
def _SH_StunServerListEditorEditingFinished(self):
account = self.selected_account
stun_server_list = self.stun_server_list_editor.text().strip().lower() or ''
new_stun_server_list = []
if stun_server_list:
for server in stun_server_list.split(","):
try:
(host, port) = server.strip().split(':')
except ValueError:
host = server
port = STUNServerAddress.default_port
else:
try:
int(port)
except (TypeError, ValueError) as e:
port = STUNServerAddress.default_port
try:
new_stun_server_list.append(STUNServerAddress(host, port))
except ValueError as e:
continue
new_stun_server_list = new_stun_server_list or None
if account.nat_traversal.stun_server_list != new_stun_server_list:
try:
account.nat_traversal.stun_server_list = new_stun_server_list
account.save()
except ValueError as e:
pass
def _SH_MSRPRelayPortValueChanged(self, value): def _SH_MSRPRelayPortValueChanged(self, value):
account = self.selected_account account = self.selected_account
msrp_relay = self.account_msrp_relay msrp_relay = self.account_msrp_relay
...@@ -1240,6 +1278,7 @@ class PreferencesWindow(base_class, ui_class, metaclass=QSingleton): ...@@ -1240,6 +1278,7 @@ class PreferencesWindow(base_class, ui_class, metaclass=QSingleton):
account.nat_traversal.msrp_relay = msrp_relay account.nat_traversal.msrp_relay = msrp_relay
account.save() account.save()
def _SH_MSRPRelayTransportButtonActivated(self, text): def _SH_MSRPRelayTransportButtonActivated(self, text):
account = self.selected_account account = self.selected_account
msrp_relay = self.account_msrp_relay msrp_relay = self.account_msrp_relay
......
...@@ -10,6 +10,12 @@ ...@@ -10,6 +10,12 @@
<height>630</height> <height>630</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>890</width> <width>890</width>
...@@ -72,7 +78,7 @@ ...@@ -72,7 +78,7 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0" colspan="2"> <item row="1" column="0" colspan="4">
<widget class="QWidget" name="account_buttons_widget" native="true"> <widget class="QWidget" name="account_buttons_widget" native="true">
<layout class="QHBoxLayout" name="account_buttons_layout"> <layout class="QHBoxLayout" name="account_buttons_layout">
<property name="spacing"> <property name="spacing">
...@@ -155,10 +161,10 @@ ...@@ -155,10 +161,10 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="0" column="3">
<widget class="QTabWidget" name="account_tab_widget"> <widget class="QTabWidget" name="account_tab_widget">
<property name="currentIndex"> <property name="currentIndex">
<number>1</number> <number>3</number>
</property> </property>
<widget class="QWidget" name="account_information_tab"> <widget class="QWidget" name="account_information_tab">
<attribute name="title"> <attribute name="title">
...@@ -239,7 +245,7 @@ ...@@ -239,7 +245,7 @@
<item row="0" column="0" colspan="2"> <item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="account_enabled_button"> <widget class="QCheckBox" name="account_enabled_button">
<property name="text"> <property name="text">
<string>Use account</string> <string>Enable account</string>
</property> </property>
</widget> </widget>
</item> </item>
...@@ -258,11 +264,11 @@ ...@@ -258,11 +264,11 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="media_tab"> <widget class="QWidget" name="server_settings_tab">
<attribute name="title"> <attribute name="title">
<string>Media</string> <string>Server Settings</string>
</attribute> </attribute>
<layout class="QGridLayout" name="media_tab_layout"> <layout class="QGridLayout" name="server_settings_tab_layout">
<property name="leftMargin"> <property name="leftMargin">
<number>10</number> <number>10</number>
</property> </property>
...@@ -278,127 +284,195 @@ ...@@ -278,127 +284,195 @@
<property name="spacing"> <property name="spacing">
<number>5</number> <number>5</number>
</property> </property>
<item row="5" column="0" colspan="2"> <item row="0" column="0" colspan="6">
<widget class="QWidget" name="rtp_options_widget" native="true"> <widget class="QLabel" name="sip_proxy_label">
<layout class="QGridLayout" name="rtp_options_widget_layout"> <property name="font">
<property name="leftMargin"> <font>
<number>0</number> <weight>75</weight>
<bold>true</bold>
</font>
</property> </property>
<property name="topMargin"> <property name="text">
<number>0</number> <string>SIP Proxy server</string>
</property> </property>
<property name="rightMargin"> </widget>
<number>0</number> </item>
<item row="1" column="0" colspan="6">
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property> </property>
<property name="bottomMargin"> </widget>
<number>0</number> </item>
<item row="2" column="1" colspan="5">
<widget class="QCheckBox" name="always_use_my_proxy_button">
<property name="text">
<string>Always use the proxy server for outgoing sessions</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="outbound_proxy_label">
<property name="minimumSize">
<size>
<width>105</width>
<height>0</height>
</size>
</property> </property>
<item row="2" column="1" colspan="2">
<widget class="QCheckBox" name="inband_dtmf_button">
<property name="text"> <property name="text">
<string>Send inband DTMF</string> <string>Outbound Proxy:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="1"> <item row="3" column="1">
<widget class="QComboBox" name="key_negotiation_button"> <widget class="QLineEdit" name="outbound_proxy_host_editor"/>
<item> </item>
<item row="3" column="2">
<widget class="QLabel" name="outbound_proxy_port_label">
<property name="text"> <property name="text">
<string>Opportunistic</string> <string>Port:</string>
</property>
<property name="indent">
<number>3</number>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QSpinBox" name="outbound_proxy_port">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>5060</number>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QLabel" name="outbound_proxy_transport_label">
<property name="text">
<string>Transport:</string>
</property>
<property name="indent">
<number>3</number>
</property> </property>
</widget>
</item> </item>
<item row="3" column="5">
<widget class="QComboBox" name="outbound_proxy_transport_button">
<item> <item>
<property name="text"> <property name="text">
<string>ZRTP</string> <string>UDP</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>SDES optional</string> <string>TCP</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>SDES mandatory</string> <string>TLS</string>
</property> </property>
</item> </item>
</widget> </widget>
</item> </item>
<item row="5" column="0"> <item row="4" column="0">
<widget class="QLabel" name="key_negotiation_label"> <widget class="QLabel" name="auth_username_label">
<property name="text"> <property name="text">
<string>Encryption:</string> <string>Auth Username:</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0" colspan="3"> <item row="4" column="1">
<widget class="QLabel" name="rtp_options_label"> <widget class="QLineEdit" name="auth_username_editor"/>
</item>
<item row="5" column="0" colspan="6">
<widget class="QLabel" name="voicemail_label">
<property name="font"> <property name="font">
<font> <font>
<weight>75</weight> <weight>75</weight>
<bold>true</bold> <bold>true</bold>
</font> </font>
</property> </property>
<property name="styleSheet">
<string notr="true">margin-top: 20px;</string>
</property>
<property name="text"> <property name="text">
<string>Options</string> <string>Other Servers</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0" colspan="3"> <item row="6" column="0" colspan="6">
<widget class="Line" name="line_8"> <widget class="Line" name="line_5">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="2"> <item row="7" column="0">
<spacer name="key_negotiation_spacer"> <widget class="QLabel" name="voicemail_uri_label">
<property name="orientation"> <property name="text">
<enum>Qt::Horizontal</enum> <string>Voicemail URI:</string>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="alignment">
<size> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<width>40</width>
<height>20</height>
</size>
</property> </property>
</spacer> </widget>
</item> </item>
<item row="3" column="1" colspan="2"> <item row="7" column="1" colspan="5">
<widget class="QCheckBox" name="rtp_encryption_button"> <widget class="LineEdit" name="voicemail_uri_editor">
<property name="text"> <property name="inactiveText" stdset="0">
<string>Encrypt audio and video</string> <string>Discovered by subscribing to myself</string>
</property>
<property name="widgetSpacing" stdset="0">
<number>0</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="1"> <item row="8" column="0">
<widget class="QCheckBox" name="account_auto_answer"> <widget class="QLabel" name="xcap_root_label">
<property name="text"> <property name="text">
<string>Auto answer from allowed contacts</string> <string>XCAP Root URL:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
</layout> <item row="8" column="1" colspan="5">
<widget class="LineEdit" name="xcap_root_editor">
<property name="inactiveText" stdset="0">
<string>Taken from the DNS TXT record for xcap.domain</string>
</property>
<property name="widgetSpacing" stdset="0">
<number>0</number>
</property>
</widget> </widget>
</item> </item>
<item row="0" column="0"> <item row="9" column="1" colspan="5">
<widget class="QLabel" name="account_audio_codecs_label"> <widget class="QLineEdit" name="server_tools_url_editor"/>
<property name="font"> </item>
<font> <item row="9" column="0">
<weight>75</weight> <widget class="QLabel" name="server_tools_url_label">
<bold>true</bold>
</font>
</property>
<property name="text"> <property name="text">
<string>Audio Codecs</string> <string>Server Setting URL:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="0" colspan="2"> <item row="11" column="0" colspan="6">
<spacer name="media_spacer"> <spacer name="server_settings_spacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
...@@ -410,436 +484,446 @@ ...@@ -410,436 +484,446 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="0" column="1"> <item row="10" column="0">
<widget class="QLabel" name="account_video_codecs_label"> <widget class="QLabel" name="conference_server_label">
<property name="text">
<string>Conference Server:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="10" column="1" colspan="5">
<widget class="LineEdit" name="conference_server_editor">
<property name="widgetSpacing" stdset="0">
<number>0</number>
</property>
<property name="inactiveText" stdset="0">
<string>conference.sip2sip.info</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="network_tab">
<attribute name="title">
<string>NAT Traversal</string>
</attribute>
<widget class="QWidget" name="widget" native="true">
<property name="geometry">
<rect>
<x>0</x>
<y>170</y>
<width>621</width>
<height>201</height>
</rect>
</property>
<widget class="Line" name="rtp_line">
<property name="geometry">
<rect>
<x>9</x>
<y>45</y>
<width>611</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QLabel" name="rtp_label">
<property name="geometry">
<rect>
<x>6</x>
<y>10</y>
<width>171</width>
<height>41</height>
</rect>
</property>
<property name="font"> <property name="font">
<font> <font>
<weight>75</weight> <weight>75</weight>
<bold>true</bold> <bold>true</bold>
</font> </font>
</property> </property>
<property name="styleSheet">
<string notr="true">margin-top: 20px;</string>
</property>
<property name="text"> <property name="text">
<string>Video Codecs</string> <string>Audio and Video</string>
</property> </property>
</widget> </widget>
</item> <widget class="QCheckBox" name="use_ice_button">
<item row="1" column="1"> <property name="geometry">
<widget class="Line" name="line_7"> <rect>
<property name="orientation"> <x>108</x>
<enum>Qt::Horizontal</enum> <y>60</y>
<width>199</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Enable ICE</string>
</property> </property>
</widget> </widget>
</item> <widget class="QLineEdit" name="stun_server_list_editor">
<item row="2" column="0"> <property name="geometry">
<widget class="QListWidget" name="account_audio_codecs_list"> <rect>
<x>110</x>
<y>90</y>
<width>490</width>
<height>27</height>
</rect>
</property>
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred"> <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="horizontalScrollBarPolicy"> <property name="toolTip">
<enum>Qt::ScrollBarAlwaysOff</enum> <string>server1.com:3566, server2.com:3456</string>
</property>
<property name="dragEnabled">
<bool>true</bool>
</property> </property>
<property name="dragDropMode"> </widget>
<enum>QAbstractItemView::InternalMove</enum> <widget class="QLabel" name="stun_label">
<property name="geometry">
<rect>
<x>6</x>
<y>88</y>
<width>96</width>
<height>27</height>
</rect>
</property> </property>
<item>
<property name="text"> <property name="text">
<string>opus</string> <string>STUN servers:</string>
</property> </property>
<property name="checkState"> <property name="alignment">
<enum>Checked</enum> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</item> </widget>
<item> </widget>
<property name="text"> <widget class="QWidget" name="widget_2" native="true">
<string>speex</string> <property name="geometry">
<rect>
<x>0</x>
<y>-20</y>
<width>631</width>
<height>201</height>
</rect>
</property> </property>
<property name="checkState"> <widget class="Line" name="msrp_line">
<enum>Checked</enum> <property name="geometry">
<rect>
<x>9</x>
<y>43</y>
<width>613</width>
<height>16</height>
</rect>
</property> </property>
</item> <property name="orientation">
<item> <enum>Qt::Horizontal</enum>
<property name="text">
<string>G722</string>
</property> </property>
<property name="checkState"> </widget>
<enum>Checked</enum> <widget class="QLabel" name="msrp_label">
<property name="geometry">
<rect>
<x>6</x>
<y>10</y>
<width>181</width>
<height>37</height>
</rect>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">margin-top: 20px;</string>
</property> </property>
</item>
<item>
<property name="text"> <property name="text">
<string>GSM</string> <string>Chat and File transfers</string>
</property> </property>
<property name="checkState"> </widget>
<enum>Unchecked</enum> <widget class="LineEdit" name="msrp_relay_host_editor">
<property name="geometry">
<rect>
<x>110</x>
<y>89</y>
<width>490</width>
<height>27</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
</item>
<item>
<property name="text"> <property name="text">
<string>iLBC</string> <string/>
</property> </property>
<property name="checkState"> <property name="inactiveText" stdset="0">
<enum>Unchecked</enum> <string>Relay address is learned from DNS</string>
</property>
<property name="widgetSpacing" stdset="0">
<number>0</number>
</property>
</widget>
<widget class="QLabel" name="msrp_relay_label">
<property name="geometry">
<rect>
<x>9</x>
<y>92</y>
<width>95</width>
<height>17</height>
</rect>
</property> </property>
</item>
<item>
<property name="text"> <property name="text">
<string>PCMU</string> <string>MSRP Relay:</string>
</property> </property>
<property name="checkState"> <property name="alignment">
<enum>Checked</enum> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QLabel" name="msrp_relay_transport_label">
<property name="geometry">
<rect>
<x>30</x>
<y>160</y>
<width>73</width>
<height>17</height>
</rect>
</property> </property>
</item>
<item>
<property name="text"> <property name="text">
<string>PCMA</string> <string>Transport:</string>
</property> </property>
<property name="checkState"> <property name="indent">
<enum>Checked</enum> <number>3</number>
</property> </property>
</item>
</widget> </widget>
</item> <widget class="QSpinBox" name="msrp_relay_port">
<item row="3" column="0" colspan="2"> <property name="geometry">
<widget class="QWidget" name="reset_buttons_widget" native="true"> <rect>
<layout class="QHBoxLayout" name="reset_buttons_widget_layout"> <x>110</x>
<property name="leftMargin"> <y>122</y>
<number>0</number> <width>74</width>
<height>27</height>
</rect>
</property> </property>
<property name="topMargin"> <property name="specialValueText">
<number>0</number> <string>2855</string>
</property> </property>
<property name="rightMargin"> <property name="minimum">
<number>0</number> <number>0</number>
</property> </property>
<property name="bottomMargin"> <property name="maximum">
<number>0</number> <number>65535</number>
</property> </property>
<item> <property name="value">
<widget class="QPushButton" name="reset_account_audio_codecs_button"> <number>0</number>
<property name="text">
<string>Reset</string>
</property> </property>
</widget> </widget>
</item> <widget class="QComboBox" name="msrp_relay_transport_button">
<item> <property name="geometry">
<widget class="QLabel" name="codecs_note_label"> <rect>
<x>110</x>
<y>155</y>
<width>55</width>
<height>27</height>
</rect>
</property>
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<item>
<property name="text"> <property name="text">
<string>Drag codecs to change their order</string> <string>TLS</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property> </property>
</widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="reset_account_video_codecs_button">
<property name="text"> <property name="text">
<string>Reset</string> <string>TCP</string>
</property> </property>
</widget>
</item> </item>
</layout>
</widget> </widget>
</item> <widget class="QCheckBox" name="always_use_my_msrp_relay_button">
<item row="2" column="1"> <property name="geometry">
<widget class="QListWidget" name="account_video_codecs_list"> <rect>
<property name="sizePolicy"> <x>108</x>
<sizepolicy hsizetype="Expanding" vsizetype="Preferred"> <y>61</y>
<horstretch>0</horstretch> <width>317</width>
<verstretch>0</verstretch> <height>22</height>
</sizepolicy> </rect>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="dragEnabled">
<bool>true</bool>
</property>
<property name="dragDropMode">
<enum>QAbstractItemView::InternalMove</enum>
</property> </property>
<item> <property name="toolTip">
<property name="text"> <string>Normally the realy is used only for incoming sessions</string>
<string>H264</string>
</property> </property>
<property name="checkState"> <property name="toolTipDuration">
<enum>Checked</enum> <number>5</number>
</property> </property>
</item>
<item>
<property name="text"> <property name="text">
<string>VP8</string> <string>Always use the relay for outgoing sessions</string>
</property> </property>
<property name="checkState"> </widget>
<enum>Checked</enum> <widget class="QLabel" name="msrp_relay_port_label">
<property name="geometry">
<rect>
<x>66</x>
<y>127</y>
<width>37</width>
<height>17</height>
</rect>
</property> </property>
</item>
<item>
<property name="text"> <property name="text">
<string>VP9</string> <string>Port:</string>
</property> </property>
<property name="checkState"> <property name="indent">
<enum>Checked</enum> <number>3</number>
</property> </property>
</item>
</widget> </widget>
</item>
<item row="4" column="0" colspan="2">
<spacer name="media_spacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>25</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="Line" name="line_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget> </widget>
</item>
</layout>
</widget> </widget>
<widget class="QWidget" name="server_settings_tab"> <widget class="QWidget" name="media_tab">
<attribute name="title"> <attribute name="title">
<string>Server Settings</string> <string>Media</string>
</attribute> </attribute>
<layout class="QGridLayout" name="server_settings_tab_layout"> <widget class="QWidget" name="rtp_options_widget" native="true">
<property name="geometry">
<rect>
<x>10</x>
<y>290</y>
<width>571</width>
<height>181</height>
</rect>
</property>
<layout class="QGridLayout" name="rtp_options_widget_layout">
<property name="leftMargin"> <property name="leftMargin">
<number>10</number> <number>0</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>10</number> <number>0</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>10</number> <number>0</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>10</number> <number>0</number>
</property>
<property name="spacing">
<number>5</number>
</property>
<item row="0" column="0" colspan="6">
<widget class="QLabel" name="sip_proxy_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property> </property>
<item row="4" column="1" colspan="2">
<widget class="QCheckBox" name="inband_dtmf_button">
<property name="text"> <property name="text">
<string>SIP Proxy</string> <string>Send inband DTMF</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="6">
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1" colspan="5"> <item row="7" column="1">
<widget class="QCheckBox" name="always_use_my_proxy_button"> <widget class="QComboBox" name="key_negotiation_button">
<property name="text"> <property name="sizePolicy">
<string>Always use my proxy for outgoing sessions</string> <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
</widget> <property name="sizeIncrement">
</item>
<item row="3" column="0">
<widget class="QLabel" name="outbound_proxy_label">
<property name="minimumSize">
<size> <size>
<width>105</width> <width>0</width>
<height>0</height> <height>20</height>
</size> </size>
</property> </property>
<property name="text"> <property name="font">
<string>Outbound Proxy:</string> <font>
</property> <pointsize>11</pointsize>
<property name="alignment"> </font>
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="outbound_proxy_host_editor"/>
</item>
<item row="3" column="2">
<widget class="QLabel" name="outbound_proxy_port_label">
<property name="text">
<string>Port:</string>
</property>
<property name="indent">
<number>3</number>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QSpinBox" name="outbound_proxy_port">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>5060</number>
</property> </property>
</widget> <item>
</item>
<item row="3" column="4">
<widget class="QLabel" name="outbound_proxy_transport_label">
<property name="text"> <property name="text">
<string>Transport:</string> <string>Opportunistic</string>
</property>
<property name="indent">
<number>3</number>
</property> </property>
</widget>
</item> </item>
<item row="3" column="5">
<widget class="QComboBox" name="outbound_proxy_transport_button">
<item> <item>
<property name="text"> <property name="text">
<string>UDP</string> <string>ZRTP</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>TCP</string> <string>SDES optional</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>TLS</string> <string>SDES mandatory</string>
</property> </property>
</item> </item>
</widget> </widget>
</item> </item>
<item row="4" column="0"> <item row="7" column="0">
<widget class="QLabel" name="auth_username_label"> <widget class="QLabel" name="key_negotiation_label">
<property name="text"> <property name="text">
<string>Auth Username:</string> <string>Audio/Video Encryption:</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="1"> <item row="1" column="0" colspan="3">
<widget class="QLineEdit" name="auth_username_editor"/> <widget class="Line" name="line_8">
</item>
<item row="5" column="0" colspan="6">
<widget class="QLabel" name="msrp_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">margin-top: 20px;</string>
</property>
<property name="text">
<string>MSRP Relay</string>
</property>
</widget>
</item>
<item row="6" column="0" colspan="6">
<widget class="Line" name="line_4">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item row="7" column="1" colspan="5"> <item row="5" column="1" colspan="2">
<widget class="QCheckBox" name="always_use_my_msrp_relay_button"> <widget class="QCheckBox" name="rtp_encryption_button">
<property name="text"> <property name="text">
<string>Always use my relay for outgoing sessions</string> <string>Encrypt audio and video</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="8" column="0"> <item row="6" column="1">
<widget class="QLabel" name="msrp_relay_label"> <widget class="QCheckBox" name="account_auto_answer">
<property name="text"> <property name="text">
<string>MSRP Relay:</string> <string>Auto answer from allowed contacts</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="8" column="1"> <item row="8" column="0">
<widget class="LineEdit" name="msrp_relay_host_editor"> <widget class="QLabel" name="msrp_transport_label">
<property name="inactiveText" stdset="0"> <property name="font">
<string>Relay address taken from DNS</string> <font>
</property> <weight>50</weight>
<property name="widgetSpacing" stdset="0"> <bold>false</bold>
<number>0</number> </font>
</property> </property>
</widget>
</item>
<item row="8" column="2">
<widget class="QLabel" name="msrp_relay_port_label">
<property name="text"> <property name="text">
<string>Port:</string> <string>MSRP transport:</string>
</property>
<property name="indent">
<number>3</number>
</property>
</widget>
</item>
<item row="8" column="3">
<widget class="QSpinBox" name="msrp_relay_port">
<property name="specialValueText">
<string>2855</string>
</property> </property>
<property name="minimum"> <property name="alignment">
<number>0</number> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>0</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="8" column="4"> <item row="8" column="1">
<widget class="QLabel" name="msrp_relay_transport_label"> <widget class="QComboBox" name="msrp_transport_button">
<property name="text"> <property name="sizePolicy">
<string>Transport:</string> <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
<property name="indent"> <property name="minimumSize">
<number>3</number> <size>
<width>70</width>
<height>0</height>
</size>
</property> </property>
</widget>
</item>
<item row="8" column="5">
<widget class="QComboBox" name="msrp_relay_transport_button">
<item> <item>
<property name="text"> <property name="text">
<string>TLS</string> <string>TLS</string>
...@@ -852,208 +936,282 @@ ...@@ -852,208 +936,282 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="9" column="0" colspan="6"> </layout>
<widget class="QLabel" name="voicemail_label"> </widget>
<widget class="QLabel" name="account_audio_codecs_label">
<property name="geometry">
<rect>
<x>20</x>
<y>10</y>
<width>97</width>
<height>17</height>
</rect>
</property>
<property name="font"> <property name="font">
<font> <font>
<weight>75</weight> <weight>75</weight>
<bold>true</bold> <bold>true</bold>
</font> </font>
</property> </property>
<property name="styleSheet">
<string notr="true">margin-top: 20px;</string>
</property>
<property name="text"> <property name="text">
<string>Extra Server Settings</string> <string>Audio Codecs</string>
</property> </property>
</widget> </widget>
</item> <widget class="QLabel" name="account_video_codecs_label">
<item row="10" column="0" colspan="6"> <property name="geometry">
<widget class="Line" name="line_5"> <rect>
<property name="orientation"> <x>140</x>
<enum>Qt::Horizontal</enum> <y>10</y>
<width>97</width>
<height>17</height>
</rect>
</property> </property>
</widget> <property name="font">
</item> <font>
<item row="11" column="0"> <weight>75</weight>
<widget class="QLabel" name="voicemail_uri_label"> <bold>true</bold>
<property name="text"> </font>
<string>Voicemail URI:</string>
</property> </property>
<property name="alignment"> <property name="text">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <string>Video Codecs</string>
</property> </property>
</widget> </widget>
</item> <widget class="QListWidget" name="account_audio_codecs_list">
<item row="11" column="1" colspan="5"> <property name="geometry">
<widget class="LineEdit" name="voicemail_uri_editor"> <rect>
<property name="inactiveText" stdset="0"> <x>10</x>
<string>Discovered by subscribing to myself</string> <y>40</y>
<width>121</width>
<height>161</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="dragEnabled">
<bool>true</bool>
</property>
<property name="dragDropMode">
<enum>QAbstractItemView::InternalMove</enum>
</property>
<item>
<property name="text">
<string>opus</string>
</property> </property>
<property name="widgetSpacing" stdset="0"> <property name="checkState">
<number>0</number> <enum>Checked</enum>
</property> </property>
</widget>
</item> </item>
<item row="12" column="0"> <item>
<widget class="QLabel" name="xcap_root_label">
<property name="text"> <property name="text">
<string>XCAP Root URL:</string> <string>speex</string>
</property> </property>
<property name="alignment"> <property name="checkState">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <enum>Checked</enum>
</property> </property>
</widget>
</item> </item>
<item row="12" column="1" colspan="5"> <item>
<widget class="LineEdit" name="xcap_root_editor"> <property name="text">
<property name="inactiveText" stdset="0"> <string>G722</string>
<string>Taken from the DNS TXT record for xcap.domain</string>
</property> </property>
<property name="widgetSpacing" stdset="0"> <property name="checkState">
<number>0</number> <enum>Checked</enum>
</property> </property>
</widget>
</item>
<item row="13" column="1" colspan="5">
<widget class="QLineEdit" name="server_tools_url_editor"/>
</item> </item>
<item row="13" column="0"> <item>
<widget class="QLabel" name="server_tools_url_label">
<property name="text"> <property name="text">
<string>Server Tools URL:</string> <string>GSM</string>
</property> </property>
<property name="alignment"> <property name="checkState">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <enum>Unchecked</enum>
</property> </property>
</widget>
</item> </item>
<item row="15" column="0" colspan="6"> <item>
<spacer name="server_settings_spacer"> <property name="text">
<property name="orientation"> <string>iLBC</string>
<enum>Qt::Vertical</enum>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="checkState">
<size> <enum>Unchecked</enum>
<width>20</width>
<height>40</height>
</size>
</property> </property>
</spacer>
</item> </item>
<item row="14" column="0"> <item>
<widget class="QLabel" name="conference_server_label">
<property name="text"> <property name="text">
<string>Conference Server:</string> <string>PCMU</string>
</property> </property>
<property name="alignment"> <property name="checkState">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <enum>Checked</enum>
</property> </property>
</widget>
</item> </item>
<item row="14" column="1" colspan="5"> <item>
<widget class="LineEdit" name="conference_server_editor"> <property name="text">
<property name="widgetSpacing" stdset="0"> <string>PCMA</string>
<number>0</number>
</property> </property>
<property name="inactiveText" stdset="0"> <property name="checkState">
<string>conference.sip2sip.info</string> <enum>Checked</enum>
</property> </property>
</widget>
</item> </item>
</layout>
</widget> </widget>
<widget class="QWidget" name="network_tab"> <widget class="QWidget" name="reset_buttons_widget" native="true">
<attribute name="title"> <property name="geometry">
<string>NAT Traversal</string> <rect>
</attribute> <x>10</x>
<layout class="QGridLayout" name="network_tab_layout"> <y>203</y>
<width>571</width>
<height>31</height>
</rect>
</property>
<layout class="QHBoxLayout" name="reset_buttons_widget_layout">
<property name="leftMargin"> <property name="leftMargin">
<number>10</number> <number>0</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>10</number> <number>0</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>10</number> <number>0</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>10</number> <number>0</number>
</property> </property>
<property name="spacing"> </layout>
<number>5</number> </widget>
<widget class="QListWidget" name="account_video_codecs_list">
<property name="geometry">
<rect>
<x>130</x>
<y>40</y>
<width>121</width>
<height>161</height>
</rect>
</property> </property>
<item row="2" column="1" colspan="2"> <property name="sizePolicy">
<widget class="QCheckBox" name="use_ice_button"> <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<property name="text"> <horstretch>0</horstretch>
<string>Enable ICE</string> <verstretch>0</verstretch>
</sizepolicy>
</property> </property>
</widget> <property name="horizontalScrollBarPolicy">
</item> <enum>Qt::ScrollBarAlwaysOff</enum>
<item row="3" column="0"> </property>
<widget class="QLabel" name="msrp_transport_label"> <property name="dragEnabled">
<property name="minimumSize"> <bool>true</bool>
<size> </property>
<width>105</width> <property name="dragDropMode">
<height>0</height> <enum>QAbstractItemView::InternalMove</enum>
</size>
</property> </property>
<item>
<property name="text"> <property name="text">
<string>MSRP Transport:</string> <string>H264</string>
</property> </property>
<property name="alignment"> <property name="checkState">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <enum>Checked</enum>
</property> </property>
</widget>
</item> </item>
<item row="3" column="1">
<widget class="QComboBox" name="msrp_transport_button">
<property name="minimumSize">
<size>
<width>70</width>
<height>0</height>
</size>
</property>
<item> <item>
<property name="text"> <property name="text">
<string>TLS</string> <string>VP8</string>
</property>
<property name="checkState">
<enum>Checked</enum>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>TCP</string> <string>VP9</string>
</property>
<property name="checkState">
<enum>Checked</enum>
</property> </property>
</item> </item>
</widget> </widget>
</item> <widget class="Line" name="line_6">
<item row="3" column="2"> <property name="geometry">
<spacer name="msrp_transport_spacer"> <rect>
<x>10</x>
<y>23</y>
<width>581</width>
<height>16</height>
</rect>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="sizeHint" stdset="0"> </widget>
<size> <widget class="QLabel" name="codecs_note_label">
<width>40</width> <property name="geometry">
<height>20</height> <rect>
</size> <x>280</x>
<y>40</y>
<width>231</width>
<height>27</height>
</rect>
</property> </property>
</spacer> <property name="sizePolicy">
</item> <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<item row="4" column="0" colspan="3"> <horstretch>0</horstretch>
<spacer name="account_network_spacer"> <verstretch>0</verstretch>
<property name="orientation"> </sizepolicy>
<enum>Qt::Vertical</enum>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="text">
<size> <string>Drag codecs to change their order</string>
<width>20</width> </property>
<height>40</height> <property name="alignment">
</size> <set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QPushButton" name="reset_account_audio_codecs_button">
<property name="geometry">
<rect>
<x>30</x>
<y>210</y>
<width>85</width>
<height>27</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Reset</string>
</property>
</widget>
<widget class="QPushButton" name="reset_account_video_codecs_button">
<property name="geometry">
<rect>
<x>150</x>
<y>210</y>
<width>85</width>
<height>27</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Reset</string>
</property>
</widget>
<widget class="QLabel" name="rtp_options_label">
<property name="geometry">
<rect>
<x>10</x>
<y>260</y>
<width>413</width>
<height>27</height>
</rect>
</property> </property>
</spacer>
</item>
<item row="0" column="0" colspan="3">
<widget class="QLabel" name="label">
<property name="font"> <property name="font">
<font> <font>
<weight>75</weight> <weight>75</weight>
...@@ -1061,18 +1219,9 @@ ...@@ -1061,18 +1219,9 @@
</font> </font>
</property> </property>
<property name="text"> <property name="text">
<string>Network Settings</string> <string>Options</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="3">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property> </property>
</widget> </widget>
</item>
</layout>
</widget> </widget>
<widget class="QWidget" name="advanced_tab"> <widget class="QWidget" name="advanced_tab">
<attribute name="title"> <attribute name="title">
...@@ -1368,7 +1517,7 @@ ...@@ -1368,7 +1517,7 @@
</font> </font>
</property> </property>
<property name="text"> <property name="text">
<string>Dialing landline and mobile numbers</string> <string>When calling to phone numbers</string>
</property> </property>
</widget> </widget>
</item> </item>
...@@ -1516,8 +1665,14 @@ ...@@ -1516,8 +1665,14 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="4" column="0"> <item row="5" column="0">
<widget class="QLabel" name="account_peer_name_label"> <widget class="QLabel" name="account_peer_name_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>140</width> <width>140</width>
...@@ -1532,8 +1687,14 @@ ...@@ -1532,8 +1687,14 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="2"> <item row="5" column="1" colspan="2">
<widget class="QLineEdit" name="account_tls_name_editor"> <widget class="QLineEdit" name="account_tls_name_editor">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip"> <property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Verify the remote TLS certifcate Common Name against this name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Verify the remote TLS certifcate Common Name against this name&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
...@@ -2823,7 +2984,7 @@ ...@@ -2823,7 +2984,7 @@
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>18</x> <x>18</x>
<y>373</y> <y>365</y>
<width>856</width> <width>856</width>
<height>16</height> <height>16</height>
</rect> </rect>
...@@ -2979,7 +3140,7 @@ ...@@ -2979,7 +3140,7 @@
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>18</x> <x>18</x>
<y>26</y> <y>0</y>
<width>86</width> <width>86</width>
<height>17</height> <height>17</height>
</rect> </rect>
...@@ -3072,7 +3233,7 @@ ...@@ -3072,7 +3233,7 @@
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>18</x> <x>18</x>
<y>49</y> <y>14</y>
<width>856</width> <width>856</width>
<height>16</height> <height>16</height>
</rect> </rect>
...@@ -3168,7 +3329,7 @@ ...@@ -3168,7 +3329,7 @@
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>18</x> <x>18</x>
<y>244</y> <y>237</y>
<width>856</width> <width>856</width>
<height>16</height> <height>16</height>
</rect> </rect>
...@@ -3285,10 +3446,10 @@ ...@@ -3285,10 +3446,10 @@
<widget class="QLabel" name="port_note_label"> <widget class="QLabel" name="port_note_label">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>170</x> <x>180</x>
<y>200</y> <y>30</y>
<width>288</width> <width>288</width>
<height>17</height> <height>22</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
...@@ -3588,13 +3749,10 @@ ...@@ -3588,13 +3749,10 @@
<tabstop>account_list</tabstop> <tabstop>account_list</tabstop>
<tabstop>add_account_button</tabstop> <tabstop>add_account_button</tabstop>
<tabstop>delete_account_button</tabstop> <tabstop>delete_account_button</tabstop>
<tabstop>account_tab_widget</tabstop>
<tabstop>account_enabled_button</tabstop> <tabstop>account_enabled_button</tabstop>
<tabstop>display_name_editor</tabstop> <tabstop>display_name_editor</tabstop>
<tabstop>password_editor</tabstop> <tabstop>password_editor</tabstop>
<tabstop>reset_account_audio_codecs_button</tabstop>
<tabstop>account_audio_codecs_list</tabstop> <tabstop>account_audio_codecs_list</tabstop>
<tabstop>reset_account_video_codecs_button</tabstop>
<tabstop>account_video_codecs_list</tabstop> <tabstop>account_video_codecs_list</tabstop>
<tabstop>inband_dtmf_button</tabstop> <tabstop>inband_dtmf_button</tabstop>
<tabstop>rtp_encryption_button</tabstop> <tabstop>rtp_encryption_button</tabstop>
...@@ -3604,16 +3762,10 @@ ...@@ -3604,16 +3762,10 @@
<tabstop>outbound_proxy_port</tabstop> <tabstop>outbound_proxy_port</tabstop>
<tabstop>outbound_proxy_transport_button</tabstop> <tabstop>outbound_proxy_transport_button</tabstop>
<tabstop>auth_username_editor</tabstop> <tabstop>auth_username_editor</tabstop>
<tabstop>always_use_my_msrp_relay_button</tabstop>
<tabstop>msrp_relay_host_editor</tabstop>
<tabstop>msrp_relay_port</tabstop>
<tabstop>msrp_relay_transport_button</tabstop>
<tabstop>voicemail_uri_editor</tabstop> <tabstop>voicemail_uri_editor</tabstop>
<tabstop>xcap_root_editor</tabstop> <tabstop>xcap_root_editor</tabstop>
<tabstop>server_tools_url_editor</tabstop> <tabstop>server_tools_url_editor</tabstop>
<tabstop>conference_server_editor</tabstop> <tabstop>conference_server_editor</tabstop>
<tabstop>use_ice_button</tabstop>
<tabstop>msrp_transport_button</tabstop>
<tabstop>reregister_button</tabstop> <tabstop>reregister_button</tabstop>
<tabstop>register_interval</tabstop> <tabstop>register_interval</tabstop>
<tabstop>publish_interval</tabstop> <tabstop>publish_interval</tabstop>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment