Beispiel #1
0
        public async Task <IEnumerable <RoomDetails> > GetAllRoomsAsync()
        {
            var rooms = await RoomResource.ReadAsync();

            var tasks = rooms.Select(
                room => GetRoomDetailsAsync(
                    room,
                    ParticipantResource.ReadAsync(
                        room.Sid,
                        ParticipantStatus.Connected)));

            return(await Task.WhenAll(tasks));

            async Task <RoomDetails> GetRoomDetailsAsync(
                RoomResource room,
                Task <ResourceSet <ParticipantResource> > participantTask)
            {
                var participants = await participantTask;

                return(new RoomDetails
                {
                    Name = room.UniqueName,
                    MaxParticipants = room.MaxParticipants ?? 0,
                    ParticipantCount = participants.ToList().Count
                });
            }
        }
Beispiel #2
0
        public List <RoomDetails> GetRoomListByStatus(string RoomStatus)
        {
            ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
            TwilioClient.Init(accountSid, authToken);
            List <RoomDetails> RoomDetailList = new List <RoomDetails>();
            RoomDetails        RD             = new RoomDetails();

            try
            {
                if (RoomStatus.ToUpper() == "COMPLETED")
                {
                    var rooms = RoomResource.Read(
                        status: RoomResource.RoomStatusEnum.Completed,
                        limit: 20
                        );
                    foreach (var rm in rooms)
                    {
                        RD.Id              = rm.AccountSid;
                        RD.Name            = rm.UniqueName;
                        RD.MaxParticipants = Convert.ToInt32(rm.MaxParticipants);
                        RD.Status          = rm.Status.ToString();
                        RoomDetailList.Add(RD);
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return(RoomDetailList);
        }
Beispiel #3
0
        public static async Task CreateMeetingRoomAsync(Event @event)
        {
            var uniqueName = GetRoomName(@event);

            var room = (await RoomResource.ReadAsync(
                            uniqueName: uniqueName,
                            limit: 1)).FirstOrDefault();

            if (room is null || room.UniqueName != uniqueName)
            {
                var callbackUrl = string.IsNullOrEmpty(_twilioConfiguration.RoomUpdateCallbackUrl) ?
                                  null :
                                  new Uri(_twilioConfiguration.RoomUpdateCallbackUrl);

                var callbackMethod = string.IsNullOrEmpty(_twilioConfiguration.RoomUpdateCallbackUrl) ?
                                     null :
                                     HttpMethod.Post;

                await RoomResource.CreateAsync(
                    uniqueName : uniqueName,
                    type : RoomResource.RoomTypeEnum.Group,
                    maxParticipants : _maxParticipants,
                    recordParticipantsOnConnect : false,
                    statusCallback : callbackUrl,
                    statusCallbackMethod : callbackMethod);
            }
        }
Beispiel #4
0
        public async Task CreateRoomAsync(string id, Country country, bool needRecord, Uri callBack, StudyRoomType studyRoomType)
        {
            var type = RoomResource.RoomTypeEnum.PeerToPeer;
            //switch (studyRoomType)
            //{
            //    case StudyRoomType.SmallGroup:
            //        type = RoomResource.RoomTypeEnum.GroupSmall;
            //        break;
            //    case StudyRoomType.PeerToPeer:
            //        type = RoomResource.RoomTypeEnum.PeerToPeer;
            //        break;
            //}
            var mediaRegion = "us1";

            if (country == Country.Israel)
            {
                mediaRegion = "de1";
            }
            if (country == Country.India)
            {
                mediaRegion = "us1";
            }

            await RoomResource.CreateAsync(
                uniqueName : id,
                enableTurn : true,
                maxParticipants : 2,
                type : type,
                statusCallback : callBack,
                statusCallbackMethod : HttpMethod.Post,
                recordParticipantsOnConnect : needRecord,
                mediaRegion : mediaRegion
                );
        }
Beispiel #5
0
        public string CompleteRoom(string roomSid)
        {
            TwilioClient.Init(_apiAccountSid, _apiKeySecret);

            var room = RoomResource.Update(roomSid, RoomResource.RoomStatusEnum.Completed);

            return(room.Sid);
        }
        protected void RecordingBtn_Click(object sender, EventArgs e)
        {
            //StartRecording();
            // Find your Account SID and Auth Token at twilio.com/console
            const string apiKeySid    = "SK0678c0ad0045e85ac68f91d3eca7c87c";
            const string apiKeySecret = "6AQNum22c9t20kZsbGXffSZQDpEyjyWs";

            // const string roomUniqueName = "Anu";
            TwilioClient.Init(apiKeySid, apiKeySecret);
            var rooms = RoomResource.Read(
                status: RoomResource.RoomStatusEnum.Completed,
                //uniqueName: "05212018014523086");
                uniqueName: "05212018045230018");

            foreach (var room in rooms)
            {
                Console.WriteLine(room.Sid);
                string roomSid = room.Sid;
                //Console.WriteLine(room.Sid);

                //const string roomSid = "RM9236a49ad89bde01060d416c418b1157";

                TwilioClient.Init(apiKeySid, apiKeySecret);

                var recordings = RecordingResource.Read(
                    groupingSid: new List <string>()
                {
                    roomSid
                });

                foreach (var recording in recordings)
                {
                    Console.WriteLine(recording.Sid);
                    string recordingSid      = recording.Sid;
                    var    RetrieveRecording = RoomRecordingResource.Fetch(roomSid, recordingSid);
                    Console.WriteLine(RetrieveRecording.Type);
                    string uri = "https://video.twilio.com/v1/" +
                                 $"Rooms/{roomSid}/" +
                                 $"Recordings/{recordingSid}/" +
                                 "Media/";

                    var request = (HttpWebRequest)WebRequest.Create(uri);
                    request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(apiKeySid + ":" + apiKeySecret)));
                    request.AllowAutoRedirect = false;
                    string responseBody  = new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd();
                    var    mediaLocation = JsonConvert.DeserializeObject <Dictionary <string, string> >(responseBody)["redirect_to"];

                    Console.WriteLine(mediaLocation);
                    //aws credentials;
                    //loc = aws

                    new WebClient().DownloadFile(mediaLocation, @"C:\Users\bhanushree.rajanna\Desktop\TestR\" + recording.TrackName + RetrieveRecording.Type + "AudioVideo.mp4");
                }
            }
        }
Beispiel #7
0
        public RoomResource CompleteRoom(string RoomSID)
        {
            TwilioClient.Init(accountSid, authToken);

            var room = RoomResource.Update(
                status: RoomResource.RoomStatusEnum.Completed,
                pathSid: RoomSID
                );

            return(room);
        }
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var room = RoomResource.Fetch(pathSid: "DailyStandup");

        Console.WriteLine(room.UniqueName);
    }
Beispiel #9
0
            static async Task <RoomDetails> GetRoomDetailsAsync(
                RoomResource room,
                Task <ResourceSet <ParticipantResource> > participantTask)
            {
                var participants = await participantTask;

                return(new(
                           room.Sid,
                           room.UniqueName,
                           participants.Count(),
                           room.MaxParticipants ?? 0));
            }
    static void Main(string[] args)
    {
        // Find your Account SID and Auth Token at twilio.com/console
        const string apiKeySid    = "SKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string apiKeySecret = "your_api_key_secret";

        TwilioClient.Init(apiKeySid, apiKeySecret);

        var room = RoomResource.Create(uniqueName: "DailyStandup");

        Console.WriteLine(room.Sid);
    }
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var room = RoomResource.Create();

        Console.WriteLine(room.Sid);
    }
