private void OnJoinVoiceMessage(JoinVoiceMessage msg) { MainForm main = new MainForm(); main.Connect(msg.Target.Hostname, msg.Target.Port); main.Show(); }
public async Task <Target> RequestGroupVoiceAsync(Group group) { if (group == null) { throw new ArgumentNullException("group"); } var joinVoice = new JoinVoiceMessage { Target = ServerTarget, GroupId = group.Id }; var response = await Connection.SendFor <JoinVoiceResponseMessage> (joinVoice, 30000).ConfigureAwait(false); return(response.Target); }
private async void OnJoinVoiceMessage(MessageEventArgs <JoinVoiceMessage> e) { var person = await GetPersonAsync(e.Connection); if (person == null) { await e.Connection.DisconnectAsync(); return; } Group group; lock (SyncRoot) { if (!Groups.TryGetGroup(e.Message.GroupId, out group) || !group.Participants.Contains(person.Identity)) { return; } } IConnection connection; lock (SyncRoot) { connection = GetConnection(group.OwnerId); } if (connection == null) { return; } var join = new JoinVoiceMessage { GroupId = e.Message.GroupId, Target = e.Message.Target }; try { var response = await connection.SendFor <JoinVoiceResponseMessage> (join, responseTimeout : 30000); await e.Connection.SendResponseAsync(e.Message, response); } catch (OperationCanceledException) { } }