Ejemplo n.º 1
0
        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;
        }