chatwoot/app/javascript/shared/helpers
Muhsin Keloth 0bd0cab868
feat(voice): Attach call recordings + show call duration on the bubble (#14344)
When an inbound voice call ends, the conversation bubble now (1) renders
an inline audio player as soon as Twilio finishes the recording and (2)
shows the call duration alongside "Call ended" so the agent gets the
at-a-glance summary without opening the recording.

Fixes
https://linear.app/chatwoot/issue/PLA-118/feat-recordings-on-calls-should-be-attached-on-the-conversation
and
https://linear.app/chatwoot/issue/PLA-119/duration-of-the-call-is-not-visible-on-the-chat-bubble

## How to test

1. Set up a Twilio voice inbox and trigger an inbound call.
2. Answer the call from an agent, talk for a few seconds, then hang up.
3. As soon as the call ends, the bubble should read **"Call ended —
0:NN"** (where NN is the call duration in seconds).
4. Wait a few seconds for Twilio to finish processing the recording
(usually <30s after hangup).
5. The same bubble should now show an inline audio player below the
duration. Press play; the recording should be audible.
6. Refresh the page — both the duration and the player should still be
there.
7. End a second call on the same conversation — its bubble should get
its own duration + player, independent of the first.

---------

Co-authored-by: Muhsin <12408980+muhsin-k@users.noreply.github.com>
2026-05-04 17:14:01 +04:00
..
markdownIt chore: Use markdown-it instead of marked (#6123) 2023-03-03 13:26:54 +05:30
specs fix: prevent Ctrl+Enter adding extra line break on send (Windows) (#14077) 2026-04-20 18:16:41 +05:30
vuex feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
AudioNotificationHelper.js feat: update tool-chain to latest (#7975) 2023-09-27 14:02:34 +05:30
BaseActionCableConnector.js perf: reduce presence update frequency and fix background tab throttling (#13726) 2026-03-09 18:23:44 +05:30
cache.js chore: Add cache to improve widget performance (#11163) 2025-03-24 16:04:49 -07:00
clipboard.js feat: Add the frontend support for MFA (#12372) 2025-09-18 21:16:06 +05:30
colorHelper.js feat: Update public portal colors with new design (#8230) 2023-11-23 08:16:52 +05:30
CustomErrors.js feat: Inline edit support for contact info (#13976) 2026-04-14 16:53:40 +04:00
CustomEventHelper.js feat: Add chatwoot:error sdk event (#3998) 2022-02-21 09:40:11 +05:30
DateHelper.js chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
documentHelper.js feat: add FE changes for captain pdf support for faq generation (#12115) 2025-09-02 19:01:16 +05:30
emoji.js chore: Check for empty strings in name formatter (#5434) 2022-09-14 07:15:04 -07:00
FileHelper.js fix: Prevent unsupported file types on clipboard paste (#13182) 2026-01-14 13:07:46 +04:00
HTMLSanitizer.js fix: Render links with target attribute (#4685) 2022-05-16 11:29:05 +05:30
IntegrationHelper.js feat: Upgrade Dyte apis to v2 (#10706) 2025-02-19 14:47:48 -08:00
KeyboardHelpers.js fix: prevent Ctrl+Enter adding extra line break on send (Windows) (#14077) 2026-04-20 18:16:41 +05:30
localStorage.js feat: Implement reply to for reply editor (#8063) 2023-10-10 19:13:12 +05:30
MessageFormatter.js fix: Prevent template variables from becoming links (#10725) 2025-01-23 18:18:14 +05:30
MessageTypeHelper.js feat: TikTok channel (#12741) 2025-12-17 07:54:50 -08:00
mitt.js chore: Replace eventBus with mitt.js [CW-3275] (#9539) 2024-05-31 15:50:36 +05:30
platform.js fix: prevent Ctrl+Enter adding extra line break on send (Windows) (#14077) 2026-04-20 18:16:41 +05:30
portalHelper.js feat: Sync Popular Articles locale with widget locale (#11754) 2025-06-24 19:52:44 +05:30
ReportsDataHelper.js feat: add Conversation traffic heatmap (#6508) 2023-03-07 09:01:58 +05:30
sanitizeData.js feat: multiple UX improvements to labels (#7358) 2023-06-25 18:49:49 +05:30
sessionStorage.js feat: Prevent saving preferences and status when impersonating (#11164) 2025-05-20 17:34:30 -07:00
timeHelper.js feat(voice): Attach call recordings + show call duration on the bubble (#14344) 2026-05-04 17:14:01 +04:00
Validators.js fix: Handle slug validation errors in Help Center (#11368) 2025-04-24 16:58:05 +05:30