Пример #1
0
        private void SetAnswerPanel(TcpSignalizationClient client)
        {
            client.OnNewPacketIncome -= client_OnNewPacketIncome;
            client.Send(SignalizationCommand.Ringing);
            isBusy = true;

            AnswerPanel answerPanel = new AnswerPanel(client);

            answerPanel.OnAnsweringResult += answerPanel_OnAnsweringResult;
            SetPanel(answerPanel);
        }
Пример #2
0
        public ConversationPanel(TcpSignalizationClient client)
        {
            InitializeComponent();

            this.beginConversationTime             = DateTime.Now;
            this.servicedClient                    = client;
            this.servicedClient.OnDispose         += ServicedClient_OnDispose;
            this.servicedClient.OnNewPacketIncome += ServicedClient_OnNewPacketIncome;

            this.labTo.Text = client.RemoteUri;
        }
Пример #3
0
 private void ServicedClient_OnDispose(TcpSignalizationClient obj)
 {
     try
     {
         this.BeginInvoke(new Action(() =>
         {
             this.labMessage.Text = "Połączenie zostało niespodziewanie przerwane. Proszę spróbować później.";
             this.btnCancel.Text  = "Zakończ";
         }));
     }
     catch { }
 }
Пример #4
0
        private void listener_OnNewClientConnected(TcpSignalizationClient obj)
        {
            if (InvokeRequired)
            {
                Invoke(new Action <TcpSignalizationClient>(listener_OnNewClientConnected), obj);
                return;
            }

            obj.OnNewPacketIncome += client_OnNewPacketIncome;
            obj.OnDispose         += client_OnDispose;
            clients.Add(obj);
        }
Пример #5
0
 private void answerPanel_OnAnsweringResult(TcpSignalizationClient client, bool success)
 {
     if (!success)
     {
         SetMainPanel();
     }
     else
     {
         StartRtpSession(client.RemoteIp, client.LocalIp, Settings.Default.RtpPort, Settings.Default.RtcpPort);
         SetConversationPanel(client);
     }
 }
Пример #6
0
        private void ServicedClient_OnNewPacketIncome(TcpSignalizationClient client, SignalizationPacket packet)
        {
            if (this.AfterPacketIncomeInvoke(ServicedClient_OnNewPacketIncome, client, packet))
            {
                return;
            }

            if (packet.Command == SignalizationCommand.End)
            {
                client.Dispose();
            }
        }
Пример #7
0
 private void ServicedClient_OnDispose(TcpSignalizationClient obj)
 {
     try
     {
         this.BeginInvoke(new Action(() =>
         {
             this.labMessage.Text   = "Połączenie zostało niespodziewanie przerwane. Proszę spróbować później.";
             this.btnAnswer.Visible = false;
             this.btnReject.Text    = "Zakończ.";
             this.btnReject.Click  -= btnReject_Click;
             this.btnReject.Click  += btnCancel_Click;
         }));
     }
     catch { }
 }
Пример #8
0
        private void ServicedClient_OnDispose(TcpSignalizationClient obj)
        {
            try
            {
                this.BeginInvoke(new Action(() =>
                {
                    labMessage.Text = "Rozmowa zakończona.";

                    this.ConversationTimer.Stop();

                    this.disposed = true;
                }));
            }
            catch { }
        }
Пример #9
0
        void initalizeClient(TcpClient socket)
        {
            if (isCanceled)
            {
                socket.Close();
            }
            else
            {
                this.servicedClient = new TcpSignalizationClient(socket);
                this.servicedClient.OnNewPacketIncome += client_OnNewPacketIncome;
                this.servicedClient.Send(SignalizationCommand.Call);

                this.servicedClient.OnDispose += ServicedClient_OnDispose;

                this.labTo.Text = servicedClient.RemoteUri;
            }
        }
Пример #10
0
        void servicedClient_OnNewPacketIncome(TcpSignalizationClient client, SignalizationPacket packet)
        {
            if (this.AfterPacketIncomeInvoke(servicedClient_OnNewPacketIncome, client, packet))
            {
                return;
            }

            if (packet.Command == SignalizationCommand.End)
            {
                this.labMessage.Text   = "Nadawca anulował połączenie.";
                this.btnAnswer.Visible = false;
                this.btnReject.Text    = "Zakończ.";

                this.servicedClient.OnDispose -= ServicedClient_OnDispose;
                this.servicedClient.Dispose();

                this.btnReject.Click -= btnReject_Click;
                this.btnReject.Click += btnCancel_Click;
            }
        }
Пример #11
0
        private void client_OnNewPacketIncome(TcpSignalizationClient client, SignalizationPacket packet)
        {
            if (this.AfterPacketIncomeInvoke(client_OnNewPacketIncome, client, packet))
            {
                return;
            }

            if (!isBusy)
            {
                if (packet.Command == SignalizationCommand.Call)
                {
                    SetAnswerPanel(client);
                }
                else
                {
                    client.Send(SignalizationCommand.Error);
                }
            }
            else
            {
                client.Send(SignalizationCommand.Busy);
            }
        }
Пример #12
0
 public static bool AfterPacketIncomeInvoke(this Control invokedControl, Action <TcpSignalizationClient, SignalizationPacket> callback, TcpSignalizationClient client, SignalizationPacket packet)
 {
     return(invokedControl.InvokeIfRequired(callback, client, packet));
 }
Пример #13
0
 private void ConversationPanel_OnConversationFinish(TcpSignalizationClient obj)
 {
     sessionRtp.Dispose();
     SetMainPanel();
 }