Exemplo n.º 1
0
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var recordings = RecordingResource.Read(
            pathAccountSid: "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
            );

        foreach (var record in recordings)
        {
            Console.WriteLine(record.Sid);
        }
    }
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        // DANGER! This is insecure. See http://twil.io/secure
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var recording = RecordingResource.Update(
            status: RecordingResource.StatusEnum.Paused,
            pathConferenceSid: "CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
            pathSid: "Twilio.CURRENT"
            );

        Console.WriteLine(recording.CallSid);
    }
    static void Main(string[] args)
    {
        // Find your Account Sid and Auth Token at twilio.com/console
        // To set up environmental variables, see http://twil.io/secure
        const string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        const string authToken  = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        const string callSid    = "CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        var          recordings = RecordingResource.Read(callSid: callSid);

        foreach (var recording in recordings)
        {
            Console.WriteLine(recording.Duration);
        }
    }
Exemplo n.º 4
0
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var recordings = RecordingResource.Read(
            dateCreatedAfter: new DateTime(2009, 7, 6, 0, 0, 0)
            );

        foreach (var record in recordings)
        {
            Console.WriteLine(record.Sid);
        }
    }
Exemplo n.º 5
0
        public void GivenAnIndexAction_WhenClientHasRecordings_ThenShowsTheRecordings()
        {
            var mockClient = new Mock <IClient>();

            var recordingsFromApi = new List <RecordingResource>
            {
                RecordingResource.FromJson("{\"date_created\": \"Mon, 22 Aug 2011 20:58:45 +0000\", \"uri\": \"/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings/REaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json\"}")
            };

            mockClient.Setup(c => c.Recordings()).ReturnsAsync(recordingsFromApi);

            var stubPhoneNumbers = Mock.Of <IPhoneNumbers>();
            var controller       = new RecordingsController(mockClient.Object, stubPhoneNumbers);
            var result           = controller.WithCallTo(c => c.Index()).ShouldReturnJson();
            var recordings       = (result.Data as IEnumerable <object>).ToList();

            Assert.That(recordings.Count(), Is.EqualTo(1));
        }
Exemplo n.º 6
0
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        // DANGER! This is insecure. See http://twil.io/secure
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var recordings = RecordingResource.Read(
            dateCreated: new DateTime(2016, 10, 18, 0, 0, 0)
            );

        foreach (var record in recordings)
        {
            Console.WriteLine(record.Sid);
        }
    }
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        // DANGER! This is insecure. See http://twil.io/secure
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var recordings = RecordingResource.Read(
            groupingSid: Promoter.ListOfOne("RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
            );

        foreach (var record in recordings)
        {
            Console.WriteLine(record.Sid);
        }
    }
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        // DANGER! This is insecure. See http://twil.io/secure
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var recordings = RecordingResource.Read(
            status: RecordingResource.StatusEnum.Deleted,
            limit: 20
            );

        foreach (var record in recordings)
        {
            Console.WriteLine(record.Sid);
        }
    }
    static void Main(string[] args)
    {
        // Find your Account Sid and Auth Token at twilio.com/console
        // To set up environmental variables, see http://twil.io/secure
        const string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        const string authToken  = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        var recordings = RecordingResource.Read(
            dateCreatedBefore: new DateTime(2016, 10, 15),
            dateCreatedAfter: new DateTime(2016, 10, 12)
            );

        foreach (var recording in recordings)
        {
            Console.WriteLine(recording.Duration);
        }
    }
Exemplo n.º 10
0
        public void TestUpdateRequest()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();
            var request          = new Request(
                HttpMethod.Post,
                Twilio.Rest.Domain.Trunking,
                "/v1/Trunks/TKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recording",
                ""
                );

            twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content"));

            try
            {
                RecordingResource.Update("TKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient);
                Assert.Fail("Expected TwilioException to be thrown for 500");
            }
            catch (ApiException) {}
            twilioRestClient.Received().Request(request);
        }
    static void Main(string[] args)
    {
        // Find your Account SID and Auth Token at twilio.com/console
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";
        const string roomSid    = "RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

        TwilioClient.Init(accountSid, authToken);

        var recordings = RecordingResource.Read(
            groupingSid: new List <string>()
        {
            roomSid
        });

        foreach (var recording in recordings)
        {
            Console.WriteLine(recording.Sid);
        }
    }
