public void CreateAndVerifyQueueWaitCallbackTest()
        {
            QueueWaitCallback qw = QueueWaitCallback.fromJson("{\"accountId\":\"AC736ca2078721a9a41fb47f07bf40d9e21cb304da\",\"callId\":\"CA7d00ca83adccbdf9d3f502176dbdd09fa5b886aa\",\"callStatus\":\"inProgress\",\"conferenceId\":null,\"dialCallStatus\":\"inProgress\",\"direction\":\"outboundAPI\",\"from\":\"+12248806205\",\"parentCallId\":null,\"queueId\":\"QU5ef8732a3c49700934481addd5ce1659\",\"requestId\":\"RQ50e91227b8187317d84f5bab9a9460c4a2c4aeb2\",\"requestType\":\"outDialApiConnect\",\"to\":\"+18475978014\",\"queuePosition\":1,\"queueTime\":12345,\"averageQueueTime\":10,\"currentQueueSize\":100}");

            Assert.AreEqual(qw.getAccountId, "AC736ca2078721a9a41fb47f07bf40d9e21cb304da");
            Assert.AreEqual(qw.getCallId, "CA7d00ca83adccbdf9d3f502176dbdd09fa5b886aa");
            Assert.IsNull(qw.getConferenceId);
            Assert.AreEqual(qw.getFrom, "+12248806205");
            Assert.IsNull(qw.getParentCallId);
            Assert.AreEqual(qw.getQueueId, "QU5ef8732a3c49700934481addd5ce1659");
            Assert.AreEqual(qw.getRequestId, "RQ50e91227b8187317d84f5bab9a9460c4a2c4aeb2");
            Assert.AreEqual(qw.getRequestType, ERequestType.OutDialApiConnect);
            Assert.AreEqual(qw.getTo, "+18475978014");
            Assert.AreEqual(qw.getQueueTime, 12345);
            Assert.AreEqual(qw.getQueuePosition, 1);
            Assert.AreEqual(qw.getCurrentQueueSize, 100);
        }
        public ActionResult InboundCallWait(QueueWaitCallback queueWaitStatusCallback)
        {
            // Create an empty PerCL script container
            PerCLScript script = new PerCLScript();
            // Create PerCL getdigits script
            string    getDigitsUrl = Url.Action(getAppUrl() + "/voice/CallDequeueSelect");
            GetDigits digits       = new GetDigits(getDigitsUrl); // actionUrl

            // Create PerCL say script with US English as the language
            Say say = new Say();

            say.setLanguage(ELanguage.EnglishUS);
            // Add prompt to for queue exit
            say.setText("Press any key to exit queue.");

            // Add say script as a prompt to getdigits
            digits.setPrompts(say);

            // Add PerCL getdigits script to PerCL container
            script.Add(digits);

            // Convert PerCL container to JSON and append to response
            return(Content(script.toJson(), "application/json"));
        }