public static async void ConnectToVoiceChannel(VoiceServerUpdate data) { string name; if (data.GuildId == null) { data.GuildId = data.ChannelId; name = $"DM - {LocalState.DMs[data.ChannelId].Name}"; } else { name = $"{LocalState.Guilds[data.GuildId].Raw.Name} - {LocalState.Guilds[data.GuildId].channels[LocalState.VoiceState.ChannelId].raw.Name}"; } App.UpdateLocalDeaf(false); App.UpdateVoiceStateHandler += App_UpdateVoiceStateHandler; //App.UpdateLocalMute(true); //LocalState.Muted); VoiceConnection = new VoiceConnection(data, LocalState.VoiceState); VoiceConnection.VoiceDataRecieved += VoiceConnection_VoiceDataRecieved; await VoiceConnection.ConnectAsync(); ConnectoToVoiceHandler?.Invoke(typeof(App), new ConnectToVoiceArgs() { ChannelId = LocalState.VoiceState.ChannelId, GuildId = data.GuildId }); AudioManager.InputRecieved += AudioManager_InputRecieved; if (Storage.Settings.BackgroundVoice) { VoipCallCoordinator vcc = VoipCallCoordinator.GetDefault(); voipCall = vcc.RequestNewOutgoingCall("", name, "Quarrel", VoipPhoneCallMedia.Audio); voipCall.NotifyCallActive(); } }
internal void NewOutgoingCall(string dstURI) { bool status = false; try { VoipCallCoordinator vCC = VoipCallCoordinator.GetDefault(); VoipPhoneCall call = vCC.RequestNewOutgoingCall("Pjsua Test Call ", dstURI, "", VoipPhoneCallMedia.Audio); if (call != null) { call.EndRequested += Call_EndRequested; call.RejectRequested += Call_RejectRequested; call.NotifyCallActive(); Current.VoipCall = call; MyAppRT.Instance.makeCall(dstURI); status = true; } } catch (Exception e) { Debug.WriteLine(e.ToString()); } ValueSet response = new ValueSet(); response[BackgroundOperation.Result] = status ? (int)OperationResult.Succeeded : (int)OperationResult.Failed; Current.SendResponse(response); }
private void NewOutgoingCall(string context, string contactName, string serviceName) { bool status = false; try { VoipCallCoordinator vCC = VoipCallCoordinator.GetDefault(); VoipPhoneCall call = vCC.RequestNewOutgoingCall(context, contactName, serviceName, VoipPhoneCallMedia.Audio); if (call != null) { call.EndRequested += Call_EndRequested; call.HoldRequested += Call_HoldRequested; call.RejectRequested += Call_RejectRequested; call.ResumeRequested += Call_ResumeRequested; call.NotifyCallActive(); Current.VoipCall = call; Current.StartAudio(); status = true; } } catch (Exception e) { Debug.WriteLine(e.ToString()); } ValueSet response = new ValueSet(); response[BackgroundOperation.Result] = status ? (int)OperationResult.Succeeded : (int)OperationResult.Failed; Current.SendResponse(response); }
private async void ConnectToVoiceChannel(VoiceServerUpdate data, VoiceState state) { voipCall?.NotifyCallEnded(); VoipCallCoordinator vcc = VoipCallCoordinator.GetDefault(); var status = await vcc.ReserveCallResourcesAsync("WebRTCBackgroundTask.VoipBackgroundTask"); // TODO: More info for Mobile voipCall = vcc.RequestNewOutgoingCall(string.Empty, string.Empty, "Quarrel", VoipPhoneCallMedia.Audio); voipCall.NotifyCallActive(); voiceConnection = new VoiceConnection(data, state, webrtcManager); voiceConnection.Speak += Speak; await voiceConnection.ConnectAsync(); }