Call log
Call history the way a phone shows it: direction icons, outcomes, durations — and each row expands into the call's AI summary, keypad interactions, and transcript.
Expand the completed call to read its transcript — and the Brightside Dental call to see a gather result.
Installation
npx shadcn@latest add @handset/call-logInstalls call-transcript and call-keypad as dependencies for the expandable rows.
Keypad interactions
When a call used the keypad — a POST /v1/calls/{id}/gather asked “press 1 to confirm”, the caller pressed digits mid-call, or your app sent DTMF to navigate a phone tree — the expansion shows the whole exchange: the spoken prompt, the digits collected (or why none were: timeout / hangup), loose keypresses by party, and digits sent to the far end. Calls without keypad activity show nothing extra. The detail comes from the call's event timeline (GET /v1/calls/{id}), fetched once when a row expands.
Usage
import { CallLog } from "@/components/handset/call-log";
<CallLog /> // everything
<CallLog phoneNumberId={number.id} /> // one line's historyProps
| Prop | Type | Default | Description |
|---|---|---|---|
| tenantId | string | — | Scope to one tenant (usually handled server-side). |
| phoneNumberId | string | — | Only calls on one number. |
| formatNumber | (e164: string) => string | US formatter | Display formatting for numbers. |
| pollMs | number | 10000 | Refresh interval. 0 disables polling. |
| limit | number | 25 | Page size. |
| className | string | — | Merged onto the list wrapper. |