public static void Confirmation(OAIConfirmation confirmation)
        {
            OAICommand cmd = Pop(confirmation.Invoke());

            if (null != cmd)
            {
                // We need to reference the outcome in the command
                cmd.Bind(confirmation);

                // We need to be able to reference the command in the confirmation
                confirmation.Bind(cmd);

                // Need something here to deal with processing non-generic
                cmd.Process();
            }
        }
 public void Bind(OAIConfirmation confirm)
 {
     Confirm = confirm;
 }
        public static void ProcessConfirmation(OAIConfirmation packet)
        {
            // Make Call Confirm
            if (packet.GetType() == typeof(OAIMakeCallCF))
            {
                ((OAIMakeCallCF)packet).Process();
            }

            // Clear Connection Confirm
            if (packet.GetType() == typeof(OAIClearConnectionCF))
            {
                ((OAIClearConnectionCF)packet).Process();
            }

            // Clear Call Confirm
            if (packet.GetType() == typeof(OAIClearCallCF))
            {
                ((OAIClearCallCF)packet).Process();
            }

            // Query Hunt Group Confirm
            if (packet.GetType() == typeof(OAIQueryHuntGroupCF))
            {
                ((OAIQueryHuntGroupCF)packet).Process();
            }

            // Query List Extended Confirm
            if (packet.GetType() == typeof(OAIQueryListExtendedCF))
            {
                ((OAIQueryListExtendedCF)packet).Process();
            }

            // No Operation Confirm
            if (packet.GetType() == typeof(OAINoOperationCF))
            {
                ((OAINoOperationCF)packet).Process();
            }

            // Resync Request Confirm
            if (packet.GetType() == typeof(OAIResyncRequestCF))
            {
                ((OAIResyncRequestCF)packet).Process();
            }
        }