Beispiel #1
0
        // print session events
        static void m_sessionEvents_CallStateChanged(object sender, _CallStateEventArgs e)
        {
            string id = e.CallId != null?e.CallId.Id.ToString() : "none";

            IHostCommandExt hostCommandExt = m_activeDevice.HostCommand as IHostCommandExt;

            //the user has accepted the call
            if (e.Action.Equals(CallState.CallState_AcceptCall))
            {
                Console.WriteLine("Call has been answered by headset - sending event to web browser, audio link state = " + hostCommandExt.AudioLinkState);
                PlantronicsMessage m = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_ACCEPT_CALL);
                m.AddToPayload("offer", offer);
                BroadcastMessage(m);
            }
            else if (e.Action.Equals(CallState.CallState_TerminateCall))
            {
                Console.WriteLine("Call has been terminated, killing audio channel");
                PlantronicsMessage m = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_CALL_TERMINATE);
                BroadcastMessage(m);
                offer  = null;
                callId = 0;
            }
        }
Beispiel #2
0
 // print session events
 void m_sessionEvents_CallStateChanged(object sender, _CallStateEventArgs e)
 {
     string id = e.CallId != null ? e.CallId.Id.ToString() : "none";
 }
Beispiel #3
0
        // print session events
        static void m_sessionEvents_CallStateChanged(object sender, _CallStateEventArgs e)
        {
            string id = e.CallId != null ? e.CallId.Id.ToString() : "none";
            IHostCommandExt hostCommandExt = m_activeDevice.HostCommand as IHostCommandExt;
            //the user has accepted the call
            if (e.Action.Equals(CallState.CallState_AcceptCall))
            {

                Console.WriteLine("Call has been answered by headset - sending event to web browser, audio link state = " + hostCommandExt.AudioLinkState);
                PlantronicsMessage m = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_ACCEPT_CALL);
                m.AddToPayload("offer", offer);
                BroadcastMessage(m);

            }
            else if (e.Action.Equals(CallState.CallState_TerminateCall))
            {
                Console.WriteLine("Call has been terminated, killing audio channel");
                PlantronicsMessage m = new PlantronicsMessage(PlantronicsMessage.MESSAGE_TYPE_EVENT, PlantronicsMessage.EVENT_CALL_TERMINATE);
                BroadcastMessage(m);
                offer = null;
                callId = 0;

            }
        }
Beispiel #4
0
        // print session manager events
        void m_sessionComManager_CallStateChanged(object sender, _CallStateEventArgs e)
        {
            DebugPrint(MethodInfo.GetCurrentMethod().Name, "Spokes: call state event = " + e.ToString());

            switch (e.Action)
            {
                case CallState.CallState_CallRinging:
                    m_voipIncoming = true;
                    // Getting here indicates user is ON A CALL!
                    DebugPrint(MethodInfo.GetCurrentMethod().Name, "Spokes: Calling activity detected!" + e.ToString());
                    OnOnCall(new OnCallArgs(e.CallId.Id, e.CallSource, m_voipIncoming, OnCallCallState.Ringing));
                    break;
                case CallState.CallState_MobileCallRinging:
                    m_mobIncoming = true;
                    // user incoming mobile call
                    DebugPrint(MethodInfo.GetCurrentMethod().Name, "Spokes: Mobile Calling activity detected!" + e.ToString());
                    OnOnMobileCall(new OnMobileCallArgs(m_mobIncoming, MobileCallState.Ringing));
                    break;
                case CallState.CallState_MobileCallInProgress:
                    DebugPrint(MethodInfo.GetCurrentMethod().Name, "Spokes: Mobile Calling activity detected!" + e.ToString());
                    OnOnMobileCall(new OnMobileCallArgs(m_mobIncoming, MobileCallState.OnCall));
                    break;
                case CallState.CallState_AcceptCall:
                case CallState.CallState_CallInProgress:
                    DebugPrint(MethodInfo.GetCurrentMethod().Name, "Spokes: Call was ansswered/in progress!" + e.ToString());
                    OnOnCall(new OnCallArgs(e.CallId.Id, e.CallSource, m_voipIncoming, OnCallCallState.OnCall));
                    OnCallAnswered(new CallAnsweredArgs(e.CallId.Id, e.CallSource));
                    break;
                case CallState.CallState_HoldCall:
                case CallState.CallState_Resumecall:
                case CallState.CallState_TransferToHeadSet:
                case CallState.CallState_TransferToSpeaker:
                    // Getting here indicates user is ON A CALL!
                    DebugPrint(MethodInfo.GetCurrentMethod().Name, "Spokes: Calling activity detected!" + e.ToString());
                    OnOnCall(new OnCallArgs(e.CallId.Id, e.CallSource, m_voipIncoming, OnCallCallState.OnCall));
                    break;
                case CallState.CallState_MobileCallEnded:
                    m_mobIncoming = false;
                    // Getting here indicates user HAS FINISHED A CALL!
                    DebugPrint(MethodInfo.GetCurrentMethod().Name, "Spokes: Mobile Calling activity ended." + e.ToString());
                    OnNotOnMobileCall(EventArgs.Empty);
                    break;
                case CallState.CallState_CallEnded:
                case CallState.CallState_CallIdle:
                case CallState.CallState_RejectCall:
                case CallState.CallState_TerminateCall:
                    m_voipIncoming = false;
                    // Getting here indicates user HAS FINISHED A CALL!
                    DebugPrint(MethodInfo.GetCurrentMethod().Name, "Spokes: Calling activity ended." + e.ToString());
                    OnNotOnCall(new NotOnCallArgs(e.CallId.Id, e.CallSource));
                    OnCallEnded(new CallEndedArgs(e.CallId.Id, e.CallSource));
                    break;
                default:
                    // ignore other call state events
                    break;
            }
        }