public void Execute()
        {
            var VONAGE_APPLICATION_ID   = Environment.GetEnvironmentVariable("VONAGE_APPLICATION_ID") ?? "VONAGE_APPLICATION_ID";
            var VONAGE_PRIVATE_KEY_PATH = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
            var TO_NUMBER     = Environment.GetEnvironmentVariable("TO_NUMBER") ?? "TO_NUMBER";
            var VONAGE_NUMBER = Environment.GetEnvironmentVariable("VONAGE_NUMBER") ?? "VONAGE_NUMBER";
            var ANSWER_URL    = Environment.GetEnvironmentVariable("ANSWER_URL") ?? "ANSWER_URL";

            var toEndpoint = new PhoneEndpoint()
            {
                Number = TO_NUMBER
            };
            var fromEndpoint = new PhoneEndpoint()
            {
                Number = VONAGE_NUMBER
            };

            var creds  = Credentials.FromAppIdAndPrivateKeyPath(VONAGE_APPLICATION_ID, VONAGE_PRIVATE_KEY_PATH);
            var client = new VonageClient(creds);

            var command = new CallCommand()
            {
                To = new Endpoint[] { toEndpoint }, From = fromEndpoint, AnswerUrl = new[] { ANSWER_URL }
            };
            var response = client.VoiceClient.CreateCall(command);

            Console.WriteLine($"Call Created with call uuid: {response.Uuid}");
        }
        public IActionResult MakePhoneCall(string toNumber, string fromNumber)
        {
            var appId          = _config["APPLICATION_ID"];
            var privateKeyPath = _config["PRIVATE_KEY_PATH"];

            var streamAction = new StreamAction {
                StreamUrl = new string[] { STREAM_URL }
            };
            var ncco = new Ncco(streamAction);

            var toEndpoint = new PhoneEndpoint {
                Number = toNumber
            };
            var fromEndpoint = new PhoneEndpoint {
                Number = fromNumber
            };

            var credentials = Credentials.FromAppIdAndPrivateKeyPath(appId, privateKeyPath);
            var client      = new VoiceClient(credentials);
            var callRequest = new CallCommand {
                To = new [] { toEndpoint }, From = fromEndpoint, Ncco = ncco
            };
            var call = client.CreateCall(callRequest);

            ViewBag.Uuid = call.Uuid;
            return(View("Index"));
        }
예제 #3
0
        private Response OnAnswerRecordingSplitAudio()
        {
            string TO_NUMBER    = "TO_NUMBER";
            string NEXMO_NUMBER = "NEXMO_NUMBER";

            var recordAction = new RecordAction()
            {
                Split    = "conversation",
                Channels = 2,
                EventUrl = new [] { $"{SiteBase}/webhook/record" }
            };
            var phoneEndpoint = new PhoneEndpoint()
            {
                Number = TO_NUMBER
            };
            var connectAction = new ConnectAction()
            {
                From     = NEXMO_NUMBER,
                Endpoint = new [] { phoneEndpoint }
            };

            var ncco = new Ncco(recordAction, connectAction);

            return(ncco.ToString());
        }
예제 #4
0
        public void CreateCallWithEndpointAndNcco()
        {
            var expectedUri             = $"{ApiUrl}/v1/calls/";
            var expectedResponse        = @"{
              ""uuid"": ""63f61863-4a51-4f6b-86e1-46edebcf9356"",
              ""status"": ""started"",
              ""direction"": ""outbound"",
              ""conversation_uuid"": ""CON-f972836a-550f-45fa-956c-12a2ab5b7d22""
            }";
            var expectedRequesetContent = @"{""to"":[{""number"":""14155550100"",""type"":""phone""}],""from"":{""number"":""14155550100"",""type"":""phone""},""ncco"":[{""text"":""Hello World"",""action"":""talk""}]}";

            Setup(expectedUri, expectedResponse, expectedRequesetContent);
            var creds  = Request.Credentials.FromAppIdAndPrivateKey(AppId, PrivateKey);
            var client = new VonageClient(creds);
            Task <CallResponse> response;
            var toEndpoint = new PhoneEndpoint()
            {
                Number = "14155550100"
            };

            response = client.VoiceClient.CreateCallAsync(
                toEndpoint, "14155550100", new Voice.Nccos.Ncco(new Voice.Nccos.TalkAction {
                Text = "Hello World"
            }));


            Assert.Equal("63f61863-4a51-4f6b-86e1-46edebcf9356", response.GetAwaiter().GetResult().Uuid);
            Assert.Equal("CON-f972836a-550f-45fa-956c-12a2ab5b7d22", response.GetAwaiter().GetResult().ConversationUuid);
            Assert.Equal("outbound", response.GetAwaiter().GetResult().Direction);
            Assert.Equal("started", response.GetAwaiter().GetResult().Status);
        }
