/// <summary> /// Loads data to UI. /// </summary> private void LoadData() { try{ SIP_Settings settings = m_pVirtualServer.SystemSettings.SIP; m_pTabGeneral_Enabled.Checked = settings.Enabled; if ((settings.ProxyMode & LumiSoft.Net.SIP.Proxy.SIP_ProxyMode.B2BUA) != 0) { m_pTabGeneral_ProxyType.SelectedIndex = 0; } else { m_pTabGeneral_ProxyType.SelectedIndex = 1; } m_pTabGeneral_MinExpires.Value = Convert.ToDecimal(settings.MinimumExpires); foreach (IPBindInfo binding in settings.Binds) { ListViewItem it = new ListViewItem(); it.Text = binding.HostName; if (binding.IP.ToString() == "0.0.0.0") { it.SubItems.Add("Any IPv4"); } else if (binding.IP.ToString() == "0:0:0:0:0:0:0:0") { it.SubItems.Add("Any IPv6"); } else { it.SubItems.Add(binding.IP.ToString()); } it.SubItems.Add(binding.Protocol.ToString()); it.SubItems.Add(binding.Port.ToString()); it.SubItems.Add(binding.SslMode.ToString()); it.SubItems.Add(Convert.ToString(binding.Certificate != null)); it.Tag = binding; m_pTabGeneral_Bindings.Items.Add(it); } foreach (SIP_Gateway gw in m_pVirtualServer.SystemSettings.SIP.Gateways) { ListViewItem item = new ListViewItem(gw.UriScheme); item.SubItems.Add(gw.Transport); item.SubItems.Add(gw.Host); item.SubItems.Add(gw.Port.ToString()); item.Tag = gw; m_pTabGateways_Gateways.Items.Add(item); } m_pTabGateways_Gateways_SelectedIndexChanged(null, null); } catch (Exception x) { wfrm_sys_Error frm = new wfrm_sys_Error(x, new System.Diagnostics.StackTrace()); frm.ShowDialog(this); } }
/// <summary> /// Saves data. /// </summary> /// <param name="confirmSave">Specifies is save confirmation UI is showed.</param> private void SaveData(bool confirmSave) { try{ SIP_Settings settings = m_pVirtualServer.SystemSettings.SIP; settings.Enabled = m_pTabGeneral_Enabled.Checked; if (m_pTabGeneral_ProxyType.SelectedIndex == 0) { settings.ProxyMode = LumiSoft.Net.SIP.Proxy.SIP_ProxyMode.Registrar | LumiSoft.Net.SIP.Proxy.SIP_ProxyMode.B2BUA; } else { settings.ProxyMode = LumiSoft.Net.SIP.Proxy.SIP_ProxyMode.Registrar | LumiSoft.Net.SIP.Proxy.SIP_ProxyMode.Statefull; } settings.MinimumExpires = (int)m_pTabGeneral_MinExpires.Value; // IP binds List <IPBindInfo> binds = new List <IPBindInfo>(); foreach (ListViewItem it in m_pTabGeneral_Bindings.Items) { binds.Add((IPBindInfo)it.Tag); } settings.Binds = binds.ToArray(); if (m_pVirtualServer.SystemSettings.HasChanges) { if (!confirmSave || MessageBox.Show(this, "You have changes settings, do you want to save them ?", "Confirm:", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { m_pVirtualServer.SystemSettings.Commit(); } } } catch (Exception x) { wfrm_sys_Error frm = new wfrm_sys_Error(x, new System.Diagnostics.StackTrace()); frm.ShowDialog(this); } }