From 5c704691d7d3b6a20af51cfde143b3331f6cd9b6 Mon Sep 17 00:00:00 2001 From: Muhsin Date: Fri, 27 Mar 2026 15:01:45 +0400 Subject: [PATCH] chore: validate Twilio number voice capability --- enterprise/app/models/enterprise/channel/twilio_sms.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/enterprise/app/models/enterprise/channel/twilio_sms.rb b/enterprise/app/models/enterprise/channel/twilio_sms.rb index 07b6a9d04..fd801edee 100644 --- a/enterprise/app/models/enterprise/channel/twilio_sms.rb +++ b/enterprise/app/models/enterprise/channel/twilio_sms.rb @@ -75,6 +75,7 @@ module Enterprise::Channel::TwilioSms end def provision_twiml_app + validate_voice_capability! service = ::Twilio::VoiceWebhookSetupService.new(channel: self) self.twiml_app_sid = service.perform rescue StandardError => e @@ -82,5 +83,12 @@ module Enterprise::Channel::TwilioSms errors.add(:base, "Twilio voice setup failed: #{e.message}") end + def validate_voice_capability! + twilio_client = Twilio::REST::Client.new(account_sid, auth_token) + number = twilio_client.incoming_phone_numbers.list(phone_number: phone_number).first + raise 'Phone number not found in Twilio account' unless number + raise 'This phone number does not support voice calls' unless number.capabilities['voice'] + end + alias provision_twiml_app_on_update provision_twiml_app end