Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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();
        }