Merge pull request #1055 from adenchen123/master

Add hook execution options to Twilio controllers
This commit is contained in:
易磊 2025-05-15 10:18:44 +08:00 committed by GitHub
commit 6fa8950f79
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 3 deletions

View file

@ -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 @@ public class TwilioInboundController : TwilioController
if (twilio.MachineDetected(request))
{
response = new VoiceResponse();
var emitOptions = new HookEmitOption<ITwilioCallStatusHook>
{
ShouldExecute = hook => hook.IsMatch(request)
};
await HookEmitter.Emit<ITwilioCallStatusHook>(_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));

View file

@ -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 class TwilioOutboundController : TwilioController
{
response = new VoiceResponse();
var emitOptions = new HookEmitOption<ITwilioCallStatusHook>
{
ShouldExecute = hook => hook.IsMatch(request)
};
await HookEmitter.Emit<ITwilioCallStatusHook>(_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));