Example #1
0
 internal static void SetCurrentDomain(Domain domain)
 {
     if (HttpRequest.CurrentRequest != null)
     {
         if (HttpRequest.CurrentRequest.Session != null)
         {
             HttpRequest.CurrentRequest.Session[SESSION_ID] = domain;
         }
     }
 }
 public static IncomingSIPTrunk Load(string number,Domain domain)
 {
     IncomingSIPTrunk ret = null;
     Connection conn = ConnectionPoolManager.GetConnection(typeof(IncomingSIPTrunk));
     List<Org.Reddragonit.Dbpro.Structure.Table> tmp = conn.Select(typeof(IncomingSIPTrunk),
         new SelectParameter[] { new EqualParameter("Number", number),
         new EqualParameter("Domain",domain)});
     if (tmp.Count > 0)
         ret = (IncomingSIPTrunk)tmp[0];
     conn.CloseConnection();
     return ret;
 }
 public sDeployedDomain(Domain domain)
 {
     _name = domain.Name;
     _variables = new List<NameValuePair>();
     ClassQuery cq = new ClassQuery("Org.Reddragonit.FreeSwitchConfig.DataCore.DB.Core", "SELECT dv.Name,dv.Value FROM DomainVariable dv WHERE dv.Domain.Name = @domainName");
     IDbDataParameter[] pars = new IDbDataParameter[] { cq.CreateParameter("@domainName", domain.Name) };
     cq.Execute(pars);
     while (cq.Read())
         _variables.Add(new NameValuePair(cq[0].ToString(), cq[1].ToString()));
     cq.Close();
     _params = new List<NameValuePair>();
     cq.NewQuery("Org.Reddragonit.FreeSwitchConfig.DataCore.DB.Core", "SELECT dp.Name,dp.Value FROM DomainParameter dp WHERE dp.Domain.Name = @domainName");
     cq.Execute(pars);
     while (cq.Read())
         _params.Add(new NameValuePair(cq[0].ToString(), cq[1].ToString()));
     cq.Close();
     _groups = new List<sDeployedDomainGroup>();
     cq.NewQuery("Org.Reddragonit.FreeSwitchConfig.DataCore.DB.Phones", "SELECT egrp.Name FROM ExtensionGroup egrp WHERE egrp.Domain.Name = @domainName");
     cq.Execute(pars);
     while (cq.Read())
         _groups.Add(new sDeployedDomainGroup(cq[0].ToString(),_name));
     cq.Close();
     _internalProfile = domain.InternalProfile.Name;
     _externalProfile = domain.ExternalProfile.Name;
 }
 public static void RegenerateIncomingSIPTrunkFile(string extensionNumber, Domain domain)
 {
     if (!IsDomainDeployed(domain.Name))
     {
         Log.Trace("Creating domain " + domain.Name + " to produce an extension");
         RegenerateDomainFile(domain);
     }
     sDeployedIncomingSIPTrunk dit = new sDeployedIncomingSIPTrunk(IncomingSIPTrunk.Load(extensionNumber, domain));
     Lock();
     bool add = true;
     List<sDeployedIncomingSIPTrunk> its = itrunks;
     for (int x = 0; x < its.Count; x++)
     {
         if ((its[x].Number == dit.Number) && (its[x].DomainName == dit.DomainName))
         {
             its[x] = dit;
             add = false;
             break;
         }
     }
     if (add)
         its.Add(dit);
     itrunks = its;
     UnLock();
     _deployer.DeployIncomingSipTrunk(dit);
     EventController.TriggerEvent(new IncomingSIPTrunkDeploymentEvent(dit));
     Log.Trace("Config file for Internal SIP Trunk " + dit.Number + " has been successfully created");
 }
 public static void RegenerateExtensionFiles(string extensionNumber, Domain domain)
 {
     if (!IsDomainDeployed(domain.Name))
     {
         Log.Trace("Creating domain " + domain.Name + " to produce an extension");
         RegenerateDomainFile(domain);
     }
     Extension ext = Extension.Load(extensionNumber, domain);
     if (ext == null)
     {
         Lock();
         List<sDeployedExtension> exts = extensions;
         for (int x = 0; x < exts.Count; x++)
         {
             if ((exts[x].Number == extensionNumber) || (exts[x].DomainName == domain.Name))
             {
                 exts.RemoveAt(x);
                 break;
             }
         }
         extensions = exts;
         UnLock();
         _deployer.DestroyExtension(domain.Name, extensionNumber);
         EventController.TriggerEvent(new ExtensionDestroyedEvent(extensionNumber,domain.Name));
     }
     else
     {
         sDeployedExtension sext = new sDeployedExtension(ext);
         Lock();
         List<sDeployedExtension> exts = extensions;
         bool add = true;
         for (int x = 0; x < exts.Count; x++)
         {
             if ((exts[x].Number == extensionNumber) && (exts[x].DomainName == domain.Name))
             {
                 exts[x] = sext;
                 add = false;
                 break;
             }
         }
         if (add)
             exts.Add(sext);
         extensions = exts;
         UnLock();
         _deployer.DeployExtension(sext);
         EventController.TriggerEvent(new ExtensionDeploymentEvent(sext));
         Log.Trace("Config file for extension " + extensionNumber + " has been successfully created");
         Extension ex = Extension.Load(extensionNumber, domain);
         VoiceMail vm = VoiceMail.Load(ex.Number,ex.Context);
         if ((vm != null) && vm.ResetVMPassword)
         {
             vm.ResetVMPassword = false;
             vm.Update();
         }
     }
 }
 public static void RegenerateDomainFile(Domain domain)
 {
     sDeployedDomain dom = new sDeployedDomain(domain);
     Lock();
     List<sDeployedDomain> doms = domains;
     bool add = true;
     for (int x = 0; x < doms.Count; x++)
     {
         if (doms[x].Name == dom.Name)
         {
             doms[x] = dom;
             add = false;
             break;
         }
     }
     if (add)
         doms.Add(dom);
     domains = doms;
     UnLock();
     _deployer.DeployDomain(dom);
     EventController.TriggerEvent(new DomainDeploymentEvent(dom));
 }