예제 #1
0
        static public void m_deviceButtonEvents(object sender, _DeviceListenerEventArgs e)
        {
            PlantronicsMessage eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_BUTTON_PRESS);

            switch (e.HeadsetButtonPressed)
            {
            case HeadsetButton.HeadsetButton_Talk:
                //WebSocket.buttonPressResponse();
                eventMessage.AddToPayload("buttonName", "talk");
                BroadcastMessage(eventMessage);
                break;

            case HeadsetButton.HeadsetButton_Mute:
                eventMessage.AddToPayload("buttonName", "mute");
                BroadcastMessage(eventMessage);
                break;

            case HeadsetButton.HeadsetButton_VolumeUp:
                eventMessage.AddToPayload("buttonName", "volumeUp");
                BroadcastMessage(eventMessage);
                break;

            case HeadsetButton.HeadsetButton_VolumeDown:
                eventMessage.AddToPayload("buttonName", "volumeDown");
                BroadcastMessage(eventMessage);
                break;

            case HeadsetButton.HeadsetButton_MuteHeld:
                eventMessage.AddToPayload("buttonName", "muteHeld");
                BroadcastMessage(eventMessage);
                break;

            case HeadsetButton.HeadsetButton_VolumeUpHeld:
                eventMessage.AddToPayload("buttonName", "volumeUpHeld");
                BroadcastMessage(eventMessage);
                break;

            case HeadsetButton.HeadsetButton_VolumeDownHeld:
                eventMessage.AddToPayload("buttonName", "volumeDownHeld");
                BroadcastMessage(eventMessage);
                break;

            case HeadsetButton.HeadsetButton_Flash:
                eventMessage.AddToPayload("buttonName", "flash");
                BroadcastMessage(eventMessage);
                break;
            }
        }
예제 #2
0
 public static void m_deviceButtonEvents(object sender, _DeviceListenerEventArgs e)
 {
     PlantronicsMessage eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_BUTTON_PRESS);
     switch (e.HeadsetButtonPressed)
     {
         case HeadsetButton.HeadsetButton_Talk:
             //WebSocket.buttonPressResponse();
             eventMessage.AddToPayload("buttonName", "talk");
             BroadcastMessage(eventMessage);
             break;
         case HeadsetButton.HeadsetButton_Mute:
             eventMessage.AddToPayload("buttonName", "mute");
             BroadcastMessage(eventMessage);
             break;
         case HeadsetButton.HeadsetButton_VolumeUp:
             eventMessage.AddToPayload("buttonName", "volumeUp");
             BroadcastMessage(eventMessage);
             break;
         case HeadsetButton.HeadsetButton_VolumeDown:
             eventMessage.AddToPayload("buttonName", "volumeDown");
             BroadcastMessage(eventMessage);
             break;
         case HeadsetButton.HeadsetButton_MuteHeld:
             eventMessage.AddToPayload("buttonName", "muteHeld");
             BroadcastMessage(eventMessage);
             break;
         case HeadsetButton.HeadsetButton_VolumeUpHeld:
             eventMessage.AddToPayload("buttonName", "volumeUpHeld");
             BroadcastMessage(eventMessage);
             break;
         case HeadsetButton.HeadsetButton_VolumeDownHeld:
             eventMessage.AddToPayload("buttonName", "volumeDownHeld");
             BroadcastMessage(eventMessage);
             break;
         case HeadsetButton.HeadsetButton_Flash:
             eventMessage.AddToPayload("buttonName", "flash");
             BroadcastMessage(eventMessage);
             break;
     }
 }
예제 #3
0
        static void m_deviceListenerEvents_Handler(object sender, _DeviceListenerEventArgs e)
        {
            switch (e.DeviceEventType)
            {
            case DeviceEventType.DeviceEventType_ATDButtonPressed:
            case DeviceEventType.DeviceEventType_ATDStateChanged:
                // Console.WriteLine(string.Format("DL Event: ATDStateChanged:{0}", e.ATDStateChange));
                break;

            case DeviceEventType.DeviceEventType_BaseButtonPressed:
            case DeviceEventType.DeviceEventType_BaseStateChanged:
                // Console.WriteLine(string.Format("DL Event: BaseButton:{0} BaseState:{1}", e.BaseButtonPressed, e.BaseStateChange));
                break;

            case DeviceEventType.DeviceEventType_HeadsetButtonPressed:
            case DeviceEventType.DeviceEventType_HeadsetStateChanged:
                // Console.WriteLine(string.Format("DL Event: HeadsetButton:{0} HeadsetState:{1}", e.HeadsetButtonPressed, e.HeadsetButtonPressed));
                break;

            default:
                // Console.WriteLine("DL Event");
                break;
            }
        }
