chatwoot/app/javascript/dashboard/components-next/message/bubbles
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
..
Email fix: Respect app direction for incoming email content (#14011) 2026-04-14 13:45:34 +05:30
Text chore: Improve translation service with HTML and plain text support (#11305) 2025-04-16 17:59:06 +05:30
Activity.vue chore: Update message bubble orientation (#11348) 2025-05-06 13:21:52 +05:30
Audio.vue fix: Fix the issue with context menu for right click on images and videos (#11114) 2025-03-19 20:09:44 -07:00
Base.vue fix: Formatting issue with reply preview content (#13399) 2026-01-30 16:35:32 +05:30
BaseAttachment.vue fix: Truncate name in attachment bubble (#11540) 2025-05-27 14:24:43 -06:00
Contact.vue feat: Show shared contact's name in Telegram channel (#10856) 2025-02-11 19:39:54 +05:30
CSAT.vue feat: Improve CSAT responses (#11485) 2025-05-16 14:18:52 +05:30
Dyte.vue chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
Embed.vue feat: TikTok channel (#12741) 2025-12-17 07:54:50 -08:00
File.vue feat: integrate new bubbles (#10550) 2024-12-19 18:41:55 +05:30
Form.vue feat: Add message support for input_select type in LINE (#11628) 2025-06-10 15:10:51 +05:30
Image.vue feat: add retry loadWithRetry composable (#12873) 2025-11-20 19:40:20 +05:30
InstagramStory.vue feat: Display story replies with attachment and context label (#13356) 2026-01-28 16:47:04 +04:00
Location.vue feat: integrate new bubbles (#10550) 2024-12-19 18:41:55 +05:30
Unsupported.vue chore: Add unsupported message for Tiktok (#13380) 2026-01-28 19:34:11 +04:00
Video.vue fix: Video bubble click and play issue (#12764) 2025-11-05 15:40:11 +05:30
VoiceCall.vue feat(voice): Attach call recordings + show call duration on the bubble (#14344) 2026-05-04 17:14:01 +04:00