コード例 #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 ShouldReturnOriginatingNumberForOutboundCall()
            {
                VoiceRequest request = new VoiceRequest()
                {
                  Direction = "outbound-api",
                  To = "+1234567890"
                };

                var originatingNumber = request.GetOriginatingNumber();

                Assert.AreEqual("+1234567890", originatingNumber);
            }
コード例 #3
0
        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;
        }
コード例 #4
0
        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;
        }