SIPSorcery.UIHelper.HandleMonitorEvent C# (CSharp) Method

HandleMonitorEvent() public static method

public static HandleMonitorEvent ( Action action, SIPMonitorMachineEvent monitorEvent ) : void
action Action
monitorEvent SIPSorcery.SIP.App.SIPMonitorMachineEvent
return void
        public static void HandleMonitorEvent(Action<SIPMonitorMachineEvent> action, SIPMonitorMachineEvent monitorEvent)
        {
            if (Deployment.Current.Dispatcher.CheckAccess())
            {
                action(monitorEvent);
            }
            else
            {
                Deployment.Current.Dispatcher.BeginInvoke(action, monitorEvent);
            }
        }

Usage Example

Example #1
0
        private void SIPEventMonitorClient_MonitorEventReceived(SIPSorcery.SIP.App.SIPMonitorMachineEvent machineEvent)
        {
            try
            {
                if (machineEvent.MachineEventType == SIPSorcery.SIP.App.SIPMonitorMachineEventTypesEnum.SIPRegistrarBindingRemoval ||
                    machineEvent.MachineEventType == SIPSorcery.SIP.App.SIPMonitorMachineEventTypesEnum.SIPRegistrarBindingUpdate)
                {
                    LogActivityMessage(MessageLevelsEnum.Monitor, "Registrar binding update notification received");

                    if (m_sipAccountManager != null)
                    {
                        UIHelper.HandleMonitorEvent(m_sipAccountManager.SIPMonitorMachineEventHandler, machineEvent);
                    }
                }
                else if (machineEvent.MachineEventType == SIPSorcery.SIP.App.SIPMonitorMachineEventTypesEnum.SIPAccountDelete ||
                         machineEvent.MachineEventType == SIPSorcery.SIP.App.SIPMonitorMachineEventTypesEnum.SIPAccountUpdate)
                {
                    LogActivityMessage(MessageLevelsEnum.Monitor, "SIP Account change notification received");

                    if (m_sipAccountManager != null)
                    {
                        UIHelper.HandleMonitorEvent(m_sipAccountManager.SIPMonitorMachineEventHandler, machineEvent);
                    }
                }
                else if (machineEvent.MachineEventType == SIPSorcery.SIP.App.SIPMonitorMachineEventTypesEnum.SIPRegistrationAgentBindingUpdate ||
                         machineEvent.MachineEventType == SIPSorcery.SIP.App.SIPMonitorMachineEventTypesEnum.SIPRegistrationAgentBindingRemoval)
                {
                    LogActivityMessage(MessageLevelsEnum.Monitor, "SIP Registration Agent change notification received");

                    if (m_sipProviderManager != null)
                    {
                        UIHelper.HandleMonitorEvent(m_sipProviderManager.SIPMonitorMachineEventHandler, machineEvent);
                    }
                }
                else if (machineEvent.MachineEventType == SIPSorcery.SIP.App.SIPMonitorMachineEventTypesEnum.SIPDialogueCreated ||
                         machineEvent.MachineEventType == SIPSorcery.SIP.App.SIPMonitorMachineEventTypesEnum.SIPDialogueRemoved)
                {
                    LogActivityMessage(MessageLevelsEnum.Monitor, "SIP call change notification received");

                    if (m_sipCallsManager != null)
                    {
                        UIHelper.HandleMonitorEvent(m_sipCallsManager.SIPMonitorMachineEventHandler, machineEvent);
                    }
                }
            }
            catch (Exception excp)
            {
                LogActivityMessage(MessageLevelsEnum.Error, "Exception handling monitor event. " + excp.Message);
            }
        }