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;
     }
 }