예제 #4
0
        static void m_deviceListenerEvents_HandlerMethods(object sender, _DeviceListenerEventArgs e)
        {
            PlantronicsMessage eventMessage = null;

            switch (e.DeviceEventType)
            {
            case DeviceEventType.DeviceEventType_HeadsetStateChanged:
                switch (e.HeadsetStateChange)
                {
                case HeadsetStateChange.HeadsetStateChange_Don:
                    eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_WEAR_STATE_CHANGED);
                    eventMessage.Payload.Add("worn", "true");
                    BroadcastMessage(eventMessage);
                    break;

                case HeadsetStateChange.HeadsetStateChange_Doff:
                    eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_WEAR_STATE_CHANGED);
                    eventMessage.Payload.Add("worn", "false");
                    BroadcastMessage(eventMessage);
                    break;

                case HeadsetStateChange.HeadsetStateChange_Near:
                    eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_PROXIMITY);
                    eventMessage.Payload.Add("proximity", "near");
                    BroadcastMessage(eventMessage);
                    break;

                case HeadsetStateChange.HeadsetStateChange_Far:
                    eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_PROXIMITY);
                    eventMessage.Payload.Add("proximity", "far");
                    BroadcastMessage(eventMessage);
                    break;

                case HeadsetStateChange.HeadsetStateChange_ProximityDisabled:
                    break;

                case HeadsetStateChange.HeadsetStateChange_ProximityEnabled:
                    break;

                case HeadsetStateChange.HeadsetStateChange_ProximityUnknown:
                    break;

                case HeadsetStateChange.HeadsetStateChange_InRange:
                    RegisterForProximity(true);
                    break;

                case HeadsetStateChange.HeadsetStateChange_OutofRange:
                    break;

                case HeadsetStateChange.HeadsetStateChange_Docked:
                    eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_DOCKED);
                    eventMessage.Payload.Add("docked", "true");
                    BroadcastMessage(eventMessage);
                    break;

                case HeadsetStateChange.HeadsetStateChange_UnDocked:
                    eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_DOCKED);
                    eventMessage.Payload.Add("docked", "false");
                    BroadcastMessage(eventMessage);
                    break;

                default:
                    break;
                }
                break;

            default:
                break;
            }
        }
예제 #5
0
 static void m_deviceListenerEvents_HandlerMethods(object sender, _DeviceListenerEventArgs e)
 {
     PlantronicsMessage eventMessage = null;
     switch (e.DeviceEventType)
     {
         case DeviceEventType.DeviceEventType_HeadsetStateChanged:
             switch (e.HeadsetStateChange)
             {
                 case HeadsetStateChange.HeadsetStateChange_Don:
                     eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_WEAR_STATE_CHANGED);
                     eventMessage.Payload.Add("worn", "true");
                     BroadcastMessage(eventMessage);
                     break;
                 case HeadsetStateChange.HeadsetStateChange_Doff:
                     eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_WEAR_STATE_CHANGED);
                     eventMessage.Payload.Add("worn", "false");
                     BroadcastMessage(eventMessage);
                     break;
                 case HeadsetStateChange.HeadsetStateChange_Near:
                     eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_PROXIMITY);
                     eventMessage.Payload.Add("proximity", "near");
                     BroadcastMessage(eventMessage);
                     break;
                 case HeadsetStateChange.HeadsetStateChange_Far:
                     eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_PROXIMITY);
                     eventMessage.Payload.Add("proximity", "far");
                     BroadcastMessage(eventMessage);
                     break;
                 case HeadsetStateChange.HeadsetStateChange_ProximityDisabled:
                     break;
                 case HeadsetStateChange.HeadsetStateChange_ProximityEnabled:
                     break;
                 case HeadsetStateChange.HeadsetStateChange_ProximityUnknown:
                     break;
                 case HeadsetStateChange.HeadsetStateChange_InRange:
                     RegisterForProximity(true);
                     break;
                 case HeadsetStateChange.HeadsetStateChange_OutofRange:
                     break;
                 case HeadsetStateChange.HeadsetStateChange_Docked:
                     eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_DOCKED);
                     eventMessage.Payload.Add("docked", "true");
                     BroadcastMessage(eventMessage);
                     break;
                 case HeadsetStateChange.HeadsetStateChange_UnDocked:
                     eventMessage = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_DOCKED);
                     eventMessage.Payload.Add("docked", "false");
                     BroadcastMessage(eventMessage);
                     break;
                 default:
                     break;
             }
             break;
         default:
             break;
     }
 }
