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); }
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; }
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 { } }
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); }
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); } }
private void ServicedClient_OnNewPacketIncome(TcpSignalizationClient client, SignalizationPacket packet) { if (this.AfterPacketIncomeInvoke(ServicedClient_OnNewPacketIncome, client, packet)) { return; } if (packet.Command == SignalizationCommand.End) { client.Dispose(); } }
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 { } }
private void ServicedClient_OnDispose(TcpSignalizationClient obj) { try { this.BeginInvoke(new Action(() => { labMessage.Text = "Rozmowa zakończona."; this.ConversationTimer.Stop(); this.disposed = true; })); } catch { } }
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; } }
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; } }
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); } }
public static bool AfterPacketIncomeInvoke(this Control invokedControl, Action <TcpSignalizationClient, SignalizationPacket> callback, TcpSignalizationClient client, SignalizationPacket packet) { return(invokedControl.InvokeIfRequired(callback, client, packet)); }
private void ConversationPanel_OnConversationFinish(TcpSignalizationClient obj) { sessionRtp.Dispose(); SetMainPanel(); }