VocalDocscontracts 1.65.0

CallEventType

What happened, dotted and lowercase. settings.resolved: the Session started on its resolved settings, once per Call, with platform_version, flags_version, compliance_profile_version and the provenance counts (the fields named provenance_..., such as provenance_agent, the values the Agent layer set) only; the values of the paths and their sources are in the claim's Session configuration and the trace mark settings_resolved, not in the event (corrected in 1.54.0, which described the values of structural paths). provider.failover: a stage changed Provider within its chain, or a Provider became available again. recording.uploaded: the Call recording was stored. dial.answered: the callee of an outbound phone Call answered, with the ring time the worker measured. disclosure.played (1.24.0): the AI disclosure was spoken, once per Call, with completed (true when it played to its end, false when the Call ended or the leg dropped first; caller speech cannot stop it) and placement. From 1.27.0: call.created: admission created the Call, with its transport and direction. dial.started: admission accepted the dial of an outbound phone Call, which the api places once the Call's room exists, with the phone_number_id it dials from and its ring_timeout_s. call.ringing: the Call began to ring; on an outbound phone Call, when the callee is rung. call.answered: the Call was answered, at the instant the Call records as answered_at. call.end_requested: the end route asked the worker running the Call to end it, with the caller's reason_code when one was given. call.ended: the Call ended, with its ended reason; a later one, with previous_reason, records a change of the stored reason, such as the replay of a finalize the api had refused. room.finished: LiveKit closed the Call's room before the Call ended, with LiveKit's livekit_event_id. participant.left: a participant left the room before the Call ended, with participant (caller in this release) and livekit_event_id. From 1.32.0: recording.announced: the recording announcement was spoken, once per recorded Call, before the disclosure, with completed (true when it played to its end, false when the Call ended or the leg dropped first). recording.announcement_failed: the announcement the recorded Call required could not be spoken and the Call ended recording_announcement_failed, with reason, one of template_unrendered, schedule_failed and synthesis_failed. disclosure.failed: the AI disclosure the Call required could not be spoken and the Call ended disclosure_failed, with reason, template_unrendered or schedule_failed. From 1.34.0: phi.read (1.34.0): the claim read the values of variables declared phi into the Session's texts, once per Call, recorded by the api in the claim's transaction with the Audit event call.claim; variable_count is how many variables, and variables their names joined by / (as many whole names as fit 200 characters), never a value. capture.refused (1.34.0): the worker refused model I/O capture for the Session because the configuration carries phi_values, with reason phi_values; it is recorded whether or not capture would have run. From 1.36.0 (workspace ADR 0084): call.end_pushed (1.36.0): the api pushed the end request of POST /v1/calls/{call_id}/end to the worker of a running Call as a LiveKit data message, recorded by the api in its own transaction after each push, whatever the status of the Call by then, with result (accepted: LiveKit took the message; refused: LiveKit answered with an error other than not found, or did not answer within the bound; no_room: the Call's room was already gone, which the api reads from a not found answer of LiveKit or from a Call with no room recorded; LiveKit server 1.13.9 did not answer not found for a room that no longer exists (one reading: 503 unavailable after about 3 seconds), so that push reads refused; no_participant (1.37.0): the agent participant was not in the room, the room's agent dispatches naming no job of the agent, and nothing was sent) and elapsed_ms, how long the push took. call.end_received (1.36.0): the worker took the end request, recorded once at finalize from the worker's call mark end_requested, with via (livekit when the pushed message was the first to arrive, signal when the end_requested flag on the answer to a signal was); its at is the worker's instant. From 1.48.0 (roadmap slice 2.2), the policy family, which the api records at finalize from the worker's firing records, source worker, with the data of PolicyEventData: policy.fired (1.48.0): a Policy fired at a hook, its action applied because its condition matched (outcome matched) or because the compliance tag resolved a timeout or an error (fail_closed true), whatever its disposition (applied, superseded or discarded); a firing of a compliance-tagged Policy is also an Audit event. policy.timeout (1.48.0): the hook's budget ran out before the Policy was evaluated, whether it then fired or not. policy.error (1.48.0): the evaluation failed, whether the Policy then fired or not. A fail-closed timeout or error is a policy.fired and a policy.timeout or policy.error with the same data, and a fail-open one the second alone; an evaluation that did not match is no event. Their data names the Policy version, scope, hook and Turn (turn_seq), the action type, the compliance tag, the outcome, cause and disposition, the _rule row, the document digest and engine version, elapsed_us, the names of the fields the version reads and the digest of the snapshot, and never a value of the Call context. From 1.49.0 (roadmap slice 2.3), the tool family, which the api records at finalize from the worker's Tool call records, source worker, with the data of ToolEventData: tool.invoked (1.49.0): a Tool the model requested started executing, after on_tool_call let it through, with the Tool, the Turn and the round; tool.completed (1.49.0): it ended, with its status (ok, error, timeout, blocked, no_handler, invalid_arguments or refused_by_policy), its error_code, the last HTTP status and attempts of an http Tool, elapsed_ms and whether the filler was spoken. Neither carries the arguments or the result. call.escalated (1.49.0): a Policy's escalate action applied and was carried out, recorded by the api at finalize from the firing record, source worker, with the Policy version (policy_id, version), turn_seq, the reason code and the severity; the Call continues. From 1.50.0 (roadmap slice 2.4), the transfer family, with the data of TransferEventData: transfer.refused (1.50.0): a transfer a Policy or a control command asked for was refused before anything was dialled, with its refusal_reason, and the Agent continued; recorded at finalize from the worker's transfer record, source worker, or by the control route itself, source api. transfer.started (1.50.0): the Session sent the SIP REFER, after the context note when call_control.transfer.context_note is required. transfer.failed (1.50.0): the REFER did not hand the caller over, with its failure_code and sip_status, and the Agent continued. call.transferred (1.50.0): the caller was handed over and the Call ended transferred; its transfer_id names the transfer whose context note GET /v1/calls/{call_id}/transfers/{transfer_id} reads. None carries an address or the note. amd.decided (1.50.0, FR-calls-12): answering-machine detection decided on an outbound phone Call, with the data of AnsweringMachineEventData: the classification, the stage, the confidence, decision_ms, the sensitivity and the action, source worker. amd.contradicted (1.50.0): later evidence disagreed with the decision, with contradiction_source signal (source worker) or review with the label in actual (source api, from POST /v1/calls/{call_id}/answering-machine-label); recorded once per Call, for the first contradiction. pre_call.completed (1.52.0, roadmap slice 2.7, FR-dispatch-7): the pre-call hook's answer was applied in admission, before any room, dial or Session, with the data of PreCallCompletedEventData (the hook, the outcome accepted, declined or defaulted, the failure code, the latency, the Agent version that runs, the counts of variables, overrides and tags it set, and a decline's reason code), source api, in the setup segment of the trace. knowledge.retrieved (1.53.0, roadmap slice 2.8): one retrieval of a Knowledge binding, recorded at finalize from the worker's retrieval records, source worker, with the data of KnowledgeRetrievedEventData: the Turn, the binding, the Knowledge base and version, use, the count of passages with each Chunk id and score by rank (chunk_1, score_1, ...), top_score, elapsed_ms, skipped with its skip_reason, and reranked; never the query or a passage. From 1.58.0 the state and decision families (MachineEventData, DecisionEventData), and from 1.59.0 workflow.evaluated (roadmap slice 2.13): a Workflow node evaluated its decision, recorded at finalize from the worker's machine records, source worker, with the data of WorkflowEvaluatedEventData (the node, its type, the outcome, the rule hit, the outlet taken, the slots written by name, the keyed hash of the input, the time and the engine version); a compliance-tagged node's evaluation is also an Audit event. From 1.61.0 (roadmap slice 2.15) contact.resolved: admission resolved the Call's Contact, source api, with the data of ContactResolvedEventData (the resolution, the bound Contact id and a count of candidates, never their ids); contact.verified: verification bound the Contact, written at finalize from the Session's report, source worker (ContactVerifiedEventData); consent.recorded: finalize wrote a consent record from a record_opt_out Policy action, source worker, with consent_record_id, channel and scope; call.refused: the start job of a scheduled Call ran admission and it refused, source api, with code, the admission error code, and reason, a detail reason such as a ConsentCheckReason; call.start_deferred: the start job found the window closed and enqueued itself again, source api, with next_attempt_at. From 1.62.0 (roadmap slice 2.16, ADR 0051 rule 8) custom.received: a customer-emitted event named the Call (POST /v1/events with call_id), source api, with event_id and type, never its data. From 1.65.0 (the Campaigns of roadmap slice 2.16) campaign.attempt: admission placed a Campaign Call, source api, with campaign_id, campaign_enrollment_id, attempt, arm and permit_id (campaigns.md section 10). Types are added in later minor versions, so a reader treats an unknown type as an event it does not interpret.

An enumeration of 50 values.

Values

  • settings.resolved
  • provider.failover
  • recording.uploaded
  • dial.answered
  • disclosure.played
  • call.created
  • dial.started
  • call.ringing
  • call.answered
  • call.end_requested
  • call.ended
  • room.finished
  • participant.left
  • recording.announced
  • recording.announcement_failed
  • disclosure.failed
  • phi.read
  • capture.refused
  • call.end_pushed
  • call.end_received
  • policy.fired
  • policy.timeout
  • policy.error
  • tool.invoked
  • tool.completed
  • call.escalated
  • transfer.refused
  • transfer.started
  • transfer.failed
  • call.transferred
  • amd.decided
  • amd.contradicted
  • pre_call.completed
  • knowledge.retrieved
  • state.entered
  • state.exited
  • transition.refused
  • handoff.completed
  • machine.limit_reached
  • guard.error
  • decision.verdict
  • decision.failed
  • workflow.evaluated
  • contact.resolved
  • contact.verified
  • consent.recorded
  • call.refused
  • call.start_deferred
  • custom.received
  • campaign.attempt