chatwoot/app/javascript/dashboard
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
..
api feat(voice): Wire Twilio voice flow through unified call model (#14091) 2026-04-30 11:25:39 +04:00
assets fix(ui): resolve unreadable select options in dark mode (#13207) 2026-03-30 13:05:28 +05:30
components feat(voice): Wire Twilio voice flow through unified call model (#14091) 2026-04-30 11:25:39 +04:00
components-next feat(voice): Attach call recordings + show call duration on the bubble (#14344) 2026-05-04 17:14:01 +04:00
composables feat(voice): Assignment aware visibility and join conflict for inbound calls (#14333) 2026-04-30 18:38:10 +04:00
constants feat: Add platform-wide status banners for outage notifications (#13943) 2026-04-29 17:18:38 +04:00
helper feat(voice): Assignment aware visibility and join conflict for inbound calls (#14333) 2026-04-30 18:38:10 +04:00
i18n feat(voice): Join active call from the conversation bubble (#14343) 2026-05-04 12:24:31 +04:00
mixins feat: allow configuring attachment upload limit (#12835) 2025-11-17 14:03:08 -08:00
modules fix: prevent country defaulting to Zimbabwe in search result contacts (#14098) 2026-04-28 12:08:46 +05:30
routes fix: Redirect to the conversation URL if custom_view is not available (#14340) 2026-05-01 10:53:01 -07:00
services feat: Add rich template preview for WhatsApp & Twilio Templates (#13206) 2026-04-30 18:54:34 +04:00
store feat: Add rich template preview for WhatsApp & Twilio Templates (#13206) 2026-04-30 18:54:34 +04:00
stores feat(voice): Assignment aware visibility and join conflict for inbound calls (#14333) 2026-04-30 18:38:10 +04:00
App.vue feat: Add platform-wide status banners for outage notifications (#13943) 2026-04-29 17:18:38 +04:00
featureFlags.js feat: Add voice calling as a capability on Twilio SMS channel(Enterprise) (#13963) 2026-04-29 11:32:19 +04:00