public HttpResponseMessage SmsInbound() { // create a logger placeholder Logger logger = null; var httpRequest = new HttpRequestMessage(); try { logger = NexmoLogger.GetLogger("InboundMessagingSmsLogger"); logger.Open(); using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8)) { var value = reader.ReadToEndAsync(); var moSmsObject = JsonConvert.DeserializeObject <InboundSmsObject>(value.Result); logger.Log("Messaging SMS Inbound body: " + JsonConvert.SerializeObject(moSmsObject, Formatting.Indented)); logger.Log("Messaging SMS Inbound - The text message entered is: " + moSmsObject.text); logger.Log("Messaging SMS Inbound - The text message reciptient is: " + moSmsObject.to); if (moSmsObject.to == configuration["appSettings:Nexmo.Application.Number.From.FR"] || moSmsObject.to == configuration["appSettings:Nexmo.Application.Number.From.UK"]) { if (moSmsObject.text.ToLower().Trim() == "trigger") { VoiceModel voiceModel = new VoiceModel() { From = moSmsObject.to, To = moSmsObject.msisdn }; var alertNcco = NexmoApi.MakeAlertTTSCall(voiceModel, logger, configuration); if (alertNcco) { httpRequest.CreateResponse(HttpStatusCode.UnprocessableEntity); } } else if (moSmsObject.text.ToLower().Trim() == "rob") { var result = NexmoApi.MakeIvrCallWithMachineDetection(moSmsObject.text, logger, configuration); } else if (moSmsObject.text.ToLower().Trim() == "mason") { var result = NexmoApi.MakeIvrCallWithMachineDetection(moSmsObject.text, logger, configuration); } else if (moSmsObject.text.ToLower().Trim() == "kaine") { var result = NexmoApi.MakeIvrCallWithMachineDetection(moSmsObject.text, logger, configuration); } else if (moSmsObject.text.ToLower().Trim() == "perry") { var result = NexmoApi.MakeIvrCallWithMachineDetection(moSmsObject.text, logger, configuration); } else if (moSmsObject.text.ToLower().Trim() == "jpc") { var result = NexmoApi.MakeIvrCallWithMachineDetection(moSmsObject.text, logger, configuration); } else { // Add the message in a queue to be processed in the chat demo var queue = Storage.CreateQueue("chat", configuration, logger); Storage.InsertMessageInQueue(queue, JsonConvert.SerializeObject(moSmsObject), 3000, logger); logger.Log(Level.Warning, "Messaging SMS Inbound added to the queue: " + JsonConvert.SerializeObject(moSmsObject, Formatting.Indented)); } } } } catch (Exception e) { logger.Log(Level.Exception, e); return(httpRequest.CreateResponse(HttpStatusCode.InternalServerError)); } finally { logger.Close(); logger.Deregister(); } return(httpRequest.CreateResponse(HttpStatusCode.OK)); }