Exemple #1
0
        public void Execute(IJobExecutionContext context)
        {
            TwilioConferenceServices conferenceServices = new TwilioConferenceServices();

            JobDataMap dataMap = context.JobDetail.JobDataMap;

            string twilloAccountSid   = dataMap.GetString("twilloAccountSid");
            string twilloAccountToken = dataMap.GetString("twilloAccountToken");
            string conferenceSid      = dataMap.GetString("conferenceSid");
            int    id             = dataMap.GetInt("id");
            string conferenceName = dataMap.GetString("conferenceName");

            //Make rest request to /HangUpAt10Minutes endpoint
            TwilioClient.Init(twilloAccountSid, twilloAccountToken);

            conferenceServices.LogMessage(string.Format("Step 10 Hangup timer begin: {0}", conferenceSid), 10, id);

            ConferenceResource.Update(conferenceSid,
                                      status: ConferenceResource.UpdateStatusEnum.Completed);
            conferenceServices.LogMessage(string.Format("Step 10 Hangup timer end: {0}", conferenceSid), 10, id);

            Thread.Sleep(2000);

            Environment.Exit(0);
        }
Exemple #2
0
        public ActionResult ConfrenceCallee(string confrenceFriendlyName)
        {
            string TwilioApiUrl     = "http://5d30045dd6b7.ngrok.io/Home/";
            var    model            = new ResponseModel();
            var    noOfParticipants = HttpContext.Request.Form["SequenceNumber"];
            int    participants     = 0;

            int.TryParse(noOfParticipants, out participants);
            if (HttpContext.Request.Form["StatusCallbackEvent"] == "participant-join" && participants > 1)
            {
                TwilioClient.Init("ACcdbc21ca5ba9fd8ef16087e57fe64cd4", "b9cbe4da5f9760e8ccfccd6c53edd45a");

                var conferences = ConferenceResource.Read(
                    friendlyName: confrenceFriendlyName,
                    status: ConferenceResource.StatusEnum.InProgress,
                    limit: 20
                    );

                string pathConferenceSid = string.Empty;
                foreach (var record in conferences)
                {
                    pathConferenceSid = record.Sid;
                }
                string joinConfrenceCallbackUrl = TwilioApiUrl + "JoinConfrenceCallback";
                var    participant = ConferenceResource.Update(
                    announceUrl: new Uri(joinConfrenceCallbackUrl),
                    pathSid: pathConferenceSid


                    );
                model.StatusCode = 200;
            }
            return(Json(model));
        }
Exemple #3
0
        // this is an endpoint when callee join the conference call in 'JoinConfrence'. I have specified statusCallback in 'JoinConfrence' but this not calling
        // Here I have copied this 'ConfrenceCallee' endpoint code inside 'JoinConfrence' endpoint for play in case 'ConferenceResource.Update' get stuck

        public ActionResult ConfrenceCallee(string confrenceFriendlyName)
        {
            var model            = new ResponseModel();
            var noOfParticipants = HttpContext.Request.Form["SequenceNumber"];
            int participants     = 0;

            int.TryParse(noOfParticipants, out participants);
            if (HttpContext.Request.Form["StatusCallbackEvent"] == "participant-join" && participants > 1)
            {
                TwilioClient.Init(_twilioSettings.TwilioAccountSid, _twilioSettings.TwilioAuthToken);

                var conferences = ConferenceResource.Read(
                    friendlyName: confrenceFriendlyName,
                    status: ConferenceResource.StatusEnum.InProgress,
                    limit: 20
                    );

                string pathConferenceSid = string.Empty;
                foreach (var record in conferences)
                {
                    pathConferenceSid = record.Sid;
                }
                string joinConfrenceCallbackUrl = _twilioSettings.TwilioApiUrl + "JoinConfrenceCallback";
                var    participant = ConferenceResource.Update(
                    announceUrl: new Uri("http://338e35e84b93.ngrok.io/TwilioCall/JoinConfrenceCallback"),
                    pathSid: pathConferenceSid


                    );
                model.StatusCode = 200;
            }
            return(Json(model));
        }
        public void TestAnnounceToConferenceResponse()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();

            twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            twilioRestClient.Request(Arg.Any <Request>())
            .Returns(new Response(
                         System.Net.HttpStatusCode.OK,
                         "{\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"api_version\": \"2010-04-01\",\"date_created\": \"Mon, 08 Feb 2021 20:58:45 +0000\",\"date_updated\": \"Mon, 08 Feb 2021 20:58:46 +0000\",\"friendly_name\": \"MyRoom\",\"region\": \"us1\",\"sid\": \"CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"status\": \"in-progress\",\"subresource_uris\": {\"participants\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants.json\",\"recordings\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings.json\"},\"uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\",\"reason_conference_ended\": null,\"call_sid_ending_conference\": null}"
                         ));

            var response = ConferenceResource.Update("CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient);

            Assert.NotNull(response);
        }
Exemple #5
0
        public void TestUpdateEndConferenceResponse()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();

            twilioRestClient.AccountSid.Returns("ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
            twilioRestClient.Request(Arg.Any <Request>())
            .Returns(new Response(
                         System.Net.HttpStatusCode.OK,
                         "{\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"api_version\": \"2010-04-01\",\"date_created\": \"Mon, 22 Aug 2011 20:58:45 +0000\",\"date_updated\": \"Mon, 22 Aug 2011 20:58:46 +0000\",\"friendly_name\": null,\"region\": \"us1\",\"sid\": \"CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"status\": \"completed\",\"subresource_uris\": {\"participants\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants.json\"},\"uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\"}"
                         ));

            var response = ConferenceResource.Update("CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", client: twilioRestClient);

            Assert.NotNull(response);
        }
    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 conference = ConferenceResource.Update(
            status: ConferenceResource.UpdateStatusEnum.Completed,
            pathSid: "CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
            );

        Console.WriteLine(conference.FriendlyName);
    }
Exemple #7
0
    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 conference = ConferenceResource.Update(
            announceUrl: new Uri("http://www.myapp.com/announce"),
            pathSid: "CFbbe46ff1274e283f7e3ac1df0072ab39"
            );

        Console.WriteLine(conference.FriendlyName);
    }
        public void TestUpdateRequest()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();
            var request          = new Request(
                HttpMethod.Post,
                Twilio.Rest.Domain.Api,
                "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Conferences/CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json",
                ""
                );

            twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content"));

            try
            {
                ConferenceResource.Update("CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient);
                Assert.Fail("Expected TwilioException to be thrown for 500");
            }
            catch (ApiException) {}
            twilioRestClient.Received().Request(request);
        }