Esempio n. 1
0
        public JsonResult MakeACall(string callee_user_id)
        {
            var callee = UserManager.FindById(callee_user_id);

            string[] parts = new string[] { UserName, callee.UserName };

            string token = Guid.NewGuid().ToString();
            var    room  = new WebRTCRoom
            {
                Id               = token,
                Token            = token,
                Name             = "Single-Call-Room",
                SharedWith       = "public",
                Status           = "available",
                LastUpdated      = DateTime.Now,
                OwnerName        = UserName,
                OwnerToken       = UserId,
                ParticipantName  = callee.UserName,
                ParticipantToken = callee.Id,
                Participants     = string.Join(",", parts),
            };

            _roomRepository.Save(room);

            return(Json(room, JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        public JsonResult MakeACall(string callee_user_id)
        {
            Users callee = entities.Users.FirstOrDefault(t => t.Id == callee_user_id);

            string[] parts = new string[] { WebRTCLib.Utils.Helper.CurrentUser.User.UserName, callee.UserName };

            string     token = Guid.NewGuid().ToString();
            WebRTCRoom room  = new WebRTCRoom()
            {
                ID               = token,
                Token            = token,
                Name             = "Single-Call-Room",
                SharedWith       = "public",
                Status           = "available",
                LastUpdated      = DateTime.Now,
                OwnerName        = WebRTCLib.Utils.Helper.CurrentUser.User.UserName,
                OwnerToken       = WebRTCLib.Utils.Helper.CurrentUser.User.Id,
                ParticipantName  = callee.UserName,
                ParticipantToken = callee.Id,
                CreateOn         = DateTime.Now,
                CreateOnStr      = DateTime.Now.ToString("yyyy-MM-dd"),
                Participants     = String.Join(",", parts),
            };

            entities.WebRTCRoom.Add(room);
            entities.SaveChanges();

            return(Json(room, JsonRequestBehavior.AllowGet));
        }
Esempio n. 3
0
        public JsonResult Ignore(string id)
        {
            WebRTCRoom room = entities.WebRTCRoom.FirstOrDefault(t => t.ID == id);

            room.Status = "Ignore";
            entities.Entry(room).CurrentValues.SetValues(room);
            entities.SaveChanges();

            return(Json(true, JsonRequestBehavior.AllowGet));
        }
Esempio n. 4
0
        public JsonResult GetParticipant()
        {
            string     roomname = Request["roomname"];
            WebRTCRoom room     = entities.WebRTCRoom.FirstOrDefault(t => t.ID == roomname);

            if (room.Status != "active")
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }
            else
            {
                Users userPart = entities.Users.FirstOrDefault(t => t.Id == room.ParticipantToken);
                return(Json(new { participant = userPart.UserName, partPhoto = userPart.Photo }, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 5
0
        public JsonResult CallGroupOrTeam(string id, string type)
        {
            var users = _userRepository.GetAssignUsers(type, id);

            if (users.Any())
            {
                string[] parts = new string[users.Count + 1];
                parts[0] = UserName;
                for (int i = 1; i <= users.Count; i++)
                {
                    parts[i] = users[i - 1].UserName;
                }

                string token = Guid.NewGuid().ToString();
                var    rooms = new List <WebRTCRoom>();
                foreach (var callee in users)
                {
                    var item = new WebRTCRoom
                    {
                        Token            = token,
                        Name             = "Multi-Call-Room",
                        SharedWith       = "public",
                        Status           = "available",
                        LastUpdated      = DateTime.Now,
                        OwnerName        = UserName,
                        OwnerToken       = UserId,
                        ParticipantName  = callee.UserName,
                        ParticipantToken = callee.Id,
                        Participants     = string.Join(",", parts),
                    };

                    rooms.Add(item);
                }

                _roomRepository.AddMany(rooms);

                return(Json(new { Successful = true, roomtoken = token }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { Successful = false, Message = "Haven't found any user, Please invite user first." }));
            }
        }
Esempio n. 6
0
        /// <summary>
        /// WebRTC/Room
        /// </summary>
        /// <param name="id">Room ID</param>
        /// <returns></returns>
        public ActionResult Room(string id)
        {
            WebRTCRoom        room  = entities.WebRTCRoom.FirstOrDefault(t => t.ID == id);
            List <WebRTCRoom> rooms = new List <WebRTCRoom>();

            rooms.Add(room);
            ViewBag.Rooms = rooms;

            ViewBag.RoomToken = id;

            if (room.ParticipantToken == WebRTCLib.Utils.Helper.CurrentUser.User.Id)
            {
                room.Status = "active";
                entities.Entry(room).CurrentValues.SetValues(room);
                entities.SaveChanges();
            }

            return(View("~/Views/WebRTC/MultiCallRoom.cshtml"));
        }
Esempio n. 7
0
        public JsonResult MakeMMCall(string callee_user_id_list)
        {
            string[] callee_id_list = callee_user_id_list.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
            var      callee_list    = _userRepository.GetAllUsers(callee_id_list).ToList();

            string[] parts = new string[callee_list.Count + 1];
            parts[0] = UserName;
            for (int i = 1; i <= callee_list.Count; i++)
            {
                parts[i] = callee_list[i - 1].UserName;
            }

            string token = Guid.NewGuid().ToString();
            var    rooms = new List <WebRTCRoom>();

            foreach (var callee in callee_list)
            {
                var item = new WebRTCRoom
                {
                    Token            = token,
                    Name             = "MM-Call-Room",
                    SharedWith       = "public",
                    Status           = "available",
                    LastUpdated      = DateTime.Now,
                    OwnerName        = UserName,
                    OwnerToken       = UserId,
                    ParticipantName  = callee.UserName,
                    ParticipantToken = callee.Id,
                    Participants     = string.Join(",", parts),
                };

                rooms.Add(item);
            }

            _roomRepository.AddMany(rooms);

            return(Json(new { roomtoken = token }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 8
0
        public JsonResult MakeMMCall(string callee_user_id_list)
        {
            string[]     callee_id_list = callee_user_id_list.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
            List <Users> callee_list    = entities.Users.Where(t => callee_id_list.Contains(t.Id)).ToList <Users>();

            string[] parts = new string[callee_list.Count + 1];
            parts[0] = WebRTCLib.Utils.Helper.CurrentUser.User.UserName;
            for (int i = 1; i <= callee_list.Count; i++)
            {
                parts[i] = callee_list[i - 1].UserName;
            }

            string token = Guid.NewGuid().ToString();

            foreach (Users callee in callee_list)
            {
                WebRTCRoom room = new WebRTCRoom()
                {
                    ID               = Guid.NewGuid().ToString(),
                    Token            = token,
                    Name             = "MM-Call-Room",
                    SharedWith       = "public",
                    Status           = "available",
                    LastUpdated      = DateTime.Now,
                    OwnerName        = WebRTCLib.Utils.Helper.CurrentUser.User.UserName,
                    OwnerToken       = WebRTCLib.Utils.Helper.CurrentUser.User.Id,
                    ParticipantName  = callee.UserName,
                    ParticipantToken = callee.Id,
                    CreateOn         = DateTime.Now,
                    CreateOnStr      = DateTime.Now.ToString("yyyy-MM-dd"),
                    Participants     = String.Join(",", parts),
                };
                entities.WebRTCRoom.Add(room);
            }
            entities.SaveChanges();
            return(Json(new { roomtoken = token }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 9
0
        public JsonResult CallGroupOrTeam(string id, string type)
        {
            List <Users> users = new List <Users>();

            if (type == "group")
            {
                var entrys = from assignGroup in entities.UserAssignGroup
                             join user in entities.Users on assignGroup.UserID equals user.Id
                             where assignGroup.GroupID == id
                             select new { UserName = user.UserName, Id = user.Id };
                foreach (var entry in entrys)
                {
                    users.Add(new Users()
                    {
                        UserName = entry.UserName, Id = entry.Id
                    });
                }
            }
            else if (type == "team")
            {
                var entrys = from assignTeam in entities.UserAssignTeam
                             join user in entities.Users on assignTeam.UserID equals user.Id
                             where assignTeam.TeamID == id
                             select new { UserName = user.UserName, Id = user.Id };
                foreach (var entry in entrys)
                {
                    users.Add(new Users()
                    {
                        UserName = entry.UserName, Id = entry.Id
                    });
                }
            }

            if (users.Count > 0)
            {
                string[] parts = new string[users.Count + 1];
                parts[0] = WebRTCLib.Utils.Helper.CurrentUser.User.UserName;
                for (int i = 1; i <= users.Count; i++)
                {
                    parts[i] = users[i - 1].UserName;
                }

                string token = Guid.NewGuid().ToString();
                foreach (Users callee in users)
                {
                    WebRTCRoom room = new WebRTCRoom()
                    {
                        ID               = Guid.NewGuid().ToString(),
                        Token            = token,
                        Name             = "Multi-Call-Room",
                        SharedWith       = "public",
                        Status           = "available",
                        LastUpdated      = DateTime.Now,
                        OwnerName        = WebRTCLib.Utils.Helper.CurrentUser.User.UserName,
                        OwnerToken       = WebRTCLib.Utils.Helper.CurrentUser.User.Id,
                        ParticipantName  = callee.UserName,
                        ParticipantToken = callee.Id,
                        CreateOn         = DateTime.Now,
                        CreateOnStr      = DateTime.Now.ToString("yyyy-MM-dd"),
                        Participants     = String.Join(",", parts),
                    };
                    entities.WebRTCRoom.Add(room);
                }
                entities.SaveChanges();
                return(Json(new { Successful = true, roomtoken = token }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { Successful = false, Message = "Haven't found any user, Please invite user first." }));
            }
        }