public static void Push(OAICommand cmd)
 {
     lock (Judgement)
     {
         if (!Judgement.ContainsKey(cmd.Invoke))
         {
             Judgement.Add(cmd.Invoke, cmd);
         }
     }
 }
 public void NodeAware(OAIEvent evt, int next)
 {
     if (STAGE_SEGMENT_NULL == this.StageSegment &&
         0 == "RS".CompareTo(evt.Event()))
     {
         this.StageSegment |= STAGE_START_SEGMENT_RS;
     }
     else if (STAGE_START_SEGMENT_RS == this.StageSegment &&
         0 == "RD".CompareTo(evt.Event()))
     {
         this.StageSegment = STAGE_SEGMENT_NULL;
         this.Stage = next;
         OAIWriteQueue.Relay().Line = (LastPacket = new OAINodeAware());
     }
 }
        /**
         *
         *
         */
        public static byte[] PBXPacket(OAICommand command)
        {
            byte[] message = Combine(GetBytes(command.PacketMessage()),
                new byte[1] { LINEBREAK });

            return PBXString(message, false);
        }
 public void StationMonitor(OAIEvent evt, int next)
 {
     if (LastPacket.Confirmation(evt))
     {
         this.Stage = next;
         OAIWriteQueue.Relay().Line = (LastPacket = new OAIMonitorStart(
             OAIMonitorStart.MONITOR_TYPE_ALL_STATIONS,
             new string[3] { "A:FFFF", "C:FFFF", "F:FFFF" }));
     }
 }
 public void SystemMonitor(OAIEvent evt, int next)
 {
     if (LastPacket.Confirmation(evt))
     {
         this.Stage = next;
         OAIWriteQueue.Relay().Line = (LastPacket = new OAIMonitorStart(
             OAIMonitorStart.MONITOR_TYPE_SYSTEM,
             new string[1] { "S:FFFF" }));
     }
 }
 public void QueryStations(OAIEvent evt, int next)
 {
     if (LastPacket.Confirmation(evt))
     {
         this.Stage = next;
         OAIWriteQueue.Relay().Line = (LastPacket = new OAIQueryListExtended(
             OAIQueryListExtended.LIST_TYPE_STATION_LIST,
             OAIQueryListExtended.MASK_STATION_LIST_USER |
             OAIQueryListExtended.MASK_STATION_LIST_IS_ADMIN |
             OAIQueryListExtended.MASK_STATION_LIST_DEVICE_TYPE));
     }
 }
 public void Reset()
 {
     Stage = STAGE_START;
     StageSegment = STAGE_SEGMENT_NULL;
     LastPacket = null;
     // Preserve any packets waiting to be written
     OAIWriteQueue.Relay().StashQueue();
 }
 /**
  *
  */
 public void QueryHuntGroups(OAIEvent evt, int next)
 {
     if (LastPacket.Confirmation(evt))
     {
         this.Stage = next;
         OAIWriteQueue.Relay().Line = (LastPacket = new OAIQueryListExtended(
             OAIQueryListExtended.LIST_TYPE_HUNT_GROUP_LIST,
             OAIQueryListExtended.MASK_STATION_LIST_USER |
             OAIQueryListExtended.MASK_HUNT_GROUP_LIST_DESC));
     }
 }
 /**
  *
  */
 public void QueryFeatures(OAIEvent evt, int next)
 {
     if (LastPacket.Confirmation(evt))
     {
         this.Stage = next;
         OAIWriteQueue.Relay().Line = (LastPacket = new OAIQueryListExtended(
             OAIQueryListExtended.LIST_TYPE_FEATURE_LIST,
             OAIQueryListExtended.MASK_FEATURE_LIST_FEAT_NUM |
             OAIQueryListExtended.MASK_FEATURE_LIST_FEAT_NAME |
             OAIQueryListExtended.MASK_FEATURE_LIST_IS_ADMIN |
             OAIQueryListExtended.MASK_FEATURE_LIST_IS_DIR |
             OAIQueryListExtended.MASK_FEATURE_LIST_IS_DIAG |
             OAIQueryListExtended.MASK_FEATURE_LIST_IS_TOGGLE));
     }
 }
 /**
  *
  */
 public void QueryDND(OAIEvent evt, int next)
 {
     if (LastPacket.Confirmation(evt))
     {
         this.Stage = next;
         OAIWriteQueue.Relay().Line = (LastPacket = new OAIQueryListExtended(
             OAIQueryListExtended.LIST_TYPE_DND_LIST,
             OAIQueryListExtended.MASK_DND_LIST_MESSAGE));
     }
 }
 public void QueryAgents(OAIEvent evt, int next)
 {
     if (LastPacket.Confirmation(evt))
     {
         this.Stage = next;
         OAIWriteQueue.Relay().Line = (LastPacket = new OAIQueryListExtended(
             OAIQueryListExtended.LIST_TYPE_ACD_AGENT,
             OAIQueryListExtended.MASK_ACD_AGENT_DESC));
     }
 }
 /**
  *
  */
 public void QueryAgent(OAIEvent evt, int next)
 {
     if (LastPacket.Confirmation(evt))
     {
         this.Stage = next;
         OAIWriteQueue.Relay().Line = (LastPacket = new OAIQueryHuntGroup(Config.MasterHuntGroup, true));
     }
 }