chatwoot/app/javascript/dashboard/components-next/Contacts
Muhsin Keloth 0e122188e9
feat: Add voice calling as a capability on Twilio SMS channel(Enterprise) (#13963)
Voice calling is now a capability on the existing TwilioSms rather than
a separate Voice model. A single Twilio phone number handles both SMS
and voice calls through one inbox.
Fixes
https://linear.app/chatwoot/issue/CW-6683/add-voice-calling-as-a-capability-on-twilio-sms-channel
and https://linear.app/chatwoot/issue/PLA-120/add-the-support-for-sms

**What changed**
- Replaced Channel::Voice with voice_enabled flag on Channel::TwilioSms
- Added voice_enabled, twiml_app_sid, api_key_secret columns to
channel_twilio_sms table
  - Dropped channel_voice table (no production data)
- All voice logic lives in Enterprise layer via
prepend_mod_with('Channel::TwilioSms')
- Added Voice settings tab on Twilio SMS inbox settings to
enable/disable voice
  - Validates Twilio number voice capability before provisioning
- Teardown service cleans up TwiML app and credentials when voice is
disabled
- Frontend voice detection uses isVoiceCallEnabled() /
getVoiceCallProvider() helpers — extensible to future providers
  - Gated by channel_voice feature flag

**How to test**

1. Enable feature flag:
Account.find(<id>).enable_features('channel_voice')
2. Create voice inbox: Inboxes → Voice tile → enter Twilio credentials →
verify incoming/outgoing calls and SMS work
3. Enable voice on existing SMS inbox: Inboxes → select Twilio SMS inbox
→ Voice tab → toggle on → provide API key credentials → verify calls
work
4. Disable voice: Voice tab → toggle off → verify TwiML app is deleted,
credentials cleared, SMS still works
5. Re-enable voice: Toggle on again → must provide api_key_secret again
→ new TwiML app provisioned

---------

Co-authored-by: Muhsin <12408980+muhsin-k@users.noreply.github.com>
2026-04-29 11:32:19 +04:00
..
ContactLabels feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
ContactsCard fix: prevent Country from being set to Zimbabwe in the contacts list (#14078) 2026-04-28 11:36:40 +05:30
ContactsForm fix(contacts): Show telegram id in contact details form (#13611) 2026-02-23 19:26:45 +04:00
ContactsHeader chore: update conversation sidebar interactions (#13988) 2026-04-20 13:08:19 +05:30
ContactsSidebar chore: Update theme colors and add new Inter variable fonts (#13347) 2026-01-28 14:36:04 -08:00
EmptyState chore: Update contact empty state data (#12207) 2025-08-18 12:06:03 +05:30
Pages feat: Bulk delete for contacts (#12778) 2025-11-04 17:47:53 -08:00
ContactsDetailsLayout.vue chore: update conversation sidebar interactions (#13988) 2026-04-20 13:08:19 +05:30
ContactsListLayout.vue fix(bulk-select): limit select-all to visible items; add secondary slot (#12891) 2026-04-16 12:22:53 +05:30
ContactsLoadMore.vue feat: Add infinite scroll to contacts search page (#13376) 2026-01-27 18:55:19 -08:00
VoiceCallButton.vue feat: Add voice calling as a capability on Twilio SMS channel(Enterprise) (#13963) 2026-04-29 11:32:19 +04:00