예제 #6
0
 static void m_deviceListenerEvents_Handler(object sender, _DeviceListenerEventArgs e)
 {
     switch (e.DeviceEventType)
     {
         case DeviceEventType.DeviceEventType_ATDButtonPressed:
         case DeviceEventType.DeviceEventType_ATDStateChanged:
             // Console.WriteLine(string.Format("DL Event: ATDStateChanged:{0}", e.ATDStateChange));
             break;
         case DeviceEventType.DeviceEventType_BaseButtonPressed:
         case DeviceEventType.DeviceEventType_BaseStateChanged:
             // Console.WriteLine(string.Format("DL Event: BaseButton:{0} BaseState:{1}", e.BaseButtonPressed, e.BaseStateChange));
             break;
         case DeviceEventType.DeviceEventType_HeadsetButtonPressed:
         case DeviceEventType.DeviceEventType_HeadsetStateChanged:
             // Console.WriteLine(string.Format("DL Event: HeadsetButton:{0} HeadsetState:{1}", e.HeadsetButtonPressed, e.HeadsetButtonPressed));
             break;
         default:
             // Console.WriteLine("DL Event");
             break;
     }
 }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnHeadsetStateChanged(object sender, _DeviceListenerEventArgs e)
        {
            Debug.WriteLine("OnHeadsetStateChanged " + e.ToString());
            _traceContext.Status("OnHeadsetStateChanged " + e.ToString());
            if (e.HeadsetStateChange == HeadsetStateChange.HeadsetStateChange_InRange)
            {

                _notificationService.Notify("Headset in range", "Headset", NotificationType.Info, TimeSpan.FromSeconds(3));
                _statusManager.SetLastStatus();
                _interactionManager.PickupHeldCall();
            }
            else if (e.HeadsetStateChange == HeadsetStateChange.HeadsetStateChange_OutofRange)
            {
                _notificationService.Notify("Headset out of range", "Headset", NotificationType.Warning, TimeSpan.FromSeconds(3));
                _statusManager.SetToAwayFromDesk();
                _interactionManager.HoldCall();
            }
        }