Exemplo n.º 12
0
    static void Main(string[] args)
    {
        // Find your Account SID and Auth Token at twilio.com/console
        const string apiKeySid    = "SKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string apiKeySecret = "your_api_key_secret";
        const string roomSid      = "RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

        TwilioClient.Init(apiKeySid, apiKeySecret);

        var recordings = RecordingResource.Read(
            groupingSid: new List <string>()
        {
            roomSid
        });

        foreach (var recording in recordings)
        {
            Console.WriteLine(recording.Sid);
        }
    }
Exemplo n.º 13
0
        public void TestReadRequest()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();
            var request          = new Request(
                HttpMethod.Get,
                Twilio.Rest.Domain.Video,
                "/v1/Recordings",
                ""
                );

            twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content"));

            try
            {
                RecordingResource.Read(client: twilioRestClient);
                Assert.Fail("Expected TwilioException to be thrown for 500");
            }
            catch (ApiException) {}
            twilioRestClient.Received().Request(request);
        }
Exemplo n.º 14
0
    static void Main(string[] args)
    {
        // Find your Account SID and Auth Token at twilio.com/console
        // To set up environmental variables, see http://twil.io/secure
        const string apiKeySid    = Environment.GetEnvironmentVariable("TWILIO_API_KEY_SID");
        const string apiKeySecret = Environment.GetEnvironmentVariable("TWILIO_API_KEY_SECRET");
        const string roomSid      = "RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

        TwilioClient.Init(apiKeySid, apiKeySecret);

        var recordings = RecordingResource.Read(
            groupingSid: new List <string>()
        {
            roomSid
        });

        foreach (var recording in recordings)
        {
            Console.WriteLine(recording.Sid);
        }
    }
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var recordingStatusCallbackEvent = new List <string> {
            "in-progress completed"
        };

        var recording = RecordingResource.Create(
            recordingStatusCallback: new Uri("https://myapp.com/recording-events"),
            recordingStatusCallbackEvent: recordingStatusCallbackEvent,
            recordingChannels: "dual",
            pathCallSid: "CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
            );

        Console.WriteLine(recording.Sid);
    }
        public void TestReadRequest()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();
            var request          = new Request(
                HttpMethod.Get,
                Twilio.Rest.Domain.Api,
                "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings.json",
                ""
                );

            twilioRestClient.AccountSid.Returns("ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
            twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content"));

            try
            {
                RecordingResource.Read(client: twilioRestClient);
                Assert.Fail("Expected TwilioException to be thrown for 500");
            }
            catch (ApiException) {}
            twilioRestClient.Received().Request(request);
        }
Exemplo n.º 17
0
        public void TestDeleteRequest()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();
            var request          = new Request(
                HttpMethod.Delete,
                Twilio.Rest.Domain.Api,
                "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Conferences/CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json",
                ""
                );

            twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content"));

            try
            {
                RecordingResource.Delete("CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient);
                Assert.Fail("Expected TwilioException to be thrown for 500");
            }
            catch (ApiException) {}
            twilioRestClient.Received().Request(request);
        }
        public void TestUpdateRequest()
        {
            var twilioRestClient = Substitute.For <ITwilioRestClient>();
            var request          = new Request(
                HttpMethod.Post,
                Twilio.Rest.Domain.Api,
                "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Calls/CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json",
                ""
                );

            request.AddPostParam("Status", Serialize(RecordingResource.StatusEnum.InProgress));
            twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
            twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content"));

            try
            {
                RecordingResource.Update("CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", RecordingResource.StatusEnum.InProgress, client: twilioRestClient);
                Assert.Fail("Expected TwilioException to be thrown for 500");
            }
            catch (ApiException) {}
            twilioRestClient.Received().Request(request);
        }
