MCID — the malicious-call trace model
What MCID is
Malicious Call Identification (MCID) is the regulated UCaaS supplementary service a callee invokes to report a threatening, harassing, or nuisance call — dialed as*57 on NANP handsets, with equivalents in EU/APAC
regions. The service exists so a trap-trace at the carrier preserves the
originating caller’s identity for a law-enforcement or abuse-team
handoff, even when the caller spoofed or withheld their display name.
In Orbit, MCID is a provisioning and audit surface. Flagging a call does
three durable things and nothing else:
- Writes an append-only, SHA-256 hash-chained entry to your audit log
under the
voice_mcid.flaggedaction — the tamper-evident record an abuse team can rely on later. - Stores a small marker on the call record itself so the dashboard can render “flagged” on the call and recording detail pages.
- Makes the call eligible for the regulated export (see below).
- Dashboard — an agent flags from the call or recording detail page.
- Softphone star code — the receiver dials
*57after hanging up; the platform resolves the most recent inbound call to that mailbox and flags it.
The eligibility model — inbound and recent only
Two gates decide whether a flag can land. Both exist for the same reason: MCID reports the originating party of an inbound call, and the carrier-side signaling trail that makes the report actionable degrades with age.
The 7-day window is generous relative to the “immediately” framing of the
classic PSTN service while still covering a callee who decides to escalate
a few days later. Because the window has a hard edge, prompts and flag
controls decay after it closes: the dashboard hides the Flag action
on rows older than the window, and the API refuses the POST with a
409 MCID_CALL_TOO_OLD. Coach agents to flag promptly — same-day flags
carry the strongest trace data.
The flag lifecycle
The dashboard path is the one most operators use:- Open the Call or Recording detail page for an inbound call inside the window.
- Choose Flag for malicious-call trace; optionally add a free-text reason (up to 500 characters).
- The page sends
POST /api/v1/voice/mcid/:callId. The API validates the call, writes the audit entry, then claims a metadata cache cell on the call row. - The marker lives in the call record’s
metadata.mcidJSONB cache — Orbit’s extend-metadata pattern (the same one KBA verification uses), so the feature ships with no schema migration and everything stays inside your tenant schema. The cache holds the flag timestamp, the flagging user, the optional reason, the preserved originating identity, and a reference to the audit entry that anchors it.
200 with the existing record, so repeat
clicks and retried POSTs are safe and never produce duplicate markers.
The full marker shape (as it appears on metadata.mcid):
auditId and auditHash point at the exact hash-chain anchor for this
report, so an export or an abuse-team review can verify the entry without
trusting the mutable dashboard state.
The direction gate
Post a flag against a call whosedirection is not inbound and the API
refuses before writing anything:
400 — the request never writes a marker or an
audit entry. Filter the call list to inbound rows before rendering the
flag action, and the gate never fires in the first place.
Export — the regulated report
When a carrier abuse team or law-enforcement officer asks for the flagged calls, an owner or admin pulls the export:from and
to; default the last 90 days; limit of 1–500, default 200), with each
item carrying the call identifiers and the full marker above. Because it
surfaces preserved caller identity across many calls, the export is
gated to owner/admin only — an agent or developer token gets a 403.
Treat the export as a regulated handoff artifact: keep it inside the
role-gated lane, and point the asking authority at exactly the rows they
requested.
Where the endpoints live
- Voice API → MCID — the endpoint
contract for
POST /voice/mcid/{callId},GET /voice/mcid/{callId}, andGET /voice/mcid/export. - Troubleshooting: MCID flag failures — the runbook mapping every reject code to the gate that fired and the fix you own.
- CALEA lawful-intercept provisioning — the sibling surface with the same “Orbit provisions and audits, the carrier captures” honesty register.
- KBA caller verification — the extend-metadata pattern MCID borrows for its no-migration ledger.