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 ShouldUseSayVerbIfNotImplementedAsMP3() { TwilioResponse mockResponse = new TwilioResponse(); TwiMLHelper helper = new TwiMLHelper("en", false); helper.SayOrPlay(mockResponse, "test message"); Assert.IsTrue(mockResponse.Element.ToString().Contains("<Say language=\"en\">")); }
public void ShouldUsePlayVerbIfImplementedAsMP3() { TwilioResponse mockResponse = new TwilioResponse(); TwiMLHelper helper = new TwiMLHelper("ar", true); helper.SayOrPlay(mockResponse, "test message"); Assert.IsTrue(mockResponse.Element.ToString().Contains("<Play>")); }
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; }