예제 #1
0
        /// <summary>
        /// Update AccDataList with new AccDataList built with new configuration
        /// Delete and create only accounts with data that has changed, to avoid
        /// interruption of service if data haven't changed
        /// </summary>
        /// <param name="NewAccDataList">list of new configurated params</param>
        private void SynchronizeAccountsList(List <AccountDataSip> NewAccDataList)
        {
            AccountDataSip found = null;

            List <AccountDataSip> AccDataListCopy = new List <AccountDataSip>(AccDataList);

            foreach (AccountDataSip data in AccDataListCopy)
            {
                found = NewAccDataList.Find(x => data.Equals(x));
                if (found == null)
                {
                    AccDataList.Remove(data);
                    SipAgent.DestroyAccount(data.NumeroAbonado);
                }
                else
                {
                    NewAccDataList.Remove(found);
                }
            }
            foreach (AccountDataSip newData in NewAccDataList)
            {
                AccDataList.Add(newData);
                if ((_ProxyIP == null) || (_ProxyIP.Length == 0))
                {
                    SipAgent.CreateAccount(newData.NumeroAbonado);
                }
                else
                {
                    SipAgent.CreateAccountAndRegisterInProxy(newData.NumeroAbonado, _ProxyIP, Settings.Default.ExpireInProxy, newData.NumeroAbonado, newData.NumeroAbonado, newData.IdAgrupacion);
                }
            }
        }
예제 #2
0
            public override bool Equals(object obj)
            {
                bool ret = false;

                if (obj == null)
                {
                    return(ret);
                }
                if (this.GetType() != obj.GetType())
                {
                    return(ret);
                }

                AccountDataSip p = (AccountDataSip)obj;

                if ((p.IdAgrupacion.Equals(IdAgrupacion)) &&
                    (p.NumeroAbonado.Equals(NumeroAbonado)))
                {
                    ret = true;
                }
                return(ret);
            }