Production-grade History + Voicemail tabs with media-player tool

Featurekamo-internal
Shipped
April 27, 2026 at 9:33 PM UTC
Author
kamo
Commit
d16d5b9

History tab (SoftphoneHistoryTab.tsx): - Infinite scroll via IntersectionObserver inside the panel's scroll container - Filter chips: All / Inbound / Outbound / Missed / Recorded - Recording icon in row actions when the imaging side has a Recording row - Per-row overflow menu (Add to contacts) - Click-to-call back via existing dialpad Voicemail tab (SoftphoneVoicemailTab.tsx): - Infinite scroll, filter chips (All / Unread / Has audio) - Per-row Play / Call back / More actions - Auto-mark-read on play - Two-option delete dialog: Archive (soft-hide, all users) vs Permanently delete (gated by VOIP_VOICEMAIL_PERMANENT_DELETE right; falls back to disabled state for users without it) - Mark-all-read button with no-op-when-zero affordance MediaPlayer popup tool **************** - Audio: synthesized waveform-style scrubber, click-to-seek, Replay10/Forward10, playback rate (0.5x-2x), loop, volume + mute, output device honored from AV settings - Video: contained viewport, PiP, fullscreen, same scrubber + controls - Multi-track selector for call recordings (master + each per-channel leg) - Download - Two source modes: voipApi recording (call/VM) or imaging asset by imgId - Registered in tools/registry/registrations.ts as multi-instance Hook + plumbing: - useSoftphone exposes paginated history + voicemails (loadMore, hasMore, isLoading) and archive/permanent-delete actions - voipApi gains lookupRecordings, getRecordingMetadata, archiveVoicemail, paginated getVoicemails - /api/voip proxy passes audio/video/octet-stream bodies through with **************** intact (no buffering) so media elements scrub - New **************** forwards to DocsService's new streaming endpoint with Range - VOIP_VOICEMAIL_PERMANENT_DELETE added to the frontend RoleRightType registry so checkRight gates the delete UI

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing