Ejemplo n.º 1
0
        private static TlfNet CreateIpNet(string number, Scv scv)
        {
            TlfNet net = new TlfNet();

            net.Id = "Net_ATS_IP_" + scv.Id;

            Rs <GwTlfRs> rs = Top.Registry.GetRs <GwTlfRs>(number);
            string       ScvIp;

            if (rs.Content == null)
            {
                //Si el recurso no tiene contenido actualizado, la IP es de los datos de configuración (principal)
                string id;
                ScvIp = scv.GetProxyIp(out id);
                if (rs.IsUnreferenced)
                {
                    //Para que recién creado por defecto aparezca sin aspa, le añado un recurso
                    GwTlfRs proxyRs = new GwTlfRs();
                    proxyRs.GwIp = ScvIp;
                    rs.Reset(null, proxyRs);
                }
            }
            else
            {
                //Utilizo los datos del recurso (actualizado con el activo)
                ScvIp = ((GwTlfRs)rs.Content).GwIp;
            }
            SipLine line = new SipLine(rs, ScvIp, true);

            net.Lines.Add(line);
            net.RsTypes.Add(new RsIdxType(net.Lines.Count - 1, 0, TipoInterface.TI_IP_PROXY));
            net.Routes.Add(0);
            return(net);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Dado un user name y una ip, busca el recurso entre los SCV IP
        /// </summary>
        /// <param name="id"></param>
        /// <param name="host"></param>
        /// <returns></returns>
        private CfgRecursoEnlaceInterno lookForResourceInScv(string id, string ip)
        {
            string idEquipo;
            CfgRecursoEnlaceInterno recurso = null;
            ulong resultNumber = 0;

            if (_MiScv.GetProxyIp(out idEquipo) == ip)
            //Pertenece a mi SCV
            {
                //Es un TOP o un recurso de telefonía IP interno
                recurso               = new CfgRecursoEnlaceInterno();
                recurso.Prefijo       = Cd40Cfg.PP_DST;
                recurso.NombreRecurso = id;
                recurso.NumeroAbonado = id; //string.Format("{0}@{1}", id, host.IpRed1);
            }
            else
            {
                foreach (Scv scv in _OtrosScv.Values)
                {
                    string ipAddScv = scv.GetProxyIp(out idEquipo);
                    if ((scv.EsCentralIp) && (ipAddScv == ip))
                    //Pertenece a otro SCV IP
                    {
                        try
                        {
                            resultNumber = Convert.ToUInt64(id);
                            if (scv.IsInRangeScv(resultNumber))
                            {
                                recurso               = new CfgRecursoEnlaceInterno();
                                recurso.Prefijo       = Cd40Cfg.ATS_DST;
                                recurso.NumeroAbonado = id;
                                recurso.NombreRecurso = string.Format("{0}@{1}", id, ipAddScv);
                                break;
                            }
                        }
                        catch
                        {
                            return(null);
                        }
                    }
                }
            }
            return(recurso);
        }