pub struct VoiceCallRecord {
pub source_id: String,
pub account_id: String,
pub direction: VoiceCallDirection,
pub party: String,
pub ring_at: String,
pub answer_at: Option<String>,
pub end_at: String,
pub duration_ms: Option<i64>,
pub disposition: VoiceCallDisposition,
pub end_reason: VoiceCallEndReason,
pub error: Option<String>,
pub envelope: SyncEnvelope,
}Expand description
One historical call as it crosses the wire from the daemon up to the platform.
Mirrors the daemon’s local CallRecord (see
wavekat-voice/crates/wavekat-voice/src/db.rs) with one rename:
the daemon’s local primary key (id) is shipped as source_id
because the platform allocates its own row id and treats the
daemon-side UUID as the idempotency key.
Fields§
§source_id: StringDaemon-generated UUID. The platform’s (user_id, source_id)
upsert key — re-syncing the same id is a no-op.
account_id: StringSIP account UUID on the daemon side. Opaque to the platform.
direction: VoiceCallDirection§party: StringSIP From: (inbound) or To: (outbound). Free text — caller
IDs, display names, and SIP URIs all land here.
ring_at: StringRFC 3339. First ring (inbound) or first dial-out (outbound).
answer_at: Option<String>RFC 3339. Present only when the call reached the answered state.
end_at: StringRFC 3339. Terminal timestamp; the platform uses this as the list cursor.
duration_ms: Option<i64>answer_at → end_at in milliseconds. None for calls that
were never answered.
disposition: VoiceCallDisposition§end_reason: VoiceCallEndReason§error: Option<String>Free-text error, populated only when disposition == Failed.
envelope: SyncEnvelopeVersion + forward-compat fields shared by every sync record.
Flattened so schemaVersion and extras sit at the top of
the JSON object alongside the other columns. See
SyncEnvelope and doc 21 §“Versioning and forward
compatibility”.
Trait Implementations§
Source§impl Clone for VoiceCallRecord
impl Clone for VoiceCallRecord
Source§fn clone(&self) -> VoiceCallRecord
fn clone(&self) -> VoiceCallRecord
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more