Beispiel #12
0
        public async ValueTask <IEnumerable <RoomDetails> > GetAllRoomsAsync()
        {
            var rooms = await RoomResource.ReadAsync();

            var tasks = rooms.Select(
                room => GetRoomDetailsAsync(
                    room,
                    ParticipantResource.ReadAsync(
                        room.Sid,
                        ParticipantStatus.Connected)));

            return(await Task.WhenAll(tasks));
Beispiel #13
0
        public static List <RoomResource> RoomResources()
        {
            Guid room1Id = Guid.Parse("c678fddb-f055-6792-2c44-9ea76263576a");
            Guid room2Id = Guid.Parse("d31a4cc3-ff3c-977f-c6ea-1406b602da21");

            Guid resource1Id = Guid.Parse("d807ce74-6f5a-4ed9-a084-ba9f20748b03");
            Guid resource2Id = Guid.Parse("e3c1c219-3480-4cd3-bf66-99f04cb1bb15");
            Guid resource3Id = Guid.Parse("7ccfb32b-e133-404d-a871-679a45ff5a0d");

            #region Room 1
            RoomResource roomResource1 = new RoomResource
            {
                Id         = Guid.NewGuid(),
                RoomId     = room1Id,
                ResourceId = resource1Id,
                Quantity   = 1
            };

            RoomResource roomResource2 = new RoomResource
            {
                Id         = Guid.NewGuid(),
                RoomId     = room1Id,
                ResourceId = resource3Id,
                Quantity   = 1
            };
            #endregion

            #region Room 2
            RoomResource roomResource3 = new RoomResource
            {
                Id         = Guid.NewGuid(),
                RoomId     = room2Id,
                ResourceId = resource2Id,
                Quantity   = 1
            };

            RoomResource roomResource4 = new RoomResource
            {
                Id         = Guid.NewGuid(),
                RoomId     = room2Id,
                ResourceId = resource3Id,
                Quantity   = 1
            };
            #endregion

            return(new List <RoomResource>
            {
                roomResource1,
                roomResource2,
                roomResource3,
                roomResource4,
            });
        }
Beispiel #14
0
        // [WebMethod]
        //   public static void StartRecording()
        //    {
        //ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "Func()", true);


        //     }
        //}
        protected void RecordingBtnn_Click(object sender, EventArgs e)
        {
            //StartRecording();
            // Find your Account SID and Auth Token at twilio.com/console
            const string apiKeySid    = "SKd8aac04eba0fa8ed056c6263990fa85c";
            const string apiKeySecret = "uUiLZ8XytHGuo15BPnU4EuZ5kdywBDWO";

            // const string roomUniqueName = "Anu";
            TwilioClient.Init(apiKeySid, apiKeySecret);
            var rooms = RoomResource.Read(
                status: RoomResource.RoomStatusEnum.Completed,
                //uniqueName: "05212018045230018");
                uniqueName: "05212018075717994");

            foreach (var room in rooms)
            {
                Console.WriteLine(room.Sid);
                string roomSid = room.Sid;
                //Console.WriteLine(room.Sid);

                //const string roomSid = "RM9236a49ad89bde01060d416c418b1157";

                TwilioClient.Init(apiKeySid, apiKeySecret);

                var recordings = RecordingResource.Read(
                    groupingSid: new List <string>()
                {
                    roomSid
                });

                foreach (var recording in recordings)
                {
                    Console.WriteLine(recording.Sid);
                    string recordingSid      = recording.Sid;
                    var    RetrieveRecording = RoomRecordingResource.Fetch(roomSid, recordingSid);
                    Console.WriteLine(RetrieveRecording.Type);
                    string uri = "https://video.twilio.com/v1/" +
                                 $"Rooms/{roomSid}/" +
                                 $"Recordings/{recordingSid}/" +
                                 "Media/";

                    var request = (HttpWebRequest)WebRequest.Create(uri);
                    request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(apiKeySid + ":" + apiKeySecret)));
                    request.AllowAutoRedirect = false;
                    string responseBody  = new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd();
                    var    mediaLocation = JsonConvert.DeserializeObject <Dictionary <string, string> >(responseBody)["redirect_to"];

                    Console.WriteLine(mediaLocation);
                    new WebClient().DownloadFile(mediaLocation, @"C:\Users\bhanushree.rajanna\Desktop\TransferToAmazonVideoFolder" + recording.TrackName + RetrieveRecording.Type + "AudioVideo.mp4");
                }
            }
        }
