From a2ddbf913cc43ddcca8931b511eb3a6b5797f4fd Mon Sep 17 00:00:00 2001 From: "aden.chen" Date: Thu, 15 May 2025 10:09:31 +0800 Subject: [PATCH] Add hook execution options to Twilio controllers --- .../Controllers/TwilioInboundController.cs | 9 +++++++-- .../Controllers/TwilioOutboundController.cs | 7 ++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioInboundController.cs b/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioInboundController.cs index 9d7df9a0b..1db293f20 100644 --- a/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioInboundController.cs +++ b/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioInboundController.cs @@ -1,4 +1,5 @@ using BotSharp.Abstraction.Agents.Models; +using BotSharp.Abstraction.Infrastructures; using BotSharp.Abstraction.Infrastructures.Enums; using BotSharp.Core.Infrastructures; using BotSharp.Plugin.Twilio.Interfaces; @@ -65,9 +66,13 @@ await HookEmitter.Emit(_services, async hook => if (twilio.MachineDetected(request)) { response = new VoiceResponse(); - + + var emitOptions = new HookEmitOption + { + ShouldExecute = hook => hook.IsMatch(request) + }; await HookEmitter.Emit(_services, - async hook => await hook.OnVoicemailStarting(request)); + async hook => await hook.OnVoicemailStarting(request), emitOptions); var url = twilio.GetSpeechPath(request.ConversationId, "voicemail.mp3"); response.Play(new Uri(url)); diff --git a/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioOutboundController.cs b/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioOutboundController.cs index 4796c02d2..4cb13a619 100644 --- a/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioOutboundController.cs +++ b/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioOutboundController.cs @@ -1,3 +1,4 @@ +using BotSharp.Abstraction.Infrastructures; using BotSharp.Core.Infrastructures; using BotSharp.Plugin.Twilio.Interfaces; using BotSharp.Plugin.Twilio.Models; @@ -33,8 +34,12 @@ public async Task InitiateOutboundCall(ConversationalVoiceRequest r { response = new VoiceResponse(); + var emitOptions = new HookEmitOption + { + ShouldExecute = hook => hook.IsMatch(request) + }; await HookEmitter.Emit(_services, - async hook => await hook.OnVoicemailStarting(request)); + async hook => await hook.OnVoicemailStarting(request), emitOptions); var url = twilio.GetSpeechPath(request.ConversationId, "voicemail.mp3"); response.Play(new Uri(url));