/// <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); }
/// <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)); }
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); }
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); }