Beispiel #15
0
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        // DANGER! This is insecure. See http://twil.io/secure
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var room = RoomResource.Fetch(pathSid: "RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");

        Console.WriteLine(room.UniqueName);
    }
    static void Main(string[] args)
    {
        // Find your Account SID and Auth Token at twilio.com/console
        const string accountSid   = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken    = "your_auth_token";
        const string recordingSid = "RTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

        TwilioClient.Init(accountSid, authToken);

        var room = RoomResource.Create(uniqueName: "DailyStandup");

        Console.WriteLine(room.Sid);
    }
Beispiel #17
0
            static async Task <RoomDetails> GetRoomDetailsAsync(
                RoomResource room,
                Task <ResourceSet <ParticipantResource> > participantTask)
            {
                var participants = await participantTask;

                return(new RoomDetails
                {
                    Name = room.UniqueName,
                    MaxParticipants = room.MaxParticipants ?? 0,
                    ParticipantCount = participants.Count()
                });
            }
Beispiel #18
0
        private async Task <RoomDetails> GetRoomDetailsAsync(
            RoomResource room,
            Task <ResourceSet <ParticipantResource> > participantTask)
        {
            ResourceSet <ParticipantResource> participants = await participantTask;

            return(new RoomDetails
            {
                Name = room.UniqueName,
                MaxParticipants = room.MaxParticipants ?? 0,
                ParticipantCount = participants.ToList().Count
            });
        }
    static void Main(string[] args)
    {
        // Find your Account SID and Auth Token at twilio.com/console
        // To set up environmental variables, see http://twil.io/secure
        const string apiKeySid    = Environment.GetEnvironmentVariable("TWILIO_API_KEY_SID");
        const string apiKeySecret = Environment.GetEnvironmentVariable("TWILIO_API_KEY_SECRET");

        TwilioClient.Init(apiKeySid, apiKeySecret);

        var room = RoomResource.Create(uniqueName: "DailyStandup");

        Console.WriteLine(room.Sid);
    }
