From c89ad76ddb5cbe2bef14cfb0f396ac6b24980d10 Mon Sep 17 00:00:00 2001 From: Haiping Chen Date: Tue, 1 Apr 2025 14:30:44 -0500 Subject: [PATCH] OnCallBusyStatus --- .../Controllers/TwilioVoiceController.cs | 4 ++++ .../Interfaces/ITwilioCallStatusHook.cs | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioVoiceController.cs b/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioVoiceController.cs index 2a1c7cd0..6078dd7b 100644 --- a/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioVoiceController.cs +++ b/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioVoiceController.cs @@ -348,6 +348,10 @@ public class TwilioVoiceController : TwilioController await HookEmitter.Emit(_services, x => x.OnUserDisconnected(request)); } } + else if (request.CallStatus == "busy") + { + await HookEmitter.Emit(_services, x => x.OnCallBusyStatus(request)); + } return Ok(); } diff --git a/src/Plugins/BotSharp.Plugin.Twilio/Interfaces/ITwilioCallStatusHook.cs b/src/Plugins/BotSharp.Plugin.Twilio/Interfaces/ITwilioCallStatusHook.cs index bbc243c3..899cc526 100644 --- a/src/Plugins/BotSharp.Plugin.Twilio/Interfaces/ITwilioCallStatusHook.cs +++ b/src/Plugins/BotSharp.Plugin.Twilio/Interfaces/ITwilioCallStatusHook.cs @@ -10,4 +10,13 @@ public interface ITwilioCallStatusHook Task OnRecordingCompleted(ConversationalVoiceRequest request); Task OnTranscribeCompleted(ConversationalVoiceRequest request); Task OnVoicemailStarting(ConversationalVoiceRequest request); + + /// + /// 1. The recipient's phone line is already engaged. + /// 2. Some users block unknown or spam calls, which may cause a "busy" status. + /// 3. Some carriers explicitly return a busy signal instead of routing the call to voicemail. + /// + /// + /// + Task OnCallBusyStatus(ConversationalVoiceRequest request); }