chatwoot/app/javascript/dashboard/composables/spec
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
..
fixtures feat: Rewrite reportMixin to a composable (#10029) 2024-08-27 08:00:05 +05:30
emitter.spec.js chore: fix circleci on vite build (#10214) 2024-10-07 15:27:41 +05:30
index.spec.js chore: fix circleci on vite build (#10214) 2024-10-07 15:27:41 +05:30
useAccount.spec.js feat(v4): Update the design for the contacts list page (#10501) 2024-11-27 20:07:20 -08:00
useAdmin.spec.js feat: Replace alertMixin usage with useAlert (#9793) 2024-07-23 16:41:11 +05:30
useAgentsList.spec.js fix: Translate "None" option in agent assignment dropdown (#11060) 2025-03-11 14:49:27 -07:00
useAutomation.spec.js feat: Introduce last responding agent option to automation assign agent (#12326) 2026-04-16 18:54:35 +05:30
useCaptain.spec.js feat: track copilot events (#13342) 2026-01-22 18:38:04 +05:30
useConfig.spec.js feat: Rewrite configMixin to a composable (#9921) 2024-08-14 12:56:30 +05:30
useConversationLabels.spec.js feat: Rewrite conversation/labelMixin to a composable (#9936) 2024-08-12 17:41:12 +05:30
useConversationRequiredAttributes.spec.js feat: Conversation workflows(EE) (#13040) 2026-01-27 11:36:20 +04:00
useDetectKeyboardLayout.spec.js feat: Rewrite keyboardEventListener mixin to a composable (#9831) 2024-08-05 18:59:47 +05:30
useDropdownPosition.spec.js chore: update conversation sidebar interactions (#13988) 2026-04-20 13:08:19 +05:30
useEditableAutomation.spec.js feat: Introduce last responding agent option to automation assign agent (#12326) 2026-04-16 18:54:35 +05:30
useFileUpload.spec.js feat: allow configuring attachment upload limit (#12835) 2025-11-17 14:03:08 -08:00
useFontSize.spec.js feat: Agent language settings (#11222) 2025-09-09 14:27:36 +05:30
useImageZoom.spec.js chore: Improvements in image attachment viewer (#11040) 2025-03-18 14:01:18 +05:30
useImpersonation.spec.js feat: Prevent saving preferences and status when impersonating (#11164) 2025-05-20 17:34:30 -07:00
useInbox.spec.js feat: Add voice calling as a capability on Twilio SMS channel(Enterprise) (#13963) 2026-04-29 11:32:19 +04:00
useIntegrationHook.spec.js chore: Repalce Hook Mixin with useHook composable [CW-3454] (#9994) 2024-08-22 16:48:02 +05:30
useKeyboardEvents.spec.js refactor: useKeyboardEvents composable (#9959) 2024-08-22 16:40:55 +05:30
useKeyboardNavigableList.spec.js refactor: useKeyboardEvents composable (#9959) 2024-08-22 16:40:55 +05:30
useMacros.spec.js fix: add explicit remove assignment actions to macros and automations (#12172) 2026-04-16 15:57:41 +05:30
useReportMetrics.spec.js feat: Rewrite reportMixin to a composable (#10029) 2024-08-27 08:00:05 +05:30
useTranslations.spec.js fix: Rendering of translations based on the user's locale (#13211) 2026-01-08 18:37:42 -08:00
useUISettings.spec.js feat: allow quoted email thread in reply (#12545) 2025-09-30 17:47:09 +05:30