예제 #8
0
        void m_deviceListenerEvents_HandlerMethods(object sender, _DeviceListenerEventArgs e)
        {
            DebugPrint(MethodInfo.GetCurrentMethod().Name, "Spokes: Received Spokes Event: " + e.ToString());

            switch (e.DeviceEventType)
            {
                case DeviceEventType.DeviceEventType_HeadsetStateChanged:
                    switch (e.HeadsetStateChange)
                    {
                        case HeadsetStateChange.HeadsetStateChange_Don:
                            OnPutOn(new WearingStateArgs(true, false));
                            break;
                        case HeadsetStateChange.HeadsetStateChange_Doff:
                            OnTakenOff(new WearingStateArgs(false, false));
                            break;
                        case HeadsetStateChange.HeadsetStateChange_Near:
                            OnNear(EventArgs.Empty);
                            break;
                        case HeadsetStateChange.HeadsetStateChange_Far:
                            OnFar(EventArgs.Empty);
                            break;
                        case HeadsetStateChange.HeadsetStateChange_ProximityDisabled:
                            // Note: intepret this event as that the mobile phone has gone out of Bluetooth
                            // range and is no longer paired to the headset.
                            // Lock the PC, but immediately re-enable proximity
                            OnProximityDisabled(EventArgs.Empty);
                            // Immediately re-enable proximity
                            RegisterForProximity(true);
                            break;
                        case HeadsetStateChange.HeadsetStateChange_ProximityEnabled:
                            OnProximityEnabled(EventArgs.Empty);
                            break;
                        case HeadsetStateChange.HeadsetStateChange_ProximityUnknown:
                            OnProximityUnknown(EventArgs.Empty);
                            break;
                        case HeadsetStateChange.HeadsetStateChange_InRange:
                            OnInRange(EventArgs.Empty);
                            //// Immediately re-enable proximity
                            //RegisterForProximity(true);
                            //// Request headset serial number (maybe user paired with another?)
                            //RequestSingleSerialNumber(SerialNumberTypes.Headset);
                            // New, get all the device state info on inrange trigger:
                            // now poll for current state (proximity, mobile call status, donned status, mute status)
                            GetInitialDeviceState();

                            // tell app to look again at battery level (headset in range)
                            OnBatteryLevelChanged(EventArgs.Empty);
                            break;
                        case HeadsetStateChange.HeadsetStateChange_OutofRange:
                            OnOutOfRange(EventArgs.Empty);
                            OnSerialNumber(new SerialNumberArgs("", SerialNumberTypes.Headset));

                            // tell app to look again at battery level (headset out of range / disconnected)
                            OnBatteryLevelChanged(EventArgs.Empty);
                            break;
                        case HeadsetStateChange.HeadsetStateChange_BatteryLevel:
                            // note; on legend we always get a battery level when docking...
                            // what is in this event, anything we can use to infer docked?
                            DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("HeadsetStateChanged: BatteryLevel"));
                            if (!m_ignorenextbattlevevent && (!m_lastdocked && m_battlevEventCount < 10)) // TEST, allow 10 of these thru so it gets docking more quickly on legend!
                            {
                                // Only if we were undocked and there were no battery level events
                                // since we last undocked should we detect batt charge status (docking status).
                                // This is so this only happens once, otherwise we get stuck in a loop
                                // Because looking at the battery info triggers another batterylevel changed
                                // event!
                                m_ignorenextundockedevent = true;
                                m_ignorenextbattlevevent = true;
                                m_lastdocked = DetectLegendDockedState(false); // NOTE: will ALWAYS trigger another batterylevel change event
                                // AND another UnDocked event if we are undocked!
                                m_battlevEventCount++;
                            }
                            else
                            {
                                if (m_ignorenextbattlevevent) m_ignorenextbattlevevent = false;
                                if (m_lastdocked) m_ignorenextundockedevent = false;
                            }

                            // tell app to look at battery level (it has changed)
                            OnBatteryLevelChanged(EventArgs.Empty);
                            break;
                        case HeadsetStateChange.HeadsetStateChange_Docked:
                        case HeadsetStateChange.HeadsetStateChange_DockedCharging:  // new, for legend, but is v SLOW, sometimes never comes
                            // only send to app the docked value if it is different to m_lastdocked (i.e. if it has changed)
                            if (!m_lastdocked) OnDocked(new DockedStateArgs(true, false));
                            m_lastdocked = true;
                            m_battlevEventCount = 0;
                            break;
                        case HeadsetStateChange.HeadsetStateChange_UnDocked:
                            if (!m_ignorenextundockedevent)
                            {
                                // only send to app the docked value if it is different to m_lastdocked (i.e. if it has changed)
                                if (m_lastdocked) OnUnDocked(new DockedStateArgs(false, false));
                                if (m_lastdocked) m_battlevEventCount = 0; // if we were docked before, set battlev event count to zero
                                // i.e. we would like to check the next battery level event
                                m_lastdocked = false;
                            }
                            m_ignorenextundockedevent = false;
                            break;
                        case HeadsetStateChange.HeadsetStateChange_MuteON:
                            OnMuteChanged(new MuteChangedArgs(true));
                            break;
                        case HeadsetStateChange.HeadsetStateChange_MuteOFF:
                            OnMuteChanged(new MuteChangedArgs(false));
                            break;
                        case HeadsetStateChange.HeadsetStateChange_MonoON:
                            OnLineActiveChanged(new LineActiveChangedArgs(true));
                            break;
                        case HeadsetStateChange.HeadsetStateChange_MonoOFF:
                            OnLineActiveChanged(new LineActiveChangedArgs(false));
                            break;
                        // LC add handler for headsetstate change serial number
                        // We should be able to extract serial number at this point
                        case HeadsetStateChange.HeadsetStateChange_SerialNumber:
                            DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("HeadsetStateChanged: SerialNumber"));
                            ReadSerialNumber(SerialNumberTypes.Headset);
                            break;
                        default:
                            break;
                    }
                    break;
                default:
                    break;
            }
        }
예제 #9
0
 // print device listner events
 void m_deviceListenerEvents_Handler(object sender, _DeviceListenerEventArgs e)
 {
     switch (e.DeviceEventType)
     {
         case DeviceEventType.DeviceEventType_ATDButtonPressed:
             break;
         case DeviceEventType.DeviceEventType_ATDStateChanged:
             DeviceListener_ATDStateChanged(sender, e);
             break;
         case DeviceEventType.DeviceEventType_BaseButtonPressed:
             DeviceListener_BaseButtonPressed(sender, e);
             break;
         case DeviceEventType.DeviceEventType_BaseStateChanged:
             DeviceListener_BaseStateChanged(sender, e);
             break;
         case DeviceEventType.DeviceEventType_HeadsetButtonPressed:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, "DeviceEventType_HeadsetButtonPressed "+e.HeadsetButtonPressed.ToString());
             break;
         case DeviceEventType.DeviceEventType_HeadsetStateChanged:
         default:
             break;
     }
 }
