Esempio n. 1
0
 private void _call_CallStateChange(MyCallState state)
 {
     if (state == MyCallState.Canceled)
     {
         lock (this)
         {
             FormInComingCall f;
             if (Util.Instance.CommingCalls.TryGetValue(_call.GetCallId(), out f))
             {
                 f.Close();
             }
             Util.Instance.CommingCalls.Remove(_call.GetCallId());
         }
     }
     if (state == MyCallState.Answered)
     {
         //_call.CallDuration();
         Thread t = new Thread(delegate()
         {
             _call.CallDuration();
         });
         t.Start();
         if (!_call.IsICall)
         {
             Thread thread = new Thread(delegate()
             {
                 _call.StartCamera();
                 _call.ConnectMedia();
                 _call.ShowFormCall();
                 _call.IsShowFormCall = true;
             });
             thread.Start();
         }
     }
 }
 private void _call_CallStateChange(MyCallState state)
 {
     if (state == MyCallState.Answered)
     {
         _call.AddUserToRoom();
         MessageBox.Show("Ok");
     }
 }
 private void _phoneCall_CallStateChange(MyCallState state)
 {
     if (state == MyCallState.Busy)
     {
         _client.SendMessage(new ChatDataModel.ChatMessage(Util.Instance.CurrentUser.Email, _user.Email, "", "", new Call(Guid.NewGuid().ToString(), 0, false), DateTime.Now));
         _formCall.Close();
     }
     else if (state == MyCallState.CallEnd)
     {
         _client.SendMessage(new ChatDataModel.ChatMessage(Util.Instance.CurrentUser.Email, _user.Email, "", "", new Call(Guid.NewGuid().ToString(), _phoneCall.GetDuration(), true), DateTime.Now));
     }
 }
        private void Call_CallStateChanged(object sender, CallStateChangedArgs e)
        {
            IPhoneCall grCall = sender as IPhoneCall;

            _grCall = grCall;
            MyCallState tmp = MyCallState.DoNotthing;

            if (e.State == CallState.Answered)
            {
                StartDevices();
                mediaReceiver.AttachToCall(call);
                mediaSender.AttachToCall(call);
                videoReceiver.AttachToCall(call);
                videoSender.AttachToCall(call);
                tmp = MyCallState.Answered;
            }

            if (e.State == CallState.InCall)
            {
                StartDevices();
                tmp = MyCallState.InCall;
                CallDuration();
            }

            if (e.State.IsCallEnded() == true)
            {
                StopDevices();
                mediaReceiver.Detach();
                mediaSender.Detach();
                videoSender.Detach();
                videoReceiver.Detach();
                WireDownCallEvents();
                call = null;
                tmp  = MyCallState.CallEnd;
                Instance.IsLocalCameraUsed = false;
                timer.Stop();
            }

            if (e.State == CallState.LocalHeld)
            {
                StopDevices();
            }
            if (e.State == CallState.Busy)
            {
                StopDevices();
                tmp = MyCallState.Busy;
            }
            if (e.State == CallState.Cancelled)
            {
                StopDevices();
                tmp = MyCallState.Canceled;
            }
            if (e.State == CallState.Completed)
            {
                tmp = MyCallState.CallEnd;
            }

            if (CallStateChange != null)
            {
                CallStateChange.Invoke(tmp);
            }
        }