public TwilioResponse GetGreeting(VoiceRequest request) { string culture = LanguageHelper.GetDefaultCulture(); var response = new TwilioResponse(); try { var lookupPhoneNumber = request.GetOriginatingNumber(); var knownNumber = profileManager.CheckNumber(lookupPhoneNumber); if (knownNumber) { culture = profileManager.GetCulture(lookupPhoneNumber); if (string.IsNullOrEmpty(culture)) { culture = LanguageHelper.GetDefaultCulture(); } else { culture = LanguageHelper.GetValidCulture(culture); } IVREntryLang.Culture = new System.Globalization.CultureInfo(culture); twiMLHelper = new TwiMLHelper(culture, LanguageHelper.IsImplementedAsMP3(culture)); } else { twiMLHelper = new TwiMLHelper(LanguageHelper.GetDefaultCulture(), false); } twiMLHelper.SayOrPlay(response, IVREntryLang.Welcome); twiMLHelper.SayOrPlay(response, string.Format(IVREntryLang.PhoneLookup, string.Join(" ", lookupPhoneNumber.ToArray()))); if (!knownNumber) { twiMLHelper.SayOrPlay(response, IVREntryLang.PhoneNumberNotFound); response.Hangup(); return response; } response.BeginGather(new { finishOnKey = "#", action = string.Format("/api/IVRAuthenticate?language={0}", culture) }); twiMLHelper.SayOrPlay(response, IVREntryLang.EnterPin); response.EndGather(); } catch (Exception ex) { twiMLHelper.SayOrPlay(response, string.Format(IVREntryLang.Error, ex.Message)); twiMLHelper.SayOrPlay(response, string.Format(IVREntryLang.Error, ex.Message)); twiMLHelper.SayOrPlay(response, string.Format(IVREntryLang.Error, ex.Message)); response.Hangup(); } return response; }
public void ShouldReturnOriginatingNumberForOutboundCall() { VoiceRequest request = new VoiceRequest() { Direction = "outbound-api", To = "+1234567890" }; var originatingNumber = request.GetOriginatingNumber(); Assert.AreEqual("+1234567890", originatingNumber); }
public TwilioResponse GetMenuSelection(VoiceRequest request) { var response = new TwilioResponse(); try { string lookupPhoneNumber = request.GetOriginatingNumber(); int profileId = profileManager.GetProfileId(lookupPhoneNumber); var selection = int.Parse(request.Digits); switch (selection) { case 1: response.Say("Looking up unread messages."); var unreadCount = refUnitedAcctManager.GetUnreadMessageCount(profileId); response.Say(string.Format("You have {0} message{1}", unreadCount, (unreadCount == 1) ? "" : "s")); break; case 2: response.Say("Looking up messages"); response.Redirect(routeProvider.GetUrlMethod(IVRRoutes.READ_PLATFORM_MESSAGES, profileId)); break; case 3: response.Redirect(routeProvider.GetUrlMethod(IVRRoutes.SEND_MESSAGE_TO_FAVOURITE, profileId)); break; case 4: response.Redirect(routeProvider.GetUrlMethod(IVRRoutes.PLAY_RECORDED_MESSAGES, profileId)); break; case 5: response.Redirect(routeProvider.GetUrlMethod(IVRRoutes.BROADCAST_RECORD, profileId)); break; case 6: response.Redirect(routeProvider.GetUrlMethod(IVRRoutes.BROADCAST_MENU, profileId)); break; default: response.Redirect(routeProvider.GetUrlMethod(IVRRoutes.PLAY_MAIN_MENU)); break; } } catch (Exception ex) { response.Say("an error has occured. " + ex.Message); } return response; }
public TwilioResponse GetAuthentication(VoiceRequest request, string language) { var response = new TwilioResponse(); if (string.IsNullOrEmpty(language)) { language = LanguageHelper.GetDefaultCulture(); } else { language = LanguageHelper.GetValidCulture(language); } IVRAuthLang.Culture = new System.Globalization.CultureInfo(language); twiMLHelper = new TwiMLHelper(language, LanguageHelper.IsImplementedAsMP3(language)); string lookupPhoneNumber = request.GetOriginatingNumber(); var pin = request.Digits; var result = profileManager.CheckPin(lookupPhoneNumber, pin); string correctPin = profileManager.GetPin(lookupPhoneNumber); if (result) { response.Redirect(routeProvider.GetUrlMethod(IVRRoutes.PLAY_MAIN_MENU, language), "POST"); } else { twiMLHelper.SayOrPlay(response, IVRAuthLang.IncorrectPIN); response.Hangup(); } return response; }