public void StartProcessor() { com = new Commands(); Console.WriteLine("Now listening..."); listener.Start(); while (listener.IsListening) { var context = listener.GetContext(); Console.WriteLine("Incoming SMS."); string smsBody = context.Request.QueryString["Body"].Trim(); string smsFrom = context.Request.QueryString["From"].Substring(2); List <string> smsImageUrls = new List <string>(); string tempSmsImageUrl; for (int i = 0; i < 10; i++) //Process 10 possible MediaUrls { tempSmsImageUrl = context.Request.QueryString["MediaUrl" + i.ToString()]; if (!string.IsNullOrEmpty(tempSmsImageUrl)) { smsImageUrls.Add(tempSmsImageUrl); } else { break; } } string smsImageUrlList = ""; foreach (string url in smsImageUrls) { smsImageUrlList = smsImageUrlList + url + " "; } smsImageUrlList.Trim(); string contact = com.getContactFromNumber(smsFrom); if (!string.IsNullOrEmpty(contact)) { smsFrom = contact.First().ToString().ToUpper() + contact.Substring(1); //Capitalize first letter. } usingBot.NotifySms(smsFrom, smsBody, smsImageUrlList); } Console.WriteLine("Done listening."); }