예제 #10
0
 // Respond to various base state changes by updating our knowledge of multiline active/held states...
 void DeviceListener_BaseStateChanged(object sender, _DeviceListenerEventArgs e)
 {
     // write your own code to react to the state change
     switch (e.BaseStateChange)
     {
         case BaseStateChange.BaseStateChange_Unknown:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: Unknown"));
             break;
         case BaseStateChange.BaseStateChange_PstnLinkEstablished:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: PstnLinkEstablished"));
             GetActiveStates();
             OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags));
             break;
         case BaseStateChange.BaseStateChange_PstnLinkDown:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: PstnLinkDown"));
             GetActiveStates();
             OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags));
             break;
         case BaseStateChange.BaseStateChange_VoipLinkEstablished:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: VoipLinkEstablished"));
             GetActiveStates();
             OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags));
             break;
         case BaseStateChange.BaseStateChange_VoipLinkDown:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: VoipLinkDown"));
             GetActiveStates();
             OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags));
             break;
         case BaseStateChange.BaseStateChange_AudioMixer:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: AudioMixer"));
             break;
         case BaseStateChange.BaseStateChange_RFLinkWideBand:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: RFLinkWideBand"));
             break;
         case BaseStateChange.BaseStateChange_RFLinkNarrowBand:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: RFLinkNarrowBand"));
             break;
         case BaseStateChange.BaseStateChange_MobileLinkEstablished:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: MobileLinkEstablished"));
             GetActiveStates();
             OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags));
             break;
         case BaseStateChange.BaseStateChange_MobileLinkDown:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: MobileLinkDown"));
             GetActiveStates();
             OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags));
             break;
         case BaseStateChange.BaseStateChange_InterfaceStateChanged:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: InterfaceStateChanged"));
             GetHoldStates();
             OnMultiLineStateChanged(new MultiLineStateArgs(m_activeHeldFlags));
             break;
         case BaseStateChange.BaseStateChange_AudioLocationChanged:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: AudioLocationChanged"));
             break;
         // LC add handler for basestate change serial number
         // We should be able to extract serial number at this point
         case BaseStateChange.BaseStateChange_SerialNumber:
             DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseStateChanged: SerialNumber"));
             ReadSerialNumber(SerialNumberTypes.Base);
             break;
     }
 }
예제 #11
0
 // Respond to various base button presses by passing button pressed event to app event handler
 private void DeviceListener_BaseButtonPressed(object sender, _DeviceListenerEventArgs e)
 {
     DebugPrint(MethodInfo.GetCurrentMethod().Name, String.Format("BaseButtonPressed: {0}", e.BaseButtonPressed.ToString()));
     OnBaseButtonPress(new BaseButtonPressArgs(e.BaseButtonPressed));
 }
예제 #12
0
 //        #region DeviceListener events
 void DeviceListener_ATDStateChanged(object sender, _DeviceListenerEventArgs e)
 {
     //HANDLE ATD State changes
     switch (e.ATDStateChange)
     {
         case ATDStateChange.ATDStateChange_MobileInComing:
             m_mobIncoming = true; // set on call flag
             OnOnMobileCall(new OnMobileCallArgs(m_mobIncoming, MobileCallState.Ringing));
             break;
         case ATDStateChange.ATDStateChange_MobileOnCall:
             OnOnMobileCall(new OnMobileCallArgs(m_mobIncoming, MobileCallState.OnCall));
             break;
         case ATDStateChange.ATDStateChange_MobileCallEnded:
             m_mobIncoming = false; // clear mobile call direction flag
             OnNotOnMobileCall(EventArgs.Empty);
             break;
         case ATDStateChange.ATDStateChange_MobileCallerID:
             OnMobileCallerId(new MobileCallerIdArgs(GetMobileCallerID()));
             break;
         case ATDStateChange.ATDStateChange_MobileOutGoing:
             break;
         case ATDStateChange.ATDStateChange_PstnInComingCallRingOn:
             break;
         case ATDStateChange.ATDStateChange_PstnInComingCallRingOff:
             break;
     }
 }