Exemplo n.º 19
0
 /// <summary>
 /// Constructs the full recording URI of the Twilio recording resource.
 /// </summary>
 /// <param name="recording">The recording resource.</param>
 /// <param name="log">Trace logging instance.</param>
 /// <returns>The URI of the recording.</returns>
 public Uri GetFullRecordingUri(RecordingResource recording, ILogger log)
 {
     return(GetTwilioUri(recording.Uri));
 }
 /// <summary>
 /// Gets the full recording URI.
 /// </summary>
 /// <param name="recording">The recording resource.</param>
 /// <param name="log">Trace logger instance.</param>
 /// <returns>The full recording URI.</returns>
 public Uri GetFullRecordingUri(RecordingResource recording, ILogger log)
 {
     return(null);
 }
Exemplo n.º 21
0
        public async Task <string> CallMeetingAsync(string mNum)
        {
            Console.WriteLine(">\tDialing into webex meeting with access code " + mNum);
            TwilioClient.Init(_accountSid, _authToken);

            // call in number and call from number
            const string vancouverTollNum = "+14084189388";
            const string twilioAccNum     = "+15046366992";

            // this is the webex call vancouver toll number
            var to = new PhoneNumber(vancouverTollNum);

            // This is the twilio number linked to our account
            var from = new PhoneNumber(twilioAccNum);

            Console.WriteLine(">\tCalling In...");
            // makes the call resource to send
            var call = CallResource.Create(to, from,
                                           //method: Twilio.Http.HttpMethod.Get,
                                           sendDigits: FormatDigits(mNum) + "wwww#",
                                           // Records the outgoing call
                                           record: true,
                                           // default message that plays from the url
                                           url: new Uri("http://lonelycompany.ca/test.xml")

                                           );

            var callSid = call.Sid;

            // set status to default value
            CallResource.StatusEnum status = CallResource.StatusEnum.Queued;

            // for checking what Sid was used in the loop
            CallResource finishedCall = null;

            // wait for meeting to finish
            while (status != CallResource.StatusEnum.Completed)
            {
                // return all the call resources for account user
                var calls = CallResource.ReadAsync().Result;

                // find element in list
                finishedCall = calls.First(record => record.Sid == callSid);
                var pendingStatus = finishedCall.Status;

                if (pendingStatus == CallResource.StatusEnum.Ringing)
                {
                    Console.WriteLine(">\tRinging...");
                    status = pendingStatus;
                }
                else if (pendingStatus == CallResource.StatusEnum.InProgress &&
                         status == pendingStatus)
                {
                    Console.WriteLine(">\tCalled in!");
                    status = pendingStatus;
                }

                // check if the record is
                if (pendingStatus == CallResource.StatusEnum.Completed)
                {
                    Console.WriteLine(">\tCall Completed");
                    // if the call has been completed return the completed status
                    status = pendingStatus;
                }
                else if (status == CallResource.StatusEnum.Canceled ||
                         status == CallResource.StatusEnum.Failed ||
                         status == CallResource.StatusEnum.NoAnswer)
                {
                    Console.Error.WriteLine(">\tThe call was not completed.");
                    break;
                }
            }

            //var subresourceUri = finishedCall.SubresourceUris;


            // retrieve 10 most recent recordings
            var recordings      = RecordingResource.Read(limit: 10);
            var resultRecording = recordings.First(recording => recording.CallSid == callSid);

            //Console.WriteLine("The recording call sid is: " + resultRecording.CallSid);
            //Console.WriteLine("The recording sid is: " + resultRecording.Sid);

            return(resultRecording.Sid);
        }
