public void CreateAndVerifyQueueActionCallbackTest()
        {
            QueueActionCallback qa = QueueActionCallback.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\",\"queueTime\":12345,\"queueResult\":\"hangup\"}");

            Assert.AreEqual(qa.getAccountId, "AC736ca2078721a9a41fb47f07bf40d9e21cb304da");
            Assert.AreEqual(qa.getCallId, "CA7d00ca83adccbdf9d3f502176dbdd09fa5b886aa");
            Assert.IsNull(qa.getConferenceId);
            Assert.AreEqual(qa.getFrom, "+12248806205");
            Assert.IsNull(qa.getParentCallId);
            Assert.AreEqual(qa.getQueueId, "QU5ef8732a3c49700934481addd5ce1659");
            Assert.AreEqual(qa.getRequestId, "RQ50e91227b8187317d84f5bab9a9460c4a2c4aeb2");
            Assert.AreEqual(qa.getRequestType, ERequestType.OutDialApiConnect);
            Assert.AreEqual(qa.getTo, "+18475978014");
            Assert.AreEqual(qa.getQueueTime, 12345);
            Assert.AreEqual(qa.getQueueResult, EResults.Hangup);
        }
        public ActionResult InboundCallAction(QueueActionCallback queueActionStatusCallback)
        {
            // Create an empty PerCL script container
            PerCLScript script = new PerCLScript();

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

            say.setLanguage(ELanguage.EnglishUS);
            // Add prompt for queue exit
            say.setText("Call exited queue.");

            // Add PerCL say script to PerCL container
            script.Add(say);

            // Create and add PerCL hangup script to PerCL container
            script.Add(new Hangup());

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