示例#1
0
        /// <summary>
        /// Make a call using Text to speech,a voice file will be generated based on content and played to the recipient
        /// </summary>
        /// <param name="recipient">Destination mobile number, mobile number must be in international format without 00 or + Example: (4452023498)</param>
        /// <param name="content">The URL Link of the audio file, Example : https://voiceusa.s3.amazonaws.com/voiceWavFiles1423399184883.wav</param>
        /// <param name="language">The language of the text Synthesis , the possible values are :( Arabic, English )</param>
        public virtual TtsCallResult TtsCall(string recipient,string content,TtsCallLanguages language)
        {
            Require.Argument("Recipient", recipient);
             Require.Argument("Content", content);
             Require.Argument("Language", language);

             var request = new RestRequest(Method.POST) {Resource = "Voice/TTSCall"};
            request.AddParameter("Recipient", recipient);
            request.AddParameter("Content", content);
            request.AddParameter("Language", language == TtsCallLanguages.English ? "english" : "arabic");

            return Execute<TtsCallResult>(request);
        }
示例#2
0
        /// <summary>
        /// Make a call using Text to speech,a voice file will be generated based on content and played to the recipient
        /// </summary>
        /// <param name="recipient">Destination mobile number, mobile number must be in international format without 00 or + Example: (4452023498)</param>
        /// <param name="content">Text to send</param>
        /// <param name="language">The language of the text Synthesis , the possible values are :( Arabic, English )</param>
        /// <param name="callType">Defines the type of the call , note that pull value is used to collect user responses</param>
        /// <param name="callerId">Sender callerID, this can be any international mobile number</param>
        /// <param name="timeScheduled">Schedule Calls</param>
        /// <param name="voice">Change voice gender</param>
        /// <param name="delay">Add a pause at the beginning of the call value in seconds, values between (0 – 5 seconds )</param>
        /// <param name="repeat">Repeat the voice call , note: this option can be used only if CallType is set to Pull</param>
        public virtual TtsCallResult TtsCall(string recipient, string content, TtsCallLanguages language, CallType?callType = null,
                                             string callerId = null, DateTime?timeScheduled = null, Voice?voice = null, int?delay = null, Repeat?repeat = null)
        {
            Require.Argument("Recipient", recipient);
            Require.Argument("Content", content);
            Require.Argument("Language", language);

            var request = new RestRequest(Method.POST)
            {
                Resource = "Voice/TTSCall"
            };

            request.AddParameter("Recipient", recipient);
            request.AddParameter("Content", content);
            request.AddParameter("Language", language);

            if (callType.HasValue)
            {
                request.AddParameter("CallType", callType);
            }
            if (callerId.HasValue())
            {
                request.AddParameter("CallerID", callerId);
            }
            if (timeScheduled.HasValue)
            {
                request.AddParameter("TimeScheduled", timeScheduled.Value.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture));
            }
            if (voice.HasValue)
            {
                request.AddParameter("Voice", voice);
            }
            if (delay.HasValue)
            {
                request.AddParameter("Delay", delay);
            }
            if (repeat.HasValue)
            {
                request.AddParameter("Repeat", repeat);
            }

            return(Execute <TtsCallResult>(request));
        }
示例#3
0
        public void ShouldTtsCallWithoutOptionalParameters()
        {
            IRestRequest savedRequest = null;

            _mockClient.Setup(orc => orc.Execute <TtsCallResult>(It.IsAny <IRestRequest>()))
            .Callback <IRestRequest>(request => savedRequest = request)
            .Returns(new TtsCallResult());

            const string           content = ".Net Text to Speech Call Unit Test";
            const TtsCallLanguages lang    = TtsCallLanguages.English;

            var client = _mockClient.Object;

            client.TtsCall(Recipient, content, lang);

            _mockClient.Verify(orc => orc.Execute <TtsCallResult>(It.IsAny <IRestRequest>()), Times.Once);
            Assert.IsNotNull(savedRequest);
            Assert.AreEqual("Voice/TTSCall", savedRequest.Resource);
            Assert.AreEqual(Method.POST, savedRequest.Method);
            Assert.AreEqual(3, savedRequest.Parameters.Count);

            var recipientParam = savedRequest.Parameters.Find(x => x.Name == "Recipient");

            Assert.IsNotNull(recipientParam);
            Assert.AreEqual(Recipient, recipientParam.Value);

            var contentParam = savedRequest.Parameters.Find(x => x.Name == "Content");

            Assert.IsNotNull(contentParam);
            Assert.AreEqual(content, contentParam.Value);

            var langParam = savedRequest.Parameters.Find(x => x.Name == "Language");

            Assert.IsNotNull(langParam);
            Assert.AreEqual(lang, langParam.Value);
        }