Exemplo n.º 22
0
        /// <summary>
        /// This Functions goes to Twilio, make a call, Twilio save a record of this call then goes to Google Speech to text API and transcribe the call saving a txt local file
        /// </summary>
        public static void Call()
        {
            Console.WriteLine("Init Twilio API...");
            ///Twilio SID and Token
            const string accountSid = "ACa62c3db32794048447xxxxxxxxxxxx";
            const string authToken  = "f420e52ee6774e0898fdxxxxxxxxxxxx";

            TwilioClient.Init(accountSid, authToken);
            Console.WriteLine("Let's make a call, please provide me your phone number (format: +AreaNumner)");
            var phoneNumber = Console.ReadLine();
            var call        = CallResource.Create(
                record: true,
                url: new Uri("https://corn-collie-1715.twil.io/assets/Voice.xml"), //is a best practice to upload the assets in twilio account
                to: new Twilio.Types.PhoneNumber(phoneNumber),
                from: new Twilio.Types.PhoneNumber("+000000000")                   //Twilio number created in you account
                );

            RecordingResource recordings;

            RecordingResource.StatusEnum recordingStatus;

            do
            {
                recordings = RecordingResource.Read().Where(x => x.CallSid == call.Sid).FirstOrDefault();
            } while (recordings == null);

            do
            {
                Console.WriteLine("Processing Recording....");
                recordingStatus = RecordingResource.Read().Where(x => x.CallSid == call.Sid).Select(x => x.Status).FirstOrDefault();
            } while (recordingStatus == RecordingResource.StatusEnum.Processing);

            WebClient wc = new WebClient();

            wc.DownloadFile(@"https://api.twilio.com/" + recordings.Uri.Replace("json", "wav"), recordings.Sid + ".wav");
            Console.WriteLine("Now we have the recording,Lets sync with Google Services, please wait... ");
            string audioDirectory = Path.Combine(Environment.CurrentDirectory, recordings.Sid + ".wav");
            var    memoryStream   = new MemoryStream();

            using (var file = new FileStream(audioDirectory, FileMode.Open, FileAccess.Read))
                file.CopyTo(memoryStream);

            var speechClient  = SpeechClient.Create();
            var storageClient = StorageClient.Create();

            //We have to upload the file to google storage before transcribe
            var uploadedWavFile = storageClient.UploadObject(GoogleBucketName, recordings.Sid + ".wav", "audio/wav", memoryStream);

            //Get the file
            var storageObject = storageClient.GetObject(GoogleBucketName, recordings.Sid + ".wav");
            var storageUri    = $@"gs://{GoogleBucketName}/{storageObject.Name}";

            storageObject.Acl = storageObject.Acl ?? new List <ObjectAccessControl>();
            storageClient.UpdateObject(storageObject, new UpdateObjectOptions
            {
                PredefinedAcl = PredefinedObjectAcl.PublicRead
            });

            Console.WriteLine("We will start to transcribe your recording, this operation will take few moments...");
            //Speech to Text operation
            var longOperation = speechClient.LongRunningRecognize(new RecognitionConfig()
            {
                //the properties below are not the required for MP3 files and that's why the opertion returns null, we can make this more
                //generic knowing what kind of properties we need for each file type or standarize the result just for one type.
                //Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
                //SampleRateHertz = 44100,
                EnableWordTimeOffsets = true,
                LanguageCode          = "en-US"
            }, RecognitionAudio.FromStorageUri(storageUri));

            longOperation = longOperation.PollUntilCompleted();
            //TODO: fix this implementation. Sometimes there is a null being returned from longOperation.Result
            var response = longOperation.Result;

            if (response != null && response.Results != null && response.Results.Count > 0)
            {
                Console.WriteLine("Is done!, now we will create a file with the complete transcription for you...");
                //var resultArray = (JsonConvert.DeserializeObject<RootObject>(response.Results.ToString()));
                foreach (var res in response.Results)
                {
                    string transcription = res.Alternatives.Select(x => x.Transcript).FirstOrDefault();
                    File.AppendAllText(Path.Combine(Environment.CurrentDirectory, recordings.Sid + ".txt"), transcription);
                }
            }
            Console.WriteLine("File Created!, Now we will clean our directories and give you the path of the mentioned file...");
            storageClient.DeleteObject(GoogleBucketName, storageObject.Name);

            if (File.Exists(Path.Combine(Environment.CurrentDirectory, recordings.Sid + ".wav")))
            {
                File.Delete(Path.Combine(Environment.CurrentDirectory, recordings.Sid + ".wav"));
            }

            Console.WriteLine("You can find your txt file here: " + Path.Combine(Environment.CurrentDirectory, recordings.Sid + ".txt"));
            Console.ReadLine();
        }
Exemplo n.º 23
0
        public async Task <List <RecordingResource> > Recordings()
        {
            var recordings = await RecordingResource.ReadAsync(client : _client);

            return(recordings.ToList());
        }