Пример #1
0
        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", workspaceSid="WSXXXXX" });

            Assert.IsTrue(IsValidTwiML(response.ToXDocument()));
        }
Пример #2
0
        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()));
        }
Пример #3
0
        public void Can_Generate_Enqueue_With_Only_Options()
        {
            var response = new TwilioResponse();
            response.Enqueue(new { action = "example.xml", method = "GET", waitUrl = "wait.xml", waitUrlMethod = "GET"});

            Assert.IsTrue(IsValidTwiML(response.ToXDocument()));
        }
Пример #4
0
        public void Can_Generate_Enqueue_With_Name()
        {
            var response = new TwilioResponse();
            response.Enqueue("example");

            Assert.IsTrue(IsValidTwiML(response.ToXDocument()));
        }
Пример #5
0
        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()));
        }
Пример #6
0
        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);
        }
Пример #7
0
    public static HttpListenerResponse SendResponse(HttpListenerContext ctx)
    {
        HttpListenerRequest request = ctx.Request;
        HttpListenerResponse response = ctx.Response;

        response.StatusCode = (int)HttpStatusCode.OK;
        response.ContentType = "application/xml";

        var twiml = new Twilio.TwiML.TwilioResponse();
        twiml.Enqueue (new { workflowSid = "WW0123456789abcdef0123456789abcdef", waitUrl = "/hold_music.php", action = "/post_bridge_survey.php"}, "{\"account_number\":\"12345abcdef\"}");
        response.StatusDescription = twiml.ToString();
        return response;
    }
Пример #8
0
    public static HttpListenerResponse SendResponse(HttpListenerContext ctx)
    {
        HttpListenerRequest request = ctx.Request;
        HttpListenerResponse response = ctx.Response;

        response.StatusCode = (int)HttpStatusCode.OK;
        response.ContentType = "application/xml";

        var twiml = new Twilio.TwiML.TwilioResponse();
        twiml.Enqueue (new { workflowSid = "WW0123456789abcdef0123456789abcdef" });
        response.StatusDescription = twiml.ToString();
        return response;
    }
Пример #9
0
    public static HttpListenerResponse SendResponse(HttpListenerContext ctx)
    {
        HttpListenerRequest  request  = ctx.Request;
        HttpListenerResponse response = ctx.Response;

        response.StatusCode  = (int)HttpStatusCode.OK;
        response.ContentType = "application/xml";

        var twiml = new Twilio.TwiML.TwilioResponse();

        twiml.Enqueue(new { workflowSid = "WW0123456789abcdef0123456789abcdef" }, "{\"account_number\":\"12345abcdef\"}");
        response.StatusDescription = twiml.ToString();
        return(response);
    }
 public HttpResponseMessage Company(string id)
 {
     var callWaitUrl = _accountSettings.GetSetting("CallWaitUrl");
     var response = new TwilioResponse();
     response.Say("You are joining a queue");
     var attributes = new
     {
         action = "/api/CallStatus/Update?callId=null",
         method = "POST",
         waitUrl = callWaitUrl
     };
     response.Enqueue($"Company_{id}", attributes);
     return Request.CreateResponse(HttpStatusCode.OK, response.Element, new XmlMediaTypeFormatter());
 }
Пример #11
0
    public static HttpListenerResponse SendResponse(HttpListenerContext ctx)
    {
        HttpListenerRequest request = ctx.Request;
        HttpListenerResponse response = ctx.Response;

        response.StatusCode = (int)HttpStatusCode.OK;
        response.ContentType = "application/xml";

        var twiml = new Twilio.TwiML.TwilioResponse();
        var task = new Task("{\"account_number\":\"12345abcdef\"}", new {priority = "5", timeout = "200"});
        twiml.EnqueueTask (new { workflowSid = "WW0123456789abcdef0123456789abcdef" }, task);

        // alternatively
        twiml.Enqueue (new { workflowSid = "WW0123456789abcdef0123456789abcdef" }, "{\"account_number\":\"12345abcdef\"}",  new {priority = "5", timeout = "200"});

        response.StatusDescription = twiml.ToString();
        return response;
    }
Пример #12
0
    public static HttpListenerResponse SendResponse(HttpListenerContext ctx)
    {
        HttpListenerRequest  request  = ctx.Request;
        HttpListenerResponse response = ctx.Response;

        response.StatusCode  = (int)HttpStatusCode.OK;
        response.ContentType = "application/xml";

        var twiml = new Twilio.TwiML.TwilioResponse();
        var task  = new Task("{\"account_number\":\"12345abcdef\"}", new { priority = "5", timeout = "200" });

        twiml.EnqueueTask(new { workflowSid = "WW0123456789abcdef0123456789abcdef" }, task);

        // alternatively
        twiml.Enqueue(new { workflowSid = "WW0123456789abcdef0123456789abcdef" }, "{\"account_number\":\"12345abcdef\"}", new { priority = "5", timeout = "200" });

        response.StatusDescription = twiml.ToString();
        return(response);
    }
Пример #13
0
        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); 
        }
Пример #14
0
 public HttpResponseMessage JoinQueue(TwilioQueueRequest twilioRequest)
 {
     var twilioResponse = new TwilioResponse();
     twilioResponse.Say("You're now joining the Priority Queue", _voicesettings);
     twilioResponse.Enqueue("PriorityQueue",
                            new
                                {
                                    action = Url.Link("ExtendedApi", new {controller = "Phone", action = "LeaveQueue"}),
                                    waitUrl = Url.Link("ExtendedApi", new {controller = "Phone", action = "WaitInQueue"})
                                });
     return Request.CreateResponse(HttpStatusCode.OK, twilioResponse.Element);
 }
        public HttpResponseMessage Department(string companyId, string id, string callSid)
        {
            var callWaitUrl = _accountSettings.GetSetting("CallWaitUrl");
            var queueMessageUrl = _accountSettings.GetSetting("JoiningQueueMessageUrl");
            var endPoint = _endpointResolverService.Get(int.Parse(id));
            var response = new TwilioResponse();

            response.Play(queueMessageUrl);
            var attributes = new
            {
                action = "api/CallStatus/Update?callId=null",
                method = "POST",
                waitUrl = callWaitUrl
            };
            response.Enqueue($"Department_{endPoint.EndpointId}", attributes);
            _callService.UpdateCallBySid(new Call
            {
                Sid = callSid,
                CallStatus = CallStatus.Queued,
                DateReceived = DateTime.Now,
                QueueId = int.Parse(id)
            });

            _logger.Debug($"Twiml generated for call {callSid}. {response.Element}");
            return Request.CreateResponse(HttpStatusCode.OK, response.Element, new XmlMediaTypeFormatter());
        }