aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClaas Beyersdorf <claas.beyersdorf@iant.de>2015-09-23 11:37:52 +0200
committerClaas Beyersdorf <claas.beyersdorf@iant.de>2015-09-23 11:37:52 +0200
commit1bac6d5ce587c382eab6eef3e572b7c15d5bd2d6 (patch)
treeafc7810d8ee5799a38d05db4f96e4e57243e1672
parent93c8b7982487d9dbc357590ed8ffbfd2c3d5c7fb (diff)
downloadjitsi-1bac6d5ce587c382eab6eef3e572b7c15d5bd2d6.zip
jitsi-1bac6d5ce587c382eab6eef3e572b7c15d5bd2d6.tar.gz
jitsi-1bac6d5ce587c382eab6eef3e572b7c15d5bd2d6.tar.bz2
Added abbility to set option FORCE_PROXY_BYPASS via SipAccount
settingspage.
-rw-r--r--resources/languages/resources.properties1
-rw-r--r--resources/languages/resources_de.properties1
-rw-r--r--src/net/java/sip/communicator/plugin/sipaccregwizz/ConnectionPanel.java501
-rw-r--r--src/net/java/sip/communicator/plugin/sipaccregwizz/SIPAccountRegistrationForm.java5
-rw-r--r--src/net/java/sip/communicator/service/protocol/sip/SipAccountID.java21
5 files changed, 316 insertions, 213 deletions
diff --git a/resources/languages/resources.properties b/resources/languages/resources.properties
index df98291..9f1fc2c 100644
--- a/resources/languages/resources.properties
+++ b/resources/languages/resources.properties
@@ -1232,6 +1232,7 @@ plugin.sipaccregwizz.PREFERRED_TRANSPORT=Preferred transport
plugin.sipaccregwizz.ADVANCED_OPTIONS=Advanced options
plugin.sipaccregwizz.PROXY_OPTIONS=Proxy options
plugin.sipaccregwizz.PROXY_AUTO=Configure proxy automatically
+plugin.sipaccregwizz.PROXY_FORCE_BYPASS=Configure force proxy bypass (for HA scenarios)
plugin.sipaccregwizz.ENABLE_PRESENCE=Enable presence (SIMPLE)
plugin.sipaccregwizz.FORCE_P2P_PRESENCE=Force peer-to-peer presence mode
plugin.sipaccregwizz.OFFLINE_CONTACT_POLLING_PERIOD=Offline contacts polling period (in s.)
diff --git a/resources/languages/resources_de.properties b/resources/languages/resources_de.properties
index 362936e..32d5286 100644
--- a/resources/languages/resources_de.properties
+++ b/resources/languages/resources_de.properties
@@ -1174,6 +1174,7 @@ plugin.sipaccregwizz.PREFERRED_TRANSPORT=Bevorzugter Transport
plugin.sipaccregwizz.ADVANCED_OPTIONS=Erweiterte Optionen
plugin.sipaccregwizz.PROXY_OPTIONS=Proxy-Server-Optionen
plugin.sipaccregwizz.PROXY_AUTO=Proxy-Server automatisch konfigurieren
+plugin.sipaccregwizz.PROXY_FORCE_BYPASS=Proxy überprüfungs Umgehung (für HA Szenarien)
plugin.sipaccregwizz.ENABLE_PRESENCE=Anwesenheitsfunktion aktivieren (SIMPLE)
plugin.sipaccregwizz.FORCE_P2P_PRESENCE=Anwesenheitsmodus "Peer-To-Peer" erzwingen
plugin.sipaccregwizz.OFFLINE_CONTACT_POLLING_PERIOD=Abfrageintervall für Offline-Kontakte (in Sekunden)
diff --git a/src/net/java/sip/communicator/plugin/sipaccregwizz/ConnectionPanel.java b/src/net/java/sip/communicator/plugin/sipaccregwizz/ConnectionPanel.java
index f7d2a20..1f27ec4 100644
--- a/src/net/java/sip/communicator/plugin/sipaccregwizz/ConnectionPanel.java
+++ b/src/net/java/sip/communicator/plugin/sipaccregwizz/ConnectionPanel.java
@@ -1,19 +1,19 @@
/*
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
- *
+ *
* Copyright @ 2015 Atlassian Pty Ltd
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
*/
package net.java.sip.communicator.plugin.sipaccregwizz;
@@ -25,9 +25,9 @@ import javax.swing.event.*;
import net.java.sip.communicator.service.certificate.*;
import net.java.sip.communicator.plugin.desktoputil.*;
-
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.service.protocol.sip.*;
+
import org.jitsi.util.*;
/**
@@ -38,9 +38,7 @@ import org.jitsi.util.*;
*/
public class ConnectionPanel
extends TransparentPanel
- implements ItemListener,
- DocumentListener,
- ValidatingPanel
+ implements ItemListener, DocumentListener, ValidatingPanel
{
/**
* Serial version UID.
@@ -63,31 +61,26 @@ public class ConnectionPanel
private final JCheckBox proxyAutoCheckBox;
+ private final JCheckBox proxyForceBypassCheckBox;
+
private final JComboBox certificate = new JComboBox();
- private JComboBox transportCombo
- = new JComboBox(new String[] { "UDP", "TCP", "TLS" });
+ private JComboBox transportCombo = new JComboBox(new String[]
+ { "UDP", "TCP", "TLS" });
- private JComboBox keepAliveMethodBox
- = new JComboBox(new String[] { "NONE", "REGISTER", "OPTIONS", "CRLF" });
+ private JComboBox keepAliveMethodBox = new JComboBox(new String[]
+ { "NONE", "REGISTER", "OPTIONS", "CRLF" });
- private JTextField keepAliveIntervalValue
- = new JTextField(SipAccountID.getDefaultStr(
- ProtocolProviderFactory.KEEP_ALIVE_INTERVAL));
+ private JTextField keepAliveIntervalValue =
+ new JTextField(
+ SipAccountID
+ .getDefaultStr(ProtocolProviderFactory.KEEP_ALIVE_INTERVAL));
- private JComboBox dtmfMethodBox
- = new JComboBox(
- new String[]
- {
- Resources.getString(
- "plugin.sipaccregwizz.DTMF_AUTO"),
- Resources.getString(
- "plugin.sipaccregwizz.DTMF_RTP"),
- Resources.getString(
- "plugin.sipaccregwizz.DTMF_SIP_INFO"),
- Resources.getString(
- "plugin.sipaccregwizz.DTMF_INBAND")
- });
+ private JComboBox dtmfMethodBox = new JComboBox(new String[]
+ { Resources.getString("plugin.sipaccregwizz.DTMF_AUTO"),
+ Resources.getString("plugin.sipaccregwizz.DTMF_RTP"),
+ Resources.getString("plugin.sipaccregwizz.DTMF_SIP_INFO"),
+ Resources.getString("plugin.sipaccregwizz.DTMF_INBAND") });
/**
* The text field used to change the DTMF minimal tone duration.
@@ -102,6 +95,7 @@ public class ConnectionPanel
/**
* Creates an instance of the <tt>ConnectionPanel</tt>.
+ *
* @param regform the parent registration form
*/
public ConnectionPanel(SIPAccountRegistrationForm regform)
@@ -111,9 +105,10 @@ public class ConnectionPanel
this.regform = regform;
this.regform.addValidatingPanel(this);
- proxyAutoCheckBox = new SIPCommCheckBox(
- Resources.getString("plugin.sipaccregwizz.PROXY_AUTO"),
- regform.getRegistration().isProxyAutoConfigure());
+ proxyAutoCheckBox =
+ new SIPCommCheckBox(
+ Resources.getString("plugin.sipaccregwizz.PROXY_AUTO"), regform
+ .getRegistration().isProxyAutoConfigure());
enablesProxyAutoConfigure(proxyAutoCheckBox.isSelected());
proxyAutoCheckBox.addActionListener(new ActionListener()
{
@@ -127,10 +122,28 @@ public class ConnectionPanel
}
});
+ proxyForceBypassCheckBox =
+ new SIPCommCheckBox(
+ Resources.getString("plugin.sipaccregwizz.PROXY_FORCE_BYPASS"),
+ regform.getRegistration().isProxyForceBypassConfigure());
+ enablesProxyForceBypassConfigure(proxyForceBypassCheckBox.isSelected());
+ proxyForceBypassCheckBox.addActionListener(new ActionListener()
+ {
+ /**
+ * Invoked when an action occurs.
+ */
+ public void actionPerformed(ActionEvent e)
+ {
+ enablesProxyForceBypassConfigure(proxyForceBypassCheckBox
+ .isSelected());
+ ConnectionPanel.this.regform.reValidateInput();
+ }
+ });
+
this.transportCombo.addItemListener(this);
- transportCombo.setSelectedItem(
- regform.getRegistration().getPreferredTransport());
+ transportCombo.setSelectedItem(regform.getRegistration()
+ .getPreferredTransport());
JPanel mainPanel = new TransparentPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
@@ -138,23 +151,21 @@ public class ConnectionPanel
JPanel registrarMainPanel =
new TransparentPanel(new BorderLayout(10, 10));
- JPanel labelsPanel
- = new TransparentPanel(new GridLayout(0, 1, 10, 10));
- JPanel valuesPanel
- = new TransparentPanel(new GridLayout(0, 1, 10, 10));
+ JPanel labelsPanel = new TransparentPanel(new GridLayout(0, 1, 10, 10));
+ JPanel valuesPanel = new TransparentPanel(new GridLayout(0, 1, 10, 10));
- JLabel serverLabel
- = new JLabel(Resources.getString("plugin.sipaccregwizz.REGISTRAR"));
+ JLabel serverLabel =
+ new JLabel(Resources.getString("plugin.sipaccregwizz.REGISTRAR"));
- JLabel authNameLabel
- = new JLabel(Resources.getString(
- "plugin.sipaccregwizz.AUTH_NAME"));
+ JLabel authNameLabel =
+ new JLabel(Resources.getString("plugin.sipaccregwizz.AUTH_NAME"));
- JLabel serverPortLabel
- = new JLabel(Resources.getString("service.gui.PORT"));
+ JLabel serverPortLabel =
+ new JLabel(Resources.getString("service.gui.PORT"));
- JLabel certLabel = new JLabel(
- Resources.getString("plugin.sipaccregwizz.CLIENT_CERTIFICATE"));
+ JLabel certLabel =
+ new JLabel(
+ Resources.getString("plugin.sipaccregwizz.CLIENT_CERTIFICATE"));
labelsPanel.add(serverLabel);
labelsPanel.add(authNameLabel);
@@ -165,8 +176,7 @@ public class ConnectionPanel
JPanel serverPanel = new TransparentPanel(new BorderLayout(5, 5));
serverPanel.add(serverField, BorderLayout.CENTER);
- JPanel serverPortPanel = new TransparentPanel(
- new BorderLayout(5, 5));
+ JPanel serverPortPanel = new TransparentPanel(new BorderLayout(5, 5));
serverPortPanel.add(serverPortLabel, BorderLayout.WEST);
serverPortPanel.add(serverPortField, BorderLayout.EAST);
serverPanel.add(serverPortPanel, BorderLayout.EAST);
@@ -178,43 +188,44 @@ public class ConnectionPanel
registrarMainPanel.add(labelsPanel, BorderLayout.WEST);
registrarMainPanel.add(valuesPanel, BorderLayout.CENTER);
- registrarMainPanel.setBorder(
- BorderFactory.createEmptyBorder(10, 5, 10, 5));
+ registrarMainPanel.setBorder(BorderFactory.createEmptyBorder(10, 5, 10,
+ 5));
mainPanel.add(registrarMainPanel);
- proxyAutoCheckBox.setSelected(
- regform.getRegistration().isProxyAutoConfigure());
- if(!StringUtils.isNullOrEmpty(
- regform.getRegistration().getProxy()))
+ proxyAutoCheckBox.setSelected(regform.getRegistration()
+ .isProxyAutoConfigure());
+ proxyForceBypassCheckBox.setSelected(regform.getRegistration()
+ .isProxyForceBypassConfigure());
+ if (!StringUtils.isNullOrEmpty(regform.getRegistration().getProxy()))
proxyField.setText(regform.getRegistration().getProxy());
- if(!StringUtils.isNullOrEmpty(
- regform.getRegistration().getProxyPort()))
+ if (!StringUtils
+ .isNullOrEmpty(regform.getRegistration().getProxyPort()))
proxyPortField.setText(regform.getRegistration().getProxyPort());
- JLabel proxyLabel
- = new JLabel(Resources.getString("plugin.sipaccregwizz.PROXY"));
+ JLabel proxyLabel =
+ new JLabel(Resources.getString("plugin.sipaccregwizz.PROXY"));
- JLabel proxyPortLabel
- = new JLabel(Resources.getString("service.gui.PORT"));
+ JLabel proxyPortLabel =
+ new JLabel(Resources.getString("service.gui.PORT"));
- JLabel transportLabel
- = new JLabel(Resources.getString(
- "plugin.sipaccregwizz.PREFERRED_TRANSPORT"));
+ JLabel transportLabel =
+ new JLabel(
+ Resources.getString("plugin.sipaccregwizz.PREFERRED_TRANSPORT"));
- JPanel proxyMainPanel
- = new TransparentPanel(new BorderLayout(10, 10));
+ JPanel proxyMainPanel = new TransparentPanel(new BorderLayout(10, 10));
proxyField.getDocument().addDocumentListener(this);
proxyPortField.getDocument().addDocumentListener(this);
JPanel proxyPanel = new TransparentPanel(new BorderLayout(5, 5));
proxyPanel.add(proxyField, BorderLayout.CENTER);
- JPanel proxyPortPanel = new TransparentPanel(
- new BorderLayout(5, 5));
+ JPanel proxyPortPanel = new TransparentPanel(new BorderLayout(5, 5));
proxyPortPanel.add(proxyPortLabel, BorderLayout.WEST);
proxyPortPanel.add(proxyPortField, BorderLayout.EAST);
proxyPanel.add(proxyPortPanel, BorderLayout.EAST);
+ JPanel proxyNorthPanel =
+ new TransparentPanel(new GridLayout(2, 1, 10, 1));
labelsPanel = new TransparentPanel(new GridLayout(0, 1, 10, 10));
valuesPanel = new TransparentPanel(new GridLayout(0, 1, 10, 10));
@@ -222,44 +233,50 @@ public class ConnectionPanel
labelsPanel.add(transportLabel);
valuesPanel.add(proxyPanel);
valuesPanel.add(transportCombo);
+ proxyNorthPanel.add(proxyForceBypassCheckBox);
+ proxyNorthPanel.add(proxyAutoCheckBox);
+
- proxyMainPanel.add(proxyAutoCheckBox, BorderLayout.NORTH);
+ proxyMainPanel.add(proxyNorthPanel, BorderLayout.NORTH);
proxyMainPanel.add(labelsPanel, BorderLayout.WEST);
proxyMainPanel.add(valuesPanel, BorderLayout.CENTER);
- proxyMainPanel.setBorder(BorderFactory.createTitledBorder(
- Resources.getString("plugin.sipaccregwizz.PROXY_OPTIONS")));
+ proxyMainPanel.setBorder(BorderFactory.createTitledBorder(Resources
+ .getString("plugin.sipaccregwizz.PROXY_OPTIONS")));
mainPanel.add(proxyMainPanel);
mainPanel.add(Box.createVerticalStrut(5));
mainPanel.add(createKeepAlivePanel());
- JPanel encryptionPanel
- = new TransparentPanel(new GridLayout(1, 2, 2, 2));
+ JPanel encryptionPanel =
+ new TransparentPanel(new GridLayout(1, 2, 2, 2));
mainPanel.add(Box.createVerticalStrut(5));
mainPanel.add(encryptionPanel);
JPanel voicemailPanel = new TransparentPanel(new BorderLayout(10, 10));
- JPanel voicemailUriPanelLabels
- = new TransparentPanel(new GridLayout(0, 1, 10, 10));
- JPanel voicemailUriPanelValues
- = new TransparentPanel(new GridLayout(0, 1, 10, 10));
-
- mwiCheckBox = new SIPCommCheckBox(
- Resources.getString("plugin.sipaccregwizz.MWI"),
- regform.getRegistration().isMessageWaitingIndicationsEnabled());
-
- voicemailUriPanelLabels.add(new JLabel(
- Resources.getString("plugin.sipaccregwizz.VOICEMAIL_URI")));
- voicemailUriPanelLabels.add(new JLabel(
- Resources.getString("plugin.sipaccregwizz.VOICEMAIL_CHECK_URI")));
+ JPanel voicemailUriPanelLabels =
+ new TransparentPanel(new GridLayout(0, 1, 10, 10));
+ JPanel voicemailUriPanelValues =
+ new TransparentPanel(new GridLayout(0, 1, 10, 10));
+
+ mwiCheckBox =
+ new SIPCommCheckBox(
+ Resources.getString("plugin.sipaccregwizz.MWI"), regform
+ .getRegistration().isMessageWaitingIndicationsEnabled());
+
+ voicemailUriPanelLabels.add(new JLabel(Resources
+ .getString("plugin.sipaccregwizz.VOICEMAIL_URI")));
+ voicemailUriPanelLabels.add(new JLabel(Resources
+ .getString("plugin.sipaccregwizz.VOICEMAIL_CHECK_URI")));
voicemailUriPanelValues.add(voicemailAliasField);
voicemailUriPanelValues.add(voicemailCheckField);
- voicemailPanel.setBorder(BorderFactory.createTitledBorder(
- Resources.getString("plugin.sipaccregwizz.VOICEMAIL")));
+ voicemailPanel.setBorder(BorderFactory.createTitledBorder(Resources
+ .getString("plugin.sipaccregwizz.VOICEMAIL")));
- voicemailAliasField.setText(regform.getRegistration().getVoicemailURI());
- voicemailCheckField.setText(regform.getRegistration().getVoicemailCheckURI());
+ voicemailAliasField
+ .setText(regform.getRegistration().getVoicemailURI());
+ voicemailCheckField.setText(regform.getRegistration()
+ .getVoicemailCheckURI());
voicemailPanel.add(mwiCheckBox, BorderLayout.NORTH);
voicemailPanel.add(voicemailUriPanelLabels, BorderLayout.WEST);
@@ -278,15 +295,13 @@ public class ConnectionPanel
{
certificate.removeAllItems();
certificate.insertItemAt(
- Resources.getString("plugin.sipaccregwizz.NO_CERTIFICATE"),
- 0);
+ Resources.getString("plugin.sipaccregwizz.NO_CERTIFICATE"), 0);
certificate.setSelectedIndex(0);
- for(CertificateConfigEntry e
- : SIPAccRegWizzActivator.getCertificateService()
- .getClientAuthCertificateConfigs())
+ for (CertificateConfigEntry e : SIPAccRegWizzActivator
+ .getCertificateService().getClientAuthCertificateConfigs())
{
certificate.addItem(e);
- if(e.getId().equals(id))
+ if (e.getId().equals(id))
certificate.setSelectedItem(e);
}
}
@@ -294,6 +309,7 @@ public class ConnectionPanel
/**
* Parse the server part from the sip id and set it to server as default
* value. If Advanced option is enabled Do nothing.
+ *
* @param serverAddress the address of the server
*/
public void setServerFieldAccordingToUIN(String serverAddress)
@@ -301,33 +317,35 @@ public class ConnectionPanel
if (!regform.isModification() || !isServerOverridden)
{
serverField.setText(serverAddress);
- //proxyField.setText(serverAddress);
+ // proxyField.setText(serverAddress);
}
}
/**
* Indicates that the state of the item has changed.
+ *
* @param e the <tt>ItemEvent</tt> that notified us
*/
public void itemStateChanged(ItemEvent e)
{
// do not set default values cause they are counted
// as overrrided ones
-// if (e.getStateChange() == ItemEvent.SELECTED
-// && e.getItem().equals("TLS"))
-// {
-// serverPortField.setText(SIPAccountRegistration.DEFAULT_TLS_PORT);
-// proxyPortField.setText(SIPAccountRegistration.DEFAULT_TLS_PORT);
-// }
-// else
-// {
-// serverPortField.setText(SIPAccountRegistration.DEFAULT_PORT);
-// proxyPortField.setText(SIPAccountRegistration.DEFAULT_PORT);
-// }
+ // if (e.getStateChange() == ItemEvent.SELECTED
+ // && e.getItem().equals("TLS"))
+ // {
+ // serverPortField.setText(SIPAccountRegistration.DEFAULT_TLS_PORT);
+ // proxyPortField.setText(SIPAccountRegistration.DEFAULT_TLS_PORT);
+ // }
+ // else
+ // {
+ // serverPortField.setText(SIPAccountRegistration.DEFAULT_PORT);
+ // proxyPortField.setText(SIPAccountRegistration.DEFAULT_PORT);
+ // }
}
/**
* Creates the keep alive panel.
+ *
* @return the created keep alive panel
*/
private Component createKeepAlivePanel()
@@ -335,39 +353,40 @@ public class ConnectionPanel
JPanel emptyLabelPanel = new TransparentPanel();
emptyLabelPanel.setMaximumSize(new Dimension(40, 35));
- JPanel keepAlivePanel
- = new TransparentPanel(new BorderLayout(10, 10));
+ JPanel keepAlivePanel = new TransparentPanel(new BorderLayout(10, 10));
- JPanel keepAliveLabels
- = new TransparentPanel(new GridLayout(0, 1, 5, 5));
+ JPanel keepAliveLabels =
+ new TransparentPanel(new GridLayout(0, 1, 5, 5));
- JPanel keepAliveValues
- = new TransparentPanel(new GridLayout(0, 1, 5, 5));
+ JPanel keepAliveValues =
+ new TransparentPanel(new GridLayout(0, 1, 5, 5));
- JLabel keepAliveMethodLabel = new JLabel(
- Resources.getString("plugin.sipaccregwizz.KEEP_ALIVE_METHOD"));
+ JLabel keepAliveMethodLabel =
+ new JLabel(
+ Resources.getString("plugin.sipaccregwizz.KEEP_ALIVE_METHOD"));
- JLabel keepAliveIntervalLabel = new JLabel(
- Resources.getString("plugin.sipaccregwizz.KEEP_ALIVE_INTERVAL"));
+ JLabel keepAliveIntervalLabel =
+ new JLabel(
+ Resources.getString("plugin.sipaccregwizz.KEEP_ALIVE_INTERVAL"));
- JLabel keepAliveIntervalExampleLabel = new JLabel(
- Resources.getString("plugin.sipaccregwizz.KEEP_ALIVE_INTERVAL_INFO"));
+ JLabel keepAliveIntervalExampleLabel =
+ new JLabel(
+ Resources
+ .getString("plugin.sipaccregwizz.KEEP_ALIVE_INTERVAL_INFO"));
keepAliveLabels.add(keepAliveMethodLabel);
keepAliveLabels.add(keepAliveIntervalLabel);
keepAliveLabels.add(emptyLabelPanel);
keepAliveIntervalExampleLabel.setForeground(Color.GRAY);
- keepAliveIntervalExampleLabel
- .setFont(keepAliveIntervalExampleLabel.getFont().deriveFont(8));
- keepAliveIntervalExampleLabel
- .setMaximumSize(new Dimension(40, 35));
- keepAliveIntervalExampleLabel
- .setBorder(BorderFactory.createEmptyBorder(0, 0, 8, 0));
-
- keepAliveMethodBox.setSelectedItem(
- SipAccountID.getDefaultStr(
- ProtocolProviderFactory.KEEP_ALIVE_METHOD));
+ keepAliveIntervalExampleLabel.setFont(keepAliveIntervalExampleLabel
+ .getFont().deriveFont(8));
+ keepAliveIntervalExampleLabel.setMaximumSize(new Dimension(40, 35));
+ keepAliveIntervalExampleLabel.setBorder(BorderFactory
+ .createEmptyBorder(0, 0, 8, 0));
+
+ keepAliveMethodBox.setSelectedItem(SipAccountID
+ .getDefaultStr(ProtocolProviderFactory.KEEP_ALIVE_METHOD));
keepAliveValues.add(keepAliveMethodBox);
keepAliveValues.add(keepAliveIntervalValue);
keepAliveValues.add(keepAliveIntervalExampleLabel);
@@ -375,14 +394,15 @@ public class ConnectionPanel
keepAlivePanel.add(keepAliveLabels, BorderLayout.WEST);
keepAlivePanel.add(keepAliveValues, BorderLayout.CENTER);
- keepAlivePanel.setBorder(BorderFactory.createTitledBorder(
- Resources.getString("plugin.sipaccregwizz.KEEP_ALIVE")));
+ keepAlivePanel.setBorder(BorderFactory.createTitledBorder(Resources
+ .getString("plugin.sipaccregwizz.KEEP_ALIVE")));
return keepAlivePanel;
}
/**
* Creates the DTMF panel.
+ *
* @return the created DTMF panel
*/
private Component createDTMFPanel()
@@ -391,11 +411,12 @@ public class ConnectionPanel
// Labels.
JPanel dtmfLabels = new TransparentPanel(new GridLayout(0, 1, 5, 5));
- JLabel dtmfMethodLabel = new JLabel(
- Resources.getString("plugin.sipaccregwizz.DTMF_METHOD"));
- JLabel minimalDTMFToneDurationLabel = new JLabel(
- Resources.getString(
- "plugin.sipaccregwizz.DTMF_MINIMAL_TONE_DURATION"));
+ JLabel dtmfMethodLabel =
+ new JLabel(Resources.getString("plugin.sipaccregwizz.DTMF_METHOD"));
+ JLabel minimalDTMFToneDurationLabel =
+ new JLabel(
+ Resources
+ .getString("plugin.sipaccregwizz.DTMF_MINIMAL_TONE_DURATION"));
dtmfLabels.add(dtmfMethodLabel);
dtmfLabels.add(minimalDTMFToneDurationLabel);
dtmfLabels.add(emptyLabelPanel);
@@ -403,46 +424,46 @@ public class ConnectionPanel
// Values
JPanel dtmfValues = new TransparentPanel(new GridLayout(0, 1, 5, 5));
dtmfMethodBox.addItemListener(new ItemListener()
+ {
+ public void itemStateChanged(ItemEvent e)
+ {
+ boolean isEnabled = false;
+ String selectedItem = (String) dtmfMethodBox.getSelectedItem();
+ if (selectedItem != null
+ && (selectedItem.equals(Resources
+ .getString("plugin.sipaccregwizz.DTMF_AUTO")) || selectedItem
+ .equals(Resources
+ .getString("plugin.sipaccregwizz.DTMF_RTP"))))
{
- public void itemStateChanged(ItemEvent e)
- {
- boolean isEnabled = false;
- String selectedItem
- = (String) dtmfMethodBox.getSelectedItem();
- if(selectedItem != null
- && (selectedItem.equals(Resources.getString(
- "plugin.sipaccregwizz.DTMF_AUTO"))
- || selectedItem.equals(Resources.getString(
- "plugin.sipaccregwizz.DTMF_RTP")))
- )
- {
- isEnabled = true;
- }
- dtmfMinimalToneDurationValue.setEnabled(isEnabled);
- }
- });
- dtmfMethodBox.setSelectedItem(
- regform.getRegistration().getDTMFMethod());
- dtmfMinimalToneDurationValue
- .setText(regform.getRegistration().getDtmfMinimalToneDuration());
- JLabel dtmfMinimalToneDurationExampleLabel = new JLabel(
- Resources.getString(
- "plugin.sipaccregwizz.DTMF_MINIMAL_TONE_DURATION_INFO"));
+ isEnabled = true;
+ }
+ dtmfMinimalToneDurationValue.setEnabled(isEnabled);
+ }
+ });
+ dtmfMethodBox
+ .setSelectedItem(regform.getRegistration().getDTMFMethod());
+ dtmfMinimalToneDurationValue.setText(regform.getRegistration()
+ .getDtmfMinimalToneDuration());
+ JLabel dtmfMinimalToneDurationExampleLabel =
+ new JLabel(
+ Resources
+ .getString("plugin.sipaccregwizz.DTMF_MINIMAL_TONE_DURATION_INFO"));
dtmfMinimalToneDurationExampleLabel.setForeground(Color.GRAY);
- dtmfMinimalToneDurationExampleLabel.setFont(
- dtmfMinimalToneDurationExampleLabel.getFont().deriveFont(8));
- dtmfMinimalToneDurationExampleLabel.setMaximumSize(
- new Dimension(40, 35));
- dtmfMinimalToneDurationExampleLabel.setBorder(
- BorderFactory.createEmptyBorder(0, 0, 8, 0));
+ dtmfMinimalToneDurationExampleLabel
+ .setFont(dtmfMinimalToneDurationExampleLabel.getFont()
+ .deriveFont(8));
+ dtmfMinimalToneDurationExampleLabel
+ .setMaximumSize(new Dimension(40, 35));
+ dtmfMinimalToneDurationExampleLabel.setBorder(BorderFactory
+ .createEmptyBorder(0, 0, 8, 0));
dtmfValues.add(dtmfMethodBox);
dtmfValues.add(dtmfMinimalToneDurationValue);
dtmfValues.add(dtmfMinimalToneDurationExampleLabel);
// DTMF panel
JPanel dtmfPanel = new TransparentPanel(new BorderLayout(10, 10));
- dtmfPanel.setBorder(BorderFactory.createTitledBorder(
- Resources.getString("plugin.sipaccregwizz.DTMF")));
+ dtmfPanel.setBorder(BorderFactory.createTitledBorder(Resources
+ .getString("plugin.sipaccregwizz.DTMF")));
dtmfPanel.add(dtmfLabels, BorderLayout.WEST);
dtmfPanel.add(dtmfValues, BorderLayout.CENTER);
@@ -451,6 +472,7 @@ public class ConnectionPanel
/**
* Returns the server address.
+ *
* @return the server address
*/
String getServerAddress()
@@ -460,6 +482,7 @@ public class ConnectionPanel
/**
* Sets the server address.
+ *
* @param serverAddress the server address
*/
void setServerAddress(String serverAddress)
@@ -469,8 +492,9 @@ public class ConnectionPanel
/**
* Enables/disables the server text field.
+ *
* @param isEnabled <tt>true</tt> to enable the server text field,
- * <tt>false</tt> - otherwise
+ * <tt>false</tt> - otherwise
*/
void setServerEnabled(boolean isEnabled)
{
@@ -479,6 +503,7 @@ public class ConnectionPanel
/**
* Returns the authentication name.
+ *
* @return the authentication name
*/
String getAuthenticationName()
@@ -488,6 +513,7 @@ public class ConnectionPanel
/**
* Sets the authentication name.
+ *
* @param authName the authentication name
*/
void setAuthenticationName(String authName)
@@ -497,6 +523,7 @@ public class ConnectionPanel
/**
* Returns the server port.
+ *
* @return the server port
*/
String getServerPort()
@@ -506,6 +533,7 @@ public class ConnectionPanel
/**
* Sets the server port.
+ *
* @param serverPort the server port
*/
void setServerPort(String serverPort)
@@ -515,6 +543,7 @@ public class ConnectionPanel
/**
* Returns the proxy.
+ *
* @return the proxy
*/
String getProxy()
@@ -524,6 +553,7 @@ public class ConnectionPanel
/**
* Sets the proxy address.
+ *
* @param proxyAddress the proxy address
*/
void setProxy(String proxyAddress)
@@ -533,6 +563,7 @@ public class ConnectionPanel
/**
* Return the proxy port.
+ *
* @return the proxy port
*/
String getProxyPort()
@@ -542,6 +573,7 @@ public class ConnectionPanel
/**
* Sets the proxy port.
+ *
* @param proxyPort the proxy port
*/
void setProxyPort(String proxyPort)
@@ -551,15 +583,16 @@ public class ConnectionPanel
/**
* Returns the selected transport.
+ *
* @return the selected transport
*/
String getSelectedTransport()
{
- //Emil: it appears that sometimes the selected item may be null even
- //though the combo box does not allow a null selection.
+ // Emil: it appears that sometimes the selected item may be null even
+ // though the combo box does not allow a null selection.
Object selectedItem = transportCombo.getSelectedItem();
- if(selectedItem == null)
+ if (selectedItem == null)
selectedItem = transportCombo.getItemAt(0);
return selectedItem.toString();
@@ -567,6 +600,7 @@ public class ConnectionPanel
/**
* Sets the selected transport.
+ *
* @param preferredTransport the transport to select
*/
void setSelectedTransport(String preferredTransport)
@@ -585,8 +619,8 @@ public class ConnectionPanel
{
Object selectedItem = certificate.getSelectedItem();
- if((selectedItem != null)
- && (selectedItem instanceof CertificateConfigEntry))
+ if ((selectedItem != null)
+ && (selectedItem instanceof CertificateConfigEntry))
{
return ((CertificateConfigEntry) selectedItem).getId();
}
@@ -595,6 +629,7 @@ public class ConnectionPanel
/**
* Sets the selected client TLS certificate entry.
+ *
* @param id The ID of the entry to select.
*/
void setCertificateId(String id)
@@ -604,13 +639,14 @@ public class ConnectionPanel
/**
* Returns the keep alive method.
+ *
* @return the keep alive method
*/
String getKeepAliveMethod()
{
Object selItem = keepAliveMethodBox.getSelectedItem();
- if(selItem != null)
+ if (selItem != null)
return selItem.toString();
else
return null;
@@ -618,6 +654,7 @@ public class ConnectionPanel
/**
* Sets the keep alive method.
+ *
* @param keepAliveMethod the keep alive method
*/
void setKeepAliveMethod(String keepAliveMethod)
@@ -627,6 +664,7 @@ public class ConnectionPanel
/**
* Returns the keep alive interval
+ *
* @return the keep alive interval
*/
String getKeepAliveInterval()
@@ -636,6 +674,7 @@ public class ConnectionPanel
/**
* Returns the DTMF method.
+ *
* @return the DTMF method
*/
String getDTMFMethod()
@@ -643,25 +682,24 @@ public class ConnectionPanel
Object selItem = dtmfMethodBox.getSelectedItem();
// By default sets DTMF mezthod to auto.
- if(selItem == null)
+ if (selItem == null)
{
return null;
}
String selString = selItem.toString();
- if(selString.equals(
- Resources.getString("plugin.sipaccregwizz.DTMF_RTP")))
+ if (selString.equals(Resources
+ .getString("plugin.sipaccregwizz.DTMF_RTP")))
{
return "RTP_DTMF";
}
- else if(selString.equals(
- Resources.getString(
- "plugin.sipaccregwizz.DTMF_SIP_INFO")))
+ else if (selString.equals(Resources
+ .getString("plugin.sipaccregwizz.DTMF_SIP_INFO")))
{
return "SIP_INFO_DTMF";
}
- else if(selString.equals(
- Resources.getString("plugin.sipaccregwizz.DTMF_INBAND")))
+ else if (selString.equals(Resources
+ .getString("plugin.sipaccregwizz.DTMF_INBAND")))
{
return "INBAND_DTMF";
}
@@ -673,28 +711,29 @@ public class ConnectionPanel
/**
* Sets the DTMF method.
+ *
* @param dtmfMethod the DTMF method
*/
void setDTMFMethod(String dtmfMethod)
{
- if(dtmfMethod == null)
+ if (dtmfMethod == null)
{
dtmfMethodBox.setSelectedItem(0);
}
else
{
String selString;
- if(dtmfMethod.equals("RTP_DTMF"))
+ if (dtmfMethod.equals("RTP_DTMF"))
{
selString =
Resources.getString("plugin.sipaccregwizz.DTMF_RTP");
}
- else if(dtmfMethod.equals("SIP_INFO_DTMF"))
+ else if (dtmfMethod.equals("SIP_INFO_DTMF"))
{
selString =
Resources.getString("plugin.sipaccregwizz.DTMF_SIP_INFO");
}
- else if(dtmfMethod.equals("INBAND_DTMF"))
+ else if (dtmfMethod.equals("INBAND_DTMF"))
{
selString =
Resources.getString("plugin.sipaccregwizz.DTMF_INBAND");
@@ -720,6 +759,7 @@ public class ConnectionPanel
/**
* Sets the keep alive interval
+ *
* @param keepAliveInterval the keep alive interval
*/
void setKeepAliveInterval(String keepAliveInterval)
@@ -729,6 +769,7 @@ public class ConnectionPanel
/**
* Returns the voicemail URI.
+ *
* @return the voicemail URI.
*/
String getVoicemailURI()
@@ -738,6 +779,7 @@ public class ConnectionPanel
/**
* Sets the voicemail URI.
+ *
* @param voicemailURI the voicemail URI.
*/
void setVoicemailURI(String voicemailURI)
@@ -747,6 +789,7 @@ public class ConnectionPanel
/**
* Returns the voicemail check URI.
+ *
* @return the voicemail URI.
*/
String getVoicemailCheckURI()
@@ -756,6 +799,7 @@ public class ConnectionPanel
/**
* Sets the voicemail check URI.
+ *
* @param voicemailCheckURI the voicemail URI.
*/
void setVoicemailCheckURI(String voicemailCheckURI)
@@ -765,6 +809,7 @@ public class ConnectionPanel
/**
* Returns is message waiting indications is enabled.
+ *
* @return is message waiting indications is enabled.
*/
boolean isMessageWaitingEnabled()
@@ -774,6 +819,7 @@ public class ConnectionPanel
/**
* Sets is message waiting indications is enabled.
+ *
* @param enabled is message waiting indications is enabled.
*/
void setMessageWaitingIndications(boolean enabled)
@@ -793,8 +839,9 @@ public class ConnectionPanel
/**
* Sets the <tt>serverOverridden</tt> property.
+ *
* @param isServerOverridden <tt>true</tt> to indicate that the server is
- * overridden, <tt>false</tt> - otherwise
+ * overridden, <tt>false</tt> - otherwise
*/
void setServerOverridden(boolean isServerOverridden)
{
@@ -803,8 +850,9 @@ public class ConnectionPanel
/**
* Indicates if the proxy auto-configure is enabled.
+ *
* @return <tt>true</tt> if the proxy auto-configuration is enabled,
- * <tt>false</tt> - otherwise
+ * <tt>false</tt> - otherwise
*/
boolean isProxyAutoConfigureEnabled()
{
@@ -813,8 +861,9 @@ public class ConnectionPanel
/**
* Enables/disables the proxy auto-configuration.
+ *
* @param isEnable <tt>true</tt> to enable proxy auto-configuration,
- * <tt>false</tt> - otherwise
+ * <tt>false</tt> - otherwise
*/
void enablesProxyAutoConfigure(boolean isEnable)
{
@@ -826,10 +875,35 @@ public class ConnectionPanel
}
/**
- * Handles the <tt>DocumentEvent</tt> triggered when user types in the
- * proxy or port field. Enables or disables the "Next" wizard button
- * according to whether the fields are empty.
- * @param e the <tt>DocumentEvent</tt> that notified us */
+ * Indicates if the proxy force bypass-configure is enabled.
+ *
+ * @return <tt>true</tt> if the proxy force bypass-configuration is enabled,
+ * <tt>false</tt> - otherwise
+ */
+ boolean isProxyForceBypassConfigureEnabled()
+ {
+ return proxyAutoCheckBox.isSelected();
+ }
+
+ /**
+ * Enables/disables the proxy force bypass-configuration.
+ *
+ * @param isEnable <tt>true</tt> to enable force proxy bypass-configuration,
+ * <tt>false</tt> - otherwise
+ */
+ void enablesProxyForceBypassConfigure(boolean isEnable)
+ {
+ proxyForceBypassCheckBox.setSelected(isEnable);
+ regform.reValidateInput();
+ }
+
+ /**
+ * Handles the <tt>DocumentEvent</tt> triggered when user types in the proxy
+ * or port field. Enables or disables the "Next" wizard button according to
+ * whether the fields are empty.
+ *
+ * @param e the <tt>DocumentEvent</tt> that notified us
+ */
public void insertUpdate(DocumentEvent e)
{
regform.reValidateInput();
@@ -839,6 +913,7 @@ public class ConnectionPanel
* Handles the <tt>DocumentEvent</tt> triggered when user deletes letters
* from the proxy and port fields. Enables or disables the "Next" wizard
* button according to whether the fields are empty.
+ *
* @param e the <tt>DocumentEvent</tt> that notified us
*/
public void removeUpdate(DocumentEvent e)
@@ -851,26 +926,26 @@ public class ConnectionPanel
*
* @param e the document event
*/
- public void changedUpdate(DocumentEvent e){}
+ public void changedUpdate(DocumentEvent e)
+ {
+ }
/**
- * Whether current inserted values into the panel are valid and enough
- * to continue with account creation/modification.
- * Checks whether proxy field values are ok to continue with
- * account creating.
+ * Whether current inserted values into the panel are valid and enough to
+ * continue with account creation/modification. Checks whether proxy field
+ * values are ok to continue with account creating.
*
* @return whether the input values are ok to continue with account
- * creation/modification.
+ * creation/modification.
*/
public boolean isValidated()
{
- if(!proxyAutoCheckBox.isSelected())
+ if (!proxyAutoCheckBox.isSelected())
{
- return
- proxyField.getText() != null
- && proxyField.getText().length() > 0
+ return proxyField.getText() != null
+ && proxyField.getText().length() > 0
&& proxyPortField.getText() != null
- && proxyPortField.getText().length() > 0;
+ && proxyPortField.getText().length() > 0;
}
return true;
diff --git a/src/net/java/sip/communicator/plugin/sipaccregwizz/SIPAccountRegistrationForm.java b/src/net/java/sip/communicator/plugin/sipaccregwizz/SIPAccountRegistrationForm.java
index 8a2672e..722b3a1 100644
--- a/src/net/java/sip/communicator/plugin/sipaccregwizz/SIPAccountRegistrationForm.java
+++ b/src/net/java/sip/communicator/plugin/sipaccregwizz/SIPAccountRegistrationForm.java
@@ -297,6 +297,9 @@ public class SIPAccountRegistrationForm
registration.setProxyAutoConfigure(
connectionPanel.isProxyAutoConfigureEnabled());
+ registration.setProxyForceBypassConfigure(
+ connectionPanel.isProxyForceBypassConfigureEnabled());
+
registration.setEnablePresence(
presencePanel.isPresenceEnabled());
registration.setForceP2PMode(
@@ -382,6 +385,8 @@ public class SIPAccountRegistrationForm
String clientTlsCertificateId = sipAccReg.getTlsClientCertificate();
boolean proxyAutoConfigureEnabled = sipAccReg.isProxyAutoConfigure();
+
+ boolean proxyForceBypassConfigureEnabled = sipAccReg.isProxyForceBypassConfigure();
String pollingPeriod = sipAccReg.getPollingPeriod();
diff --git a/src/net/java/sip/communicator/service/protocol/sip/SipAccountID.java b/src/net/java/sip/communicator/service/protocol/sip/SipAccountID.java
index 6166427..a8fd65b 100644
--- a/src/net/java/sip/communicator/service/protocol/sip/SipAccountID.java
+++ b/src/net/java/sip/communicator/service/protocol/sip/SipAccountID.java
@@ -185,6 +185,27 @@ public class SipAccountID
putAccountProperty(ProtocolProviderFactory.PROXY_AUTO_CONFIG,
proxyAutoConfigure);
}
+
+ /**
+ * Is proxy force bypass configured.
+ * @return <tt>true</tt> if proxy is force bypass configured.
+ */
+ public boolean isProxyForceBypassConfigure()
+ {
+ return getAccountPropertyBoolean(
+ ProtocolProviderFactory.FORCE_PROXY_BYPASS, false);
+ }
+
+ /**
+ * Sets force bypass configuration of proxy enabled or disabled.
+ * @param proxyForceBypassConfigure <tt>true</tt> if the proxy will bypassed
+ * needed for HA scenarios with load balancing.
+ */
+ public void setProxyForceBypassConfigure(boolean proxyForceBypassConfigure)
+ {
+ putAccountProperty(ProtocolProviderFactory.FORCE_PROXY_BYPASS,
+ proxyForceBypassConfigure);
+ }
/**
* Sets the proxy port.