Beispiel #20
0
        public void TestCreateResponse()
        {
            var twilioRestClient = Substitute.For<ITwilioRestClient>();
            twilioRestClient.AccountSid.Returns("ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
            twilioRestClient.Request(Arg.Any<Request>())
                            .Returns(new Response(
                                         System.Net.HttpStatusCode.Created,
                                         "{\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"date_created\": \"2015-07-30T20:00:00Z\",\"date_updated\": \"2015-07-30T20:00:00Z\",\"status\": \"in-progress\",\"type\": \"peer-to-peer\",\"sid\": \"RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"enable_turn\": true,\"unique_name\": \"RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"max_participants\": 10,\"duration\": 0,\"status_callback_method\": \"POST\",\"status_callback\": \"\",\"record_participants_on_connect\": false,\"end_time\": \"2015-07-30T20:00:00Z\",\"url\": \"https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"links\": {\"recordings\": \"https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings\"}}"
                                     ));

            var response = RoomResource.Create(client: twilioRestClient);
            Assert.NotNull(response);
        }
Beispiel #21
0
        public void TestReadWithStatusResponse()
        {
            var twilioRestClient = Substitute.For<ITwilioRestClient>();
            twilioRestClient.AccountSid.Returns("ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
            twilioRestClient.Request(Arg.Any<Request>())
                            .Returns(new Response(
                                         System.Net.HttpStatusCode.OK,
                                         "{\"rooms\": [{\"sid\": \"RM4070b618362c1682b2385b1f9982833c\",\"status\": \"completed\",\"date_created\": \"2017-04-03T22:21:49Z\",\"date_updated\": \"2017-04-03T22:21:51Z\",\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"type\": \"peer-to-peer\",\"enable_turn\": true,\"unique_name\": \"RM4070b618362c1682b2385b1f9982833c\",\"status_callback\": null,\"status_callback_method\": \"POST\",\"end_time\": \"2017-04-03T22:21:51Z\",\"duration\": 2,\"max_participants\": 10,\"record_participants_on_connect\": false,\"url\": \"https://video.twilio.com/v1/Rooms/RM4070b618362c1682b2385b1f9982833c\",\"links\": {\"recordings\": \"https://video.twilio.com/v1/Rooms/RM4070b618362c1682b2385b1f9982833c/Recordings\"}}],\"meta\": {\"page\": 0,\"page_size\": 50,\"first_page_url\": \"https://video.twilio.com/v1/Rooms?PageSize=50&Page=0\",\"previous_page_url\": null,\"url\": \"https://video.twilio.com/v1/Rooms?PageSize=50&Page=0\",\"next_page_url\": null,\"key\": \"rooms\"}}"
                                     ));

            var response = RoomResource.Read(client: twilioRestClient);
            Assert.NotNull(response);
        }
Beispiel #22
0
        public void TestReadEmptyResponse()
        {
            var twilioRestClient = Substitute.For<ITwilioRestClient>();
            twilioRestClient.AccountSid.Returns("ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
            twilioRestClient.Request(Arg.Any<Request>())
                            .Returns(new Response(
                                         System.Net.HttpStatusCode.OK,
                                         "{\"rooms\": [],\"meta\": {\"page\": 0,\"page_size\": 50,\"first_page_url\": \"https://video.twilio.com/v1/Rooms?PageSize=50&Page=0\",\"previous_page_url\": null,\"url\": \"https://video.twilio.com/v1/Rooms?PageSize=50&Page=0\",\"next_page_url\": null,\"key\": \"rooms\"}}"
                                     ));

            var response = RoomResource.Read(client: twilioRestClient);
            Assert.NotNull(response);
        }
Beispiel #23
0
        // [WebMethod]
        //   public static void StartRecording()
        //    {
        //ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "Func()", true);


        //     }
        //}

        protected void RecordingBtn_Click(object sender, EventArgs e)
        {
            //StartRecording();
            // Find your Account SID and Auth Token at twilio.com/console
            const string apiKeySid    = "SK26a5ad58fe67cd4192caf9d49c11e160";
            const string apiKeySecret = "3ROMylcwSwpUCn0ROstqRgSWmGr4alvk";

            // const string roomUniqueName = "Anu";
            TwilioClient.Init(apiKeySid, apiKeySecret);
            var rooms = RoomResource.Read(
                status: RoomResource.RoomStatusEnum.Completed,
                uniqueName: "Room");

            foreach (var room in rooms)
            {
                Console.WriteLine(room.Sid);
                string roomSid = room.Sid;
                //Console.WriteLine(room.Sid);

                //const string roomSid = "RM9236a49ad89bde01060d416c418b1157";

                TwilioClient.Init(apiKeySid, apiKeySecret);

                var recordings = RecordingResource.Read(
                    groupingSid: new List <string>()
                {
                    roomSid
                });

                foreach (var recording in recordings)
                {
                    Console.WriteLine(recording.Sid);
                    string recordingSid      = recording.Sid;
                    var    RetrieveRecording = RoomRecordingResource.Fetch(roomSid, recordingSid);
                    Console.WriteLine(RetrieveRecording.Type);
                    string uri = "https://video.twilio.com/v1/" +
                                 $"Rooms/{roomSid}/" +
                                 $"Recordings/{recordingSid}/" +
                                 "Media/";

                    var request = (HttpWebRequest)WebRequest.Create(uri);
                    request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(apiKeySid + ":" + apiKeySecret)));
                    request.AllowAutoRedirect = false;
                    string responseBody  = new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd();
                    var    mediaLocation = JsonConvert.DeserializeObject <Dictionary <string, string> >(responseBody)["redirect_to"];

                    Console.WriteLine(mediaLocation);
                    new WebClient().DownloadFile(mediaLocation, @"C:\Users\bhanushree.rajanna\Desktop\videostore\" + recording.TrackName + RetrieveRecording.Type + "Room.mp4");
                }
            }
        }
Beispiel #24
0
        /// <summary>
        /// This function will create video meeting room
        /// </summary>
        /// <param name="roomName"></param>
        /// <returns></returns>
        public string CreateVideoRoom(string roomName, int maxParticipants, string statusCallback = "")
        {
            TwilioClient.Init(_twilioSettings.AccountSID, _twilioSettings.AuthToken);

            var room = RoomResource.Create(
                recordParticipantsOnConnect: true,
                statusCallback: new Uri(statusCallback),
                type: RoomResource.RoomTypeEnum.Group,
                maxParticipants: maxParticipants,
                uniqueName: roomName
                );

            return(room.Sid);
        }
        public static RoomResource MapRoomToRoomResource(Room room)
        {
            var roomResource = new RoomResource
            {
                Id             = room.Id,
                Number         = room.Number,
                Price          = room.Price,
                Standard       = room.Standard,
                Type           = room.Type,
                AccomodationId = room.AccomodationId
            };

            return(roomResource);
        }
        public static Room MapRoomResourceToRoom(RoomResource roomResource)
        {
            var room = new Room
            {
                Id             = roomResource.Id,
                Number         = roomResource.Number,
                Price          = roomResource.Price,
                Standard       = roomResource.Standard,
                Type           = roomResource.Type,
                AccomodationId = roomResource.AccomodationId
            };

            return(room);
        }
    static void Main(string[] args)
    {
        // Find your Account SID and Auth Token at twilio.com/console
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";
        const string roomSid    = "RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

        TwilioClient.Init(accountSid, authToken);

        var room = RoomResource.Update(roomSid,
                                       RoomResource.RoomStatusEnum.Completed);

        Console.WriteLine(room.UniqueName);
    }
    static void Main(string[] args)
    {
        // Find your Account SID and Auth Token at twilio.com/console
        const string apiKeySid    = "SKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string apiKeySecret = "your_api_key_secret";
        const string roomSid      = "RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

        TwilioClient.Init(apiKeySid, apiKeySecret);

        var room = RoomResource.Update(roomSid,
                                       RoomResource.RoomStatusEnum.Completed);

        Console.WriteLine(room.UniqueName);
    }
Beispiel #29
0
        public string CreateRoom(string token, string roomUniqueName)
        {
            TwilioClient.Init(_apiAccountSid, _accountSid);

            var room = RoomResource.Create(new CreateRoomOptions()
            {
                UniqueName = roomUniqueName,
                EnableTurn = true,
                Type       = RoomResource.RoomTypeEnum.Group,
                RecordParticipantsOnConnect = true
            });

            return(room.Sid);
        }
        public void TestUpdateResponse()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();

            twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            twilioRestClient.Request(Arg.Any <Request>())
            .Returns(new Response(
                         System.Net.HttpStatusCode.OK,
                         "{\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"date_created\": \"2015-07-30T20:00:00Z\",\"date_updated\": \"2015-07-30T20:00:00Z\",\"status\": \"completed\",\"type\": \"peer-to-peer\",\"sid\": \"RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"enable_turn\": true,\"unique_name\": \"unique_name\",\"max_participants\": 10,\"max_concurrent_published_tracks\": 10,\"status_callback_method\": \"POST\",\"status_callback\": \"\",\"record_participants_on_connect\": false,\"video_codecs\": [\"VP8\"],\"media_region\": \"us1\",\"end_time\": \"2015-07-30T20:00:00Z\",\"duration\": 10,\"url\": \"https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"links\": {\"participants\": \"https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants\",\"recordings\": \"https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings\",\"recording_rules\": \"https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RecordingRules\"}}"
                         ));

            var response = RoomResource.Update("RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", RoomResource.RoomStatusEnum.InProgress, client: twilioRestClient);

            Assert.NotNull(response);
        }