Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }