diff --git a/enterprise/app/services/twilio/voice_teardown_service.rb b/enterprise/app/services/twilio/voice_teardown_service.rb index 12e567983..87e991f47 100644 --- a/enterprise/app/services/twilio/voice_teardown_service.rb +++ b/enterprise/app/services/twilio/voice_teardown_service.rb @@ -3,6 +3,7 @@ class Twilio::VoiceTeardownService def perform delete_twiml_app if channel.twiml_app_sid.present? + clear_number_webhooks rescue StandardError => e Rails.logger.error("TWILIO_VOICE_TEARDOWN_ERROR: #{e.class} #{e.message} phone=#{channel.phone_number} account=#{channel.account_id}") ensure @@ -15,6 +16,17 @@ class Twilio::VoiceTeardownService twilio_client.applications(channel.twiml_app_sid).delete end + def clear_number_webhooks + numbers = twilio_client.incoming_phone_numbers.list(phone_number: channel.phone_number) + return if numbers.empty? + + twilio_client + .incoming_phone_numbers(numbers.first.sid) + .update(voice_url: '', status_callback: '') + rescue StandardError => e + Rails.logger.error("TWILIO_VOICE_TEARDOWN_WEBHOOK_ERROR: #{e.class} #{e.message} phone=#{channel.phone_number} account=#{channel.account_id}") + end + def clear_voice_credentials channel.update(twiml_app_sid: nil) end