Esempio n. 1
0
        private void c_OnChannelEnteredBridgeEvent(object sender, ChannelEnteredBridgeEvent e)
        {
            ConferenceUser confUser = ConferenceUsers.SingleOrDefault(x => x.Channel.Id == e.Channel.Id);

            if (confUser == null)
            {
                return;
            }

            confUser.State = ConferenceUserState.InConf;

            if (ConferenceUsers.Count(x => x.State == ConferenceUserState.InConf) > 1) // are we the only ones here
            {
                // stop moh
                _client.Bridges.StopMoh(Confbridge.Id);

                // change state
                State = ConferenceState.Ready;

                // announce new user
                _client.Bridges.Play(Confbridge.Id, "recording:" + confUser.CurrentRecodingId, "en", 0, 0, Guid.NewGuid().ToString());
                _client.Bridges.Play(Confbridge.Id, "sound:conf-hasjoin", "en", 0, 0, Guid.NewGuid().ToString());
            }
            else
            {
                // only caller in conf
                _client.Channels.Play(e.Channel.Id, "sound:conf-onlyperson", "en", 0, 0, Guid.NewGuid().ToString());
            }
        }
Esempio n. 2
0
        private void c_OnChannelDtmfReceivedEvent(object sender, ChannelDtmfReceivedEvent e)
        {
            ConferenceUser confUser = ConferenceUsers.SingleOrDefault(x => x.Channel.Id == e.Channel.Id);

            if (confUser == null)
            {
                return;
            }

            // Pass digit to conference user
            confUser.KeyPress(e.Digit);
        }
Esempio n. 3
0
        public void RemoveUser(string channelId)
        {
            // Remove the channel from the bridge
            ConferenceUser confUser = ConferenceUsers.SingleOrDefault(x => x.Channel.Id == channelId);

            if (confUser == null)
            {
                return;
            }

            _client.Bridges.RemoveChannel(Confbridge.Id, channelId);
            ConferenceUsers.Remove(confUser);
        }
Esempio n. 4
0
        void c_OnChannelTalkingStartedEvent(object sender, ChannelTalkingStartedEvent e)
        {
            ConferenceUser confUser = ConferenceUsers.SingleOrDefault(x => x.Channel.Id == e.Channel.Id);

            Console.WriteLine("{0} Started to talk in conference {1}", e.Channel.Id, this.ConferenceName);
        }
Esempio n. 5
0
        void c_OnChannelTalkingFinishedEvent(object sender, ChannelTalkingFinishedEvent e)
        {
            ConferenceUser confUser = ConferenceUsers.SingleOrDefault(x => x.Channel.Id == e.Channel.Id);

            Console.WriteLine("{0} Finished talking in conference {1}, lasted {2} milliseconds", e.Channel.Id, this.ConferenceName, e.Duration);
        }