public override string ToString()
        {
            r = (Ringing)base.Tag;

            Binding descbinding = new Binding("Description");
            descbinding.Mode = BindingMode.TwoWay;
            descbinding.Source = r;
            txtdesc.SetBinding(TextBox.TextProperty, descbinding);


            return base.ToString();
        }
        public override string ToString()
        {
            r = (Ringing)base.Tag;

            Binding descbinding = new Binding("Description");

            descbinding.Mode   = BindingMode.TwoWay;
            descbinding.Source = r;
            txtdesc.SetBinding(TextBox.TextProperty, descbinding);


            return(base.ToString());
        }
Beispiel #3
0
        public void ReceiveRequestHandler(Object sender, RequestEventArgs e)
        {
            lock (sipStateMutex)
            {
                if (e.Request.Method == SipMethod.Ack)
                {
                    Console.WriteLine("ACK method");
                    client.AcceptRequest(e.Request);
                    CallEvent(CallAction.CALLSTART);
                    sipClientState = CallAction.CALLSTART;
                    return;
                }
                if (e.Request.Method == SipMethod.Cancel)
                {
                    client.AcceptRequest(e.Request);
                    CallEvent(CallAction.CALLEND);
                    return;
                }
                if (e.Request.Method == SipMethod.Bye)
                {
                    client.AcceptRequest(e.Request);
                    CallEvent(CallAction.CALLEND);
                    return;
                }
                if (e.Request.Method == SipMethod.Invite)
                {
                    OK      ok      = new OK();
                    Ringing ringing = new Ringing();
                    ringing.SessionDescription = GenerateSessionDescription();
                    Console.WriteLine("get invite - send ringing");
                    client.SendResponse(ringing, e.Request);
                    CallEvent(CallAction.RINGING);
                    return;
                }

                Console.WriteLine("get common, set accept request " + e.Request.Method.ToString());
                client.AcceptRequest(e.Request);
            }
        }
Beispiel #4
0
 protected void OnRinging(string str)
 {
     Ringing?.Invoke(this, str);
 }
Beispiel #5
0
 /// <summary>
 /// Входящий вызов, метод подписаный к событию
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Port_RingNotify(Port sender, int number)
 {
     Ringing?.Invoke(this, new TerminalEventArgs($"Входящий вызов от абонента {number}"));
 }
Beispiel #6
0
        public void OnEvent(CallSdkEvent callEvent)
        {
            Debug.Log($"Event {callEvent.Event} received by Call {CallId}");
            if (callEvent.Event.Equals("Connected"))
            {
                Connected?.Invoke(this, callEvent.GetEventArgs <CallConnectedEventArgs>());
            }
            else if (callEvent.Event.Equals("Disconnected"))
            {
                Disconnected?.Invoke(this, callEvent.GetEventArgs <CallDisconnectedEventArgs>());
            }
            else if (callEvent.Event.Equals("Ringing"))
            {
                Ringing?.Invoke(this, callEvent.GetEventArgs <CallRingingEventArgs>());
            }
            else if (callEvent.Event.Equals("Failed"))
            {
                Failed?.Invoke(this, callEvent.GetEventArgs <CallFailedEventArgs>());
            }
            else if (callEvent.Event.Equals("AudioStarted"))
            {
                AudioStarted?.Invoke(this);
            }
            else if (callEvent.Event.Equals("SIPInfoReceived"))
            {
                SIPInfoReceived?.Invoke(this, callEvent.GetEventArgs <CallSIPInfoReceivedEventArgs>());
            }
            else if (callEvent.Event.Equals("MessageReceived"))
            {
                MessageReceived?.Invoke(this, callEvent.GetEventArgs <CallMessageReceivedEventArgs>());
            }
            else if (callEvent.Event.Equals("LocalVideoStreamAdded"))
            {
                var eventArgs   = callEvent.GetEventArgs <CallLocalVideoStreamAddedEventArgs>();
                var videoStream = CreateVideoStream(eventArgs.streamId);
                _localVideoStreams[eventArgs.streamId] = videoStream;
                eventArgs.VideoStream = videoStream;

                LocalVideoStreamAdded?.Invoke(this, eventArgs);
            }
            else if (callEvent.Event.Equals("LocalVideoStreamRemoved"))
            {
                var eventArgs = callEvent.GetEventArgs <CallLocalVideoStreamRemovedEventArgs>();
                if (!_localVideoStreams.ContainsKey(eventArgs.streamId))
                {
                    return;
                }

                var videoStream = _localVideoStreams[eventArgs.streamId];
                _localVideoStreams.Remove(eventArgs.streamId);

                eventArgs.VideoStream = videoStream;
                videoStream.Dispose();

                LocalVideoStreamRemoved?.Invoke(this, eventArgs);
            }
            else if (callEvent.Event.Equals("ICETimeout"))
            {
                ICETimeout?.Invoke(this);
            }
            else if (callEvent.Event.Equals("ICECompleted"))
            {
                ICECompleted?.Invoke(this);
            }
            else if (callEvent.Event.Equals("EndpointAdded"))
            {
                var eventArgs = callEvent.GetEventArgs <CallEndpointAddedEventArgs>();

                if (_endpoints.ContainsKey(eventArgs.endpointId))
                {
                    return;
                }

                eventArgs.Endpoint = AddEndpoint(eventArgs.endpointId);

                EndpointAdded?.Invoke(this, eventArgs);
            }
            else if (callEvent.Event.Equals("ActionCompleted"))
            {
                var eventArgs  = callEvent.GetEventArgs <CallActionEventArgs>();
                var completion = CallActions[eventArgs.RequestGuid];
                completion?.Invoke(null);
                CallActions.Remove(eventArgs.RequestGuid);
            }
            else if (callEvent.Event.Equals("ActionFailed"))
            {
                var eventArgs  = callEvent.GetEventArgs <CallActionFailedEventArgs>();
                var completion = CallActions[eventArgs.RequestGuid];
                completion?.Invoke(new Error(eventArgs.Code, eventArgs.Error));
                CallActions.Remove(eventArgs.RequestGuid);
            }
            else
            {
                Debug.LogError($"Unexpected Event {callEvent.Event} for Call {CallId}");
            }
        }