From fd667184f812cbb81cc132c5145af9eb17cade0e Mon Sep 17 00:00:00 2001 From: "aden.chen" Date: Tue, 4 Nov 2025 11:18:24 +0800 Subject: [PATCH 1/2] Supports allow to interrupt the welcome message playing --- .../Controllers/TwilioOutboundController.cs | 10 +++++++++- .../Models/ConversationalVoiceRequest.cs | 3 +++ .../Functions/OutboundPhoneCallFn.cs | 6 ++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioOutboundController.cs b/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioOutboundController.cs index 5543af38a..5fb28e3f5 100644 --- a/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioOutboundController.cs +++ b/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioOutboundController.cs @@ -53,7 +53,15 @@ await HookEmitter.Emit(_services, { instruction.SpeechPaths.Add(request.InitAudioFile); } - response = twilio.ReturnNoninterruptedInstructions(instruction); + + if (request.WelcomeMessageAllowToBeInterrupted.HasValue && request.WelcomeMessageAllowToBeInterrupted.Value) + { + response = twilio.ReturnInstructions(instruction); + } + else + { + response = twilio.ReturnNoninterruptedInstructions(instruction); + } } return TwiML(response); diff --git a/src/Plugins/BotSharp.Plugin.Twilio/Models/ConversationalVoiceRequest.cs b/src/Plugins/BotSharp.Plugin.Twilio/Models/ConversationalVoiceRequest.cs index 344ddc06f..5a7c4adf2 100644 --- a/src/Plugins/BotSharp.Plugin.Twilio/Models/ConversationalVoiceRequest.cs +++ b/src/Plugins/BotSharp.Plugin.Twilio/Models/ConversationalVoiceRequest.cs @@ -42,6 +42,9 @@ public class ConversationalVoiceRequest : VoiceRequest [FromForm] public int MachineDetectionDuration { get; set; } + [FromQuery(Name = "welcome_message_allow_to_be_interrupted")] + public bool? WelcomeMessageAllowToBeInterrupted { get; set; } + [FromForm] public int CallDuration { get; set; } diff --git a/src/Plugins/BotSharp.Plugin.Twilio/OutboundPhoneCallHandler/Functions/OutboundPhoneCallFn.cs b/src/Plugins/BotSharp.Plugin.Twilio/OutboundPhoneCallHandler/Functions/OutboundPhoneCallFn.cs index 3c5532bdb..5374e05cc 100644 --- a/src/Plugins/BotSharp.Plugin.Twilio/OutboundPhoneCallHandler/Functions/OutboundPhoneCallFn.cs +++ b/src/Plugins/BotSharp.Plugin.Twilio/OutboundPhoneCallHandler/Functions/OutboundPhoneCallFn.cs @@ -25,6 +25,7 @@ public class OutboundPhoneCallFn : IFunctionCallback public string Name => "util-twilio-outbound_phone_call"; public string Indication => "Dialing the phone number"; + public const string WelcomeMessageAllowToBeInterrupted = "welcome_message_allow_to_be_interrupted"; public OutboundPhoneCallFn( IServiceProvider services, @@ -106,6 +107,11 @@ public async Task Execute(RoleDialogModel message) processUrl += $"&init-audio-file={initAudioFile}"; } + if (agent.Labels.Contains(WelcomeMessageAllowToBeInterrupted)) + { + processUrl += $"${WelcomeMessageAllowToBeInterrupted}=true"; + } + // Make outbound call var call = await CallResource.CreateAsync( url: new Uri(processUrl), From 573cbb4419e4a398b382203c7077f5130589bc15 Mon Sep 17 00:00:00 2001 From: "aden.chen" Date: Tue, 4 Nov 2025 11:33:54 +0800 Subject: [PATCH 2/2] modify key of WelcomeMessageAllowToBeInterrupted --- .../BotSharp.Plugin.Twilio/Models/ConversationalVoiceRequest.cs | 2 +- .../OutboundPhoneCallHandler/Functions/OutboundPhoneCallFn.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Plugins/BotSharp.Plugin.Twilio/Models/ConversationalVoiceRequest.cs b/src/Plugins/BotSharp.Plugin.Twilio/Models/ConversationalVoiceRequest.cs index 5a7c4adf2..550ff5fd0 100644 --- a/src/Plugins/BotSharp.Plugin.Twilio/Models/ConversationalVoiceRequest.cs +++ b/src/Plugins/BotSharp.Plugin.Twilio/Models/ConversationalVoiceRequest.cs @@ -42,7 +42,7 @@ public class ConversationalVoiceRequest : VoiceRequest [FromForm] public int MachineDetectionDuration { get; set; } - [FromQuery(Name = "welcome_message_allow_to_be_interrupted")] + [FromQuery(Name = "welcome_msg_allow_interrupt")] public bool? WelcomeMessageAllowToBeInterrupted { get; set; } [FromForm] diff --git a/src/Plugins/BotSharp.Plugin.Twilio/OutboundPhoneCallHandler/Functions/OutboundPhoneCallFn.cs b/src/Plugins/BotSharp.Plugin.Twilio/OutboundPhoneCallHandler/Functions/OutboundPhoneCallFn.cs index 5374e05cc..4bdf0e23a 100644 --- a/src/Plugins/BotSharp.Plugin.Twilio/OutboundPhoneCallHandler/Functions/OutboundPhoneCallFn.cs +++ b/src/Plugins/BotSharp.Plugin.Twilio/OutboundPhoneCallHandler/Functions/OutboundPhoneCallFn.cs @@ -25,7 +25,7 @@ public class OutboundPhoneCallFn : IFunctionCallback public string Name => "util-twilio-outbound_phone_call"; public string Indication => "Dialing the phone number"; - public const string WelcomeMessageAllowToBeInterrupted = "welcome_message_allow_to_be_interrupted"; + public const string WelcomeMessageAllowToBeInterrupted = "welcome_msg_allow_interrupt"; public OutboundPhoneCallFn( IServiceProvider services,