示例#4
0
        public void ShouldTtsCallWithOptionalParameters()
        {
            IRestRequest savedRequest = null;

            _mockClient.Setup(orc => orc.Execute <TtsCallResult>(It.IsAny <IRestRequest>()))
            .Callback <IRestRequest>(request => savedRequest = request)
            .Returns(new TtsCallResult());

            const string           content = ".Net Text to Speech Call Unit Test";
            const TtsCallLanguages lang    = TtsCallLanguages.English;

            var client = _mockClient.Object;

            CallType?callType      = CallType.Pull;
            string   callerId      = "123";
            DateTime?timeScheduled = DateTime.Now.AddDays(2);
            Voice?   voice         = Voice.Male;
            int      delay         = 1;
            Repeat?  repeat        = Repeat.Off;


            client.TtsCall(Recipient, content, lang, callType, callerId, timeScheduled, voice, delay, repeat);

            _mockClient.Verify(orc => orc.Execute <TtsCallResult>(It.IsAny <IRestRequest>()), Times.Once);
            Assert.IsNotNull(savedRequest);
            Assert.AreEqual("Voice/TTSCall", savedRequest.Resource);
            Assert.AreEqual(Method.POST, savedRequest.Method);
            Assert.AreEqual(9, savedRequest.Parameters.Count);

            var recipientParam = savedRequest.Parameters.Find(x => x.Name == "Recipient");

            Assert.IsNotNull(recipientParam);
            Assert.AreEqual(Recipient, recipientParam.Value);

            var contentParam = savedRequest.Parameters.Find(x => x.Name == "Content");

            Assert.IsNotNull(contentParam);
            Assert.AreEqual(content, contentParam.Value);

            var langParam = savedRequest.Parameters.Find(x => x.Name == "Language");

            Assert.IsNotNull(langParam);
            Assert.AreEqual(lang, langParam.Value);


            var callTypeParam = savedRequest.Parameters.Find(x => x.Name == "CallType");

            Assert.IsNotNull(callTypeParam);
            Assert.AreEqual(callTypeParam.Value, callType.Value);

            var callerIdParam = savedRequest.Parameters.Find(x => x.Name == "CallerID");

            Assert.IsNotNull(callerIdParam);
            Assert.AreEqual(callerIdParam.Value, callerId);

            var timeScheduledParam = savedRequest.Parameters.Find(x => x.Name == "TimeScheduled");

            Assert.IsNotNull(timeScheduledParam);
            Assert.AreEqual(timeScheduled.Value.ToString("yyyy-MM-dd HH:mm:ss"), timeScheduledParam.Value);

            var voiceParam = savedRequest.Parameters.Find(x => x.Name == "Voice");

            Assert.IsNotNull(voiceParam);
            Assert.AreEqual(voiceParam.Value, voice.Value);

            var delayParam = savedRequest.Parameters.Find(x => x.Name == "Delay");

            Assert.IsNotNull(delayParam);
            Assert.AreEqual(delayParam.Value, delay);

            var repeatParam = savedRequest.Parameters.Find(x => x.Name == "Repeat");

            Assert.IsNotNull(repeatParam);
            Assert.AreEqual(repeatParam.Value, repeat.Value);
        }