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); }
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)); }
// 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); }
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); }
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); }