From 567631b8664c77a0b9cb421cd386c6786889ea5d Mon Sep 17 00:00:00 2001 From: Tanmay Deep Sharma Date: Tue, 5 May 2026 18:01:14 +0700 Subject: [PATCH] feat(voice): subscribe to calls webhook + gate WhatsApp calling on channel_voice flag - Add 'calls' to the WhatsApp WABA override_callback subscribed_fields so a fresh embedded-signup connection (or a re-register) automatically receives call webhooks from Meta. Previously required a manual App Dashboard step. - Gate Channel::Whatsapp#voice_enabled? on the account-level 'channel_voice' feature flag, matching the entitlement Twilio voice channel creation already requires. Cascades through the controller, webhook services, and inbox jbuilder voice_enabled serialization (FE button hides automatically). --- app/models/channel/whatsapp.rb | 3 ++- app/services/whatsapp/facebook_api_client.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/models/channel/whatsapp.rb b/app/models/channel/whatsapp.rb index 12b18c90b..e1d4b226a 100644 --- a/app/models/channel/whatsapp.rb +++ b/app/models/channel/whatsapp.rb @@ -46,7 +46,8 @@ class Channel::Whatsapp < ApplicationRecord def voice_enabled? provider == 'whatsapp_cloud' && provider_config['source'] == 'embedded_signup' && - provider_config['calling_enabled'].present? + provider_config['calling_enabled'].present? && + account.feature_enabled?('channel_voice') end def provider_service diff --git a/app/services/whatsapp/facebook_api_client.rb b/app/services/whatsapp/facebook_api_client.rb index fa09a4b44..94e46dabd 100644 --- a/app/services/whatsapp/facebook_api_client.rb +++ b/app/services/whatsapp/facebook_api_client.rb @@ -86,7 +86,7 @@ class Whatsapp::FacebookApiClient body: { override_callback_uri: callback_url, verify_token: verify_token, - subscribed_fields: %w[messages smb_message_echoes] + subscribed_fields: %w[messages smb_message_echoes calls] }.to_json )