.NET API
VoiceSessionRecord
Tracon.Abstractions.dllThe summary record of a real-time voice connection.
public sealed record VoiceSessionRecord : IEquatable<VoiceSessionRecord>- Inheritance
- object ← VoiceSessionRecord
- Implements
- IEquatable<VoiceSessionRecord>
- Inherited Members
- object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Remarks
Section titled “Remarks”The audio content does not sit in this record. The
record is only for measurement and observability: who, when, how many
turns, how much audio. If audio is stored (default no), the bytes
are in the attachments table.
Each conversation turn also produces a normal runs row. Voice does
not change the run path; it only changes the input and output format.
Constructors
Section titled “Constructors”VoiceSessionRecord()
Section titled “ VoiceSessionRecord()”public VoiceSessionRecord()Properties
Section titled “Properties”AgentName
Section titled “ AgentName”The name of the agent being talked to.
public required string AgentName { get; init; }Property Value
Section titled “Property Value”What the conversation cost; null when nothing was priced.
public VoiceSessionCost? Cost { get; init; }Property Value
Section titled “Property Value”CreatedBy
Section titled “ CreatedBy”The actor who opened the connection.
public string? CreatedBy { get; init; }Property Value
Section titled “Property Value”EndReason
Section titled “ EndReason”Why the connection closed.
public VoiceSessionEndReason? EndReason { get; init; }Property Value
Section titled “Property Value”EndedAt
Section titled “ EndedAt”The moment the connection closed; null while still open.
public DateTimeOffset? EndedAt { get; init; }Property Value
Section titled “Property Value”The connection’s identifier.
public required Guid Id { get; init; }Property Value
Section titled “Property Value”InputSeconds
Section titled “ InputSeconds”The total resolved audio duration (seconds). Stays null if the provider does not report duration — Tracon does not fabricate a duration.
public decimal? InputSeconds { get; init; }Property Value
Section titled “Property Value”LiveSeconds
Section titled “ LiveSeconds”The billable wall-clock duration of a provider-hosted live session, in seconds.
public decimal? LiveSeconds { get; init; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”This is not VoiceSessionRecord.InputSeconds. That field is the resolved duration of audio Tracon transcribed; this one is how long the provider hosted the session. Different quantities, different fields. The number is the provider’s — Tracon does not see the media of a live session and does not invent a duration, so it stays null when the provider reports none.
The model the conversation ran on; null when unknown.
public string? Model { get; init; }Property Value
Section titled “Property Value”OutputChars
Section titled “ OutputChars”The total characters synthesized to speech.
public long? OutputChars { get; init; }Property Value
Section titled “Property Value”long?
Provider
Section titled “ Provider”The provider that hosted the conversation, e.g. openai;
null when Tracon ran the conversation itself.
public string? Provider { get; init; }Property Value
Section titled “Property Value”SessionId
Section titled “ SessionId”The identifier of the agent session the conversation runs in.
public required string SessionId { get; init; }Property Value
Section titled “Property Value”StartedAt
Section titled “ StartedAt”The moment the connection opened.
public required DateTimeOffset StartedAt { get; init; }Property Value
Section titled “Property Value”TenantId
Section titled “ TenantId”The tenant. Resolved when the connection is established and fixed for the connection’s lifetime.
public required string TenantId { get; init; }Property Value
Section titled “Property Value”The number of completed conversation turns.
public int Turns { get; init; }Property Value
Section titled “Property Value”Methods
Section titled “Methods”Equals(object?)
Section titled “ Equals(object?)”public override bool Equals(object? obj)Parameters
Section titled “Parameters”obj object?
Returns
Section titled “Returns”Equals(VoiceSessionRecord?)
Section titled “ Equals(VoiceSessionRecord?)”public bool Equals(VoiceSessionRecord? other)Parameters
Section titled “Parameters”other VoiceSessionRecord?
Returns
Section titled “Returns”GetHashCode()
Section titled “ GetHashCode()”public override int GetHashCode()Returns
Section titled “Returns”ToString()
Section titled “ ToString()”public override string ToString()Returns
Section titled “Returns”Operators
Section titled “Operators”operator ==(VoiceSessionRecord?, VoiceSessionRecord?)
Section titled “ operator ==(VoiceSessionRecord?, VoiceSessionRecord?)”public static bool operator ==(VoiceSessionRecord? left, VoiceSessionRecord? right)Parameters
Section titled “Parameters”left VoiceSessionRecord?
right VoiceSessionRecord?
Returns
Section titled “Returns”operator !=(VoiceSessionRecord?, VoiceSessionRecord?)
Section titled “ operator !=(VoiceSessionRecord?, VoiceSessionRecord?)”public static bool operator !=(VoiceSessionRecord? left, VoiceSessionRecord? right)Parameters
Section titled “Parameters”left VoiceSessionRecord?
right VoiceSessionRecord?