Ejemplo n.º 1
0
            public async Task <string> MessageCallback()
            {
                string json;
                var    client = new Client(UserId, Token, Secret);

                using (var reader = new StreamReader(Request.Body))
                {
                    json = await reader.ReadToEndAsync();
                }
                var eventData = CallbackEvent.CreateFromJson(json);

                switch (eventData.EventType)
                {
                case CallbackEventType.Sms:

                    await client.Message.SendAsync(new MessageData
                    {
                        From = PhoneNumber,
                        To   = eventData.From,
                        Text = "AutoReply Message"
                    });

                    break;
                }
                return("");
            }
        public void TestRedirectEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("RedirectEvent"));

            Assert.Equal(CallbackEventType.Redirect, callbackEvent.EventType);
            Assert.Equal(CallState.Active, callbackEvent.CallState);
        }
Ejemplo n.º 3
0
            public async Task <string> Forward()
            {
                string json;
                var    client = new Client(UserId, Token, Secret);

                using (var reader = new StreamReader(Request.Body))
                {
                    json = await reader.ReadToEndAsync();
                }
                var eventData = CallbackEvent.CreateFromJson(json);

                switch (eventData.EventType)
                {
                case CallbackEventType.Incomingcall:
                    var app = await client.Application.GetAsync(ApplicationId);

                    if (!app.AutoAnswer)
                    {
                        // Answer call itself if AutoAnswer = false
                        // You can remove this handler of CallbackEventType.Incomingcall if you configure AutoAnswer = true for the Catapult app on dashboard
                        await client.Call.AnswerAsync(eventData.CallId);
                    }
                    break;

                case CallbackEventType.Answer:
                    await client.Call.TransferAsync(eventData.CallId, ForwardToPhoneNumber);

                    break;
                }
                return("");
            }
Ejemplo n.º 4
0
 private static void AddRouteHandler(this IApplicationBuilder builder, string route, Func <CallbackEvent, HttpContext, Task> handler)
 {
     if (handler == null)
     {
         return;
     }
     builder.Map(route, b => {
         b.Use(async(context, next) => {
             if (context.Request.Method != HttpMethods.Post || !(context.Request.ContentType ?? "").Contains("/json"))
             {
                 await next();
                 return;
             }
             var logger = context.RequestServices.GetService <ILogger>();
             try
             {
                 using (var streamReader = new StreamReader(context.Request.Body, System.Text.Encoding.UTF8))
                 {
                     var json = await streamReader.ReadToEndAsync();
                     logger?.LogDebug("BandwidthEventCallback", json);
                     var eventData = CallbackEvent.CreateFromJson(json);
                     await handler(eventData, context);
                 }
             }
             catch (Exception ex)
             {
                 logger?.LogError("BandwidthEventCallback", ex);
             }
             await context.Response.WriteAsync("");
         });
     });
 }
        public void TestConferencePlaybackEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("ConferencePlaybackEvent"));

            Assert.Equal(CallbackEventType.ConferencePlayback, callbackEvent.EventType);
            Assert.Equal("{conferenceId}", callbackEvent.ConferenceId);
        }
Ejemplo n.º 6
0
        public void TestCreateFromJson()
        {
            var callbackEvent = CallbackEvent.CreateFromJson("{\"eventType\": \"speak\", \"state\": \"PLAYBACK_STOP\"}");

            Assert.Equal(CallbackEventType.Speak, callbackEvent.EventType);
            Assert.Equal(CallbackEventState.PlaybackStop, callbackEvent.State);
        }
Ejemplo n.º 7
0
        public void TestCreateFromJson2()
        {
            var callbackEvent = CallbackEvent.CreateFromJson("{\"eventType\": \"sms\", \"deliveryState\": \"not-delivered\"}");

            Assert.Equal(CallbackEventType.Sms, callbackEvent.EventType);
            Assert.Equal(MessageDeliveryState.NotDelivered, callbackEvent.DeliveryState);
        }
        public void TestMmsEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("MmsEvent"));

            Assert.Equal(CallbackEventType.Mms, callbackEvent.EventType);
            Assert.Equal("m-dr4mcch2wfb6frcls677glq", callbackEvent.MessageId);
        }
        public void TestTimeoutEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("TimeoutEvent"));

            Assert.Equal(CallbackEventType.Timeout, callbackEvent.EventType);
            Assert.Equal("{callId}", callbackEvent.CallId);
        }
        public void TestTransferCompleteEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("TransferCompleteEvent"));

            Assert.Equal(CallbackEventType.TransferComplete, callbackEvent.EventType);
            Assert.Equal(CallState.Active, callbackEvent.CallState);
        }
        public void TestSmsEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("SmsEvent"));

            Assert.Equal(CallbackEventType.Sms, callbackEvent.EventType);
            Assert.Equal("{messageId}", callbackEvent.MessageId);
        }
        public void TestSpeakEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("SpeakEvent"));

            Assert.Equal(CallbackEventType.Speak, callbackEvent.EventType);
            Assert.Equal("{callId}", callbackEvent.CallId);
            Assert.Equal(CallbackEventStatus.Started, callbackEvent.Status);
        }
        public void TestRejectEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("RejectEvent"));

            Assert.Equal(CallbackEventType.Hangup, callbackEvent.EventType);
            Assert.Equal("{callId}", callbackEvent.CallId);
            Assert.Equal("CALL_REJECTED", callbackEvent.Cause);
        }
        public void TestRecordingEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("RecordingEvent"));

            Assert.Equal(CallbackEventType.Recording, callbackEvent.EventType);
            Assert.Equal("{callId}", callbackEvent.CallId);
            Assert.Equal("{recordingId}", callbackEvent.RecordingId);
        }
        public void TestHangupEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("HangupEvent"));

            Assert.Equal(CallbackEventType.Hangup, callbackEvent.EventType);
            Assert.Equal("{callId}", callbackEvent.CallId);
            Assert.Equal("NORMAL_CLEARING", callbackEvent.Cause);
        }
        public void TestIncomingCallEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("IncomingCallEvent"));

            Assert.Equal(CallbackEventType.Incomingcall, callbackEvent.EventType);
            Assert.Equal("{callId}", callbackEvent.CallId);
            Assert.Equal("{appId}", callbackEvent.ApplicationId);
        }
        public void TestGatherEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("GatherEvent"));

            Assert.Equal(CallbackEventType.Gather, callbackEvent.EventType);
            Assert.Equal("{callId}", callbackEvent.CallId);
            Assert.Equal("25", callbackEvent.Digits);
        }
        public void TestDtmfEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("DtmfEvent"));

            Assert.Equal(CallbackEventType.Dtmf, callbackEvent.EventType);
            Assert.Equal("{callId}", callbackEvent.CallId);
            Assert.Equal("5", callbackEvent.DtmfDigit);
        }
        public void TestTranscriptionEvent()
        {
            var callbackEvent = CallbackEvent.CreateFromJson(Helpers.GetJsonResourse("TranscriptionEvent"));

            Assert.Equal(CallbackEventType.Transcription, callbackEvent.EventType);
            Assert.Equal("{recordingId}", callbackEvent.RecordingId);
            Assert.Equal("{transcriptionId}", callbackEvent.TranscriptionId);
            Assert.Equal(CallbackEventState.Completed, callbackEvent.State);
        }
Ejemplo n.º 20
0
        public void TestCreateFromJson3()
        {
            var callbackEvent = CallbackEvent.CreateFromJson("{}");

            Assert.Equal(CallbackEventType.Unknown, callbackEvent.EventType);
        }