public TwilioResponse Inbound(Tuple <Agent, bool> agentTuple) { var agent = agentTuple != null ? agentTuple.Item1 : null; var anyOnline = agentTuple != null ? agentTuple.Item2 : false; var response = new TwilioResponse(); if (settings.WorkingHours != null && settings.WorkingHours.Enabled) { var now = TenantUtil.DateTimeFromUtc(DateTime.UtcNow); if (!(settings.WorkingHours.From <= now.TimeOfDay && settings.WorkingHours.To >= now.TimeOfDay)) { return(AddVoiceMail(response)); } } if (anyOnline) { if (!string.IsNullOrEmpty(settings.GreetingAudio)) { response.Play(EncodePlay(settings.GreetingAudio)); } response.Enqueue(settings.Queue.Name, new { method = "POST", action = GetEcho("Enqueue", agent != null), waitUrl = GetEcho("Wait", agent != null), waitUrlMethod = "POST" }); } return(AddVoiceMail(response)); }
public void Can_Generate_Enqueue_With_Options_And_TaskAttributes_And_Priority_And_Timeout() { var response = new TwilioResponse(); response.Enqueue(new { action = "example.xml", method = "GET", waitUrl = "wait.xml", waitUrlMethod = "GET", workflowSid = "WFXXXXX" }, "{'task':'attributes'}", new { priority = "10", timeout = "30" }); Assert.IsTrue(IsValidTwiML(response.ToXDocument())); }
public void Can_Generate_Enqueue_With_Name_And_Options() { var response = new TwilioResponse(); response.Enqueue("example", new { action = "example.xml", method = "GET", waitUrl = "wait.xml", waitUrlMethod = "GET" }); Assert.IsTrue(IsValidTwiML(response.ToXDocument())); }
public void Can_Generate_Enqueue_With_Name() { var response = new TwilioResponse(); response.Enqueue("example"); Assert.IsTrue(IsValidTwiML(response.ToXDocument())); }
public void Can_Generate_Enqueue_With_Options_And_TaskAttributes() { var response = new TwilioResponse(); response.Enqueue(new { action = "example.xml", method = "GET", waitUrl = "wait.xml", waitUrlMethod = "GET", workspaceSid = "WSXXXXX" }, "{'task':'attributes'}"); Assert.IsTrue(IsValidTwiML(response.ToXDocument())); }
public ActionResult BasicEnqueue() { var response = new TwilioResponse(); response.Say("Welcome adventurer to the Twilio Quest chapter 1 demo line. An incantation adds you to a call queue."); response.Enqueue("twilioquestchapter10"); return(TwiML(response)); }
public ActionResult QueueCall() { var response = new TwilioResponse(); response.Enqueue("Demo Queue", new { action = Url.Action("LeaveQueue"), //url to call when the call is dequeued waitUrl = Url.Action("WaitInQueue") //url to call while the call waits }); return(TwiML(response)); }
public ActionResult AdvancedEnqueue() { var response = new TwilioResponse(); response.Say("You've been banished to a call queue. Enjoy your stay."); response.Enqueue("twilioquestchapter11", new { waitUrl = Url.Action("AdvancedWait", "Queue", null, "http") }); response.Say("Hail the adventurer! He has escaped the despair of the dreaded call queue"); response.Say("We wish you well on your continued journey"); return(TwiML(response)); }
public ActionResult EnqueueCaller(string callsid) { QueueState.CreateAndSave(callsid); var response = new TwilioResponse(); response.Say("Adding you to the queue"); response.Enqueue("CustomerServiceQueue", new { action = Url.ActionAbsolute("LeaveQueue"), waitUrl = Url.ActionAbsolute("DetermineWaitExperience") }); return(TwiML(response)); }
public TwilioResponse Inbound() { var response = new TwilioResponse(); if (settings.WorkingHours != null && settings.WorkingHours.Enabled) { if (!(settings.WorkingHours.From <= DateTime.UtcNow.TimeOfDay && settings.WorkingHours.To >= DateTime.UtcNow.TimeOfDay)) { return(AddVoiceMail(response)); } } if (settings.AvailableOperators.Any()) { if (!string.IsNullOrEmpty(settings.GreetingAudio)) { response.Play(settings.GreetingAudio); } response.Enqueue(settings.Queue.Name, new { method = "GET", action = GetEcho("enqueue"), waitUrl = GetEcho("wait"), waitUrlMethod = "GET" }); } return(AddVoiceMail(response)); }