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); }
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(""); }
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); }
public void TestCreateFromJson() { var callbackEvent = CallbackEvent.CreateFromJson("{\"eventType\": \"speak\", \"state\": \"PLAYBACK_STOP\"}"); Assert.Equal(CallbackEventType.Speak, callbackEvent.EventType); Assert.Equal(CallbackEventState.PlaybackStop, callbackEvent.State); }
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); }
public void TestCreateFromJson3() { var callbackEvent = CallbackEvent.CreateFromJson("{}"); Assert.Equal(CallbackEventType.Unknown, callbackEvent.EventType); }