public override void LoadInitialConfiguration() { lock (_lock) { Hashtable ht = new Hashtable(); ClassQuery cq = new ClassQuery("Org.Reddragonit.FreeSwitchConfig.Site.BaseComponents", "SELECT vr.AttachedExtension.Context.Name, vr.AttachedExtension.Domain.Name, vr.AttachedExtension.Number, " + "vr.Type,vr.AttachedExtension.Domain.VoicemailTimeout, vr.EndWithVoicemail, vr.StartDate, " + "vr.EndDate, vr.BridgeExtension.Number, vr.BridgeExtension.Domain.Name, " + "vr.GatewayNumber, vr.OutGateway.Name, vr.AudioFileString, vr.ExtensionReference " + " FROM VacationRoute vr " + " ORDER BY vr.AttachedExtension.Context.Name"); cq.Execute(); string curContext = ""; ArrayList vcrs = new ArrayList(); while (cq.Read()) { if (curContext != cq[0].ToString()) { if (vcrs.Count > 0) ht.Add(curContext, vcrs); vcrs = new ArrayList(); curContext = cq[0].ToString(); } Hashtable vcr = new Hashtable(); vcr.Add(_OWNING_EXTENSION_FIELD_ID, new sDomainExtensionPair(cq[2].ToString(), cq[1].ToString()).ToString()); vcr.Add(_TYPE_FIELD_ID, (VacationRouteRedirectTypes)cq[3]); vcr.Add(_VOICEMAIL_TIMEOUT_FIELD_ID, cq.GetInt32(4)); vcr.Add(_END_WITH_VM_FIELD_ID, cq.GetBoolean(5)); vcr.Add(_START_DATE_FIELD_ID, cq.GetDateTime(6)); vcr.Add(_END_DATE_FIELD_ID, cq.GetDateTime(7)); switch ((VacationRouteRedirectTypes)cq[3]) { case VacationRouteRedirectTypes.PhoneExtension: vcr.Add(_BRIDGE_EXTENSION_FIELD_ID, new sDomainExtensionPair(cq[8].ToString(), cq[9].ToString()).ToString()); break; case VacationRouteRedirectTypes.OutGateway: vcr.Add(_GATEWAY_NUMBER_FIELD_ID, new sGatewayNumberPair(cq[10].ToString(), cq[11].ToString()).ToString()); break; case VacationRouteRedirectTypes.PlayFile: vcr.Add(_AUDIO_FILE_FIELD_ID, cq[12].ToString()); break; case VacationRouteRedirectTypes.TransferToExtension: vcr.Add(_CALL_EXTENSION_FIELD_ID, cq[13].ToString()); break; } vcrs.Add(vcr); } if (vcrs.Count > 0) ht.Add(curContext, vcrs); StoredConfiguration = ht; } }