예제 #5
0
        private Response OnAnswerConnect()
        {
            var talkAction = new TalkAction()
            {
                Text      = "Thank you for calling",
                VoiceName = "Kimberly"
            };
            var phoneEndpoint = new PhoneEndpoint()
            {
                Number = "TO_NUMBER"
            };
            var connectAction = new ConnectAction()
            {
                From     = Request.Query.from.Value,
                Endpoint = new[] { phoneEndpoint }
            };

            var ncco = new Ncco(talkAction, connectAction);

            return(ncco.ToString());
        }
예제 #6
0
        public void Execute()
        {
            var VONAGE_APPLICATION_ID   = Environment.GetEnvironmentVariable("VONAGE_APPLICATION_ID") ?? "VONAGE_APPLICATION_ID";
            var VONAGE_PRIVATE_KEY_PATH = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
            var TO_NUMBER     = Environment.GetEnvironmentVariable("TO_NUMBER") ?? "TO_NUMBER";
            var VONAGE_NUMBER = Environment.GetEnvironmentVariable("VONAGE_NUMBER") ?? "VONAGE_NUMBER";
            var EVENT_URL     = new[] { Environment.GetEnvironmentVariable("EVENT_URL") ?? "https://example.com" };

            var creds  = Credentials.FromAppIdAndPrivateKeyPath(VONAGE_APPLICATION_ID, VONAGE_PRIVATE_KEY_PATH);
            var client = new VonageClient(creds);

            var toEndpoint = new PhoneEndpoint()
            {
                Number = TO_NUMBER
            };
            var fromEndpoint = new PhoneEndpoint()
            {
                Number = VONAGE_NUMBER
            };
            var extraText = "";

            for (var i = 0; i < 50; i++)
            {
                extraText += $"{i} ";
            }
            var talkAction = new TalkAction()
            {
                Text = "This is a text to speech call from Vonage " + extraText
            };
            var ncco = new Ncco(talkAction);

            var command = new CallCommand()
            {
                To = new Endpoint[] { toEndpoint }, From = fromEndpoint, Ncco = ncco, EventUrl = EVENT_URL
            };
            var response = client.VoiceClient.CreateCall(command);

            Console.WriteLine($"Call Created with call uuid: {response.Uuid}");
        }
        public string Answer()
        {
            var YOUR_SECOND_NUMBER = Environment.GetEnvironmentVariable("YOUR_SECOND_NUMBER") ?? "YOUR_SECOND_NUMBER";
            var VONAGE_NUMBER      = Environment.GetEnvironmentVariable("VONAGE_NUMBER") ?? "VONAGE_NUMBER";

            var talkAction = new TalkAction()
            {
                Text      = "Thank you for calling",
                VoiceName = "Kimberly"
            };

            var secondNumberEndpoint = new PhoneEndpoint()
            {
                Number = YOUR_SECOND_NUMBER
            };
            var connectAction = new ConnectAction()
            {
                From = VONAGE_NUMBER, Endpoint = new[] { secondNumberEndpoint }
            };

            var ncco = new Ncco(talkAction, connectAction);

            return(ncco.ToString());
        }