Skip to content
Tracon

VoiceLiveOptions

Namespace Tracon · Assembly Tracon.Core.dll

Options of the provider-hosted live voice layer.

public sealed class VoiceLiveOptions

objectVoiceLiveOptions

object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

This is not VoiceConversationOptions. That type configures the conversation Tracon runs itself: utterance buffering, audio format, per-turn speech budget. None of that applies here, because the media never reaches Tracon. The two layers are independent and can be enabled together or separately.

The type is not a record: option classes must not produce a ToString that can be written to a log.

public VoiceLiveOptions()

The default name of the configuration section.

public const string SectionName = "Tracon:Voice:Live"

string

Gets or sets how the live model hands work back. The default is Client.

public LiveVoiceDelegationMode DelegationMode { get; set; }

LiveVoiceDelegationMode

Gets or sets how long one delegation may run. The default is 2 minutes.

public TimeSpan DelegationTimeout { get; set; }

TimeSpan

Gets or sets the system instructions given to the live model.

public string? Instructions { get; set; }

string?

Gets or sets how many appends one delegation may send. The default is 12.

public int MaxAppendsPerDelegation { get; set; }

int

Gets or sets how many delegations may run at once in one session. The default is 2.

public int MaxConcurrentDelegations { get; set; }

int

The ceiling exists because the provider decides when to delegate. Without it, a model that delegates in a loop decides how many agent runs Tracon starts — a denial-of-service axis that points into the consumer’s own model spend.

Gets or sets how many live sessions one tenant may hold open at once. The default is 3.

public int MaxConcurrentSessionsPerTenant { get; set; }

int

The limit is checked before the provider is called. A session that is created and then refused is still a billed session.

Gets or sets how many transcript entries one delegation’s prompt may carry. The default is 40.

public int MaxLedgerEntriesPerDelegation { get; set; }

int

Gets or sets how long a live session may stay open. The default is 30 minutes.

public TimeSpan MaxSessionDuration { get; set; }

TimeSpan

Gets or sets how many characters of transcript the ledger keeps. The default is 20000.

public int MaxTranscriptLedgerCharacters { get; set; }

int

The ledger is what a delegation is cut from. It is bounded so a long conversation cannot grow without limit; the oldest entries are dropped first.

Gets or sets how long a created session may wait for its media peer. The default is 2 minutes.

public TimeSpan PendingSessionTimeout { get; set; }

TimeSpan

A session that is created and never connected still occupies a tenant’s concurrency slot. When this elapses the record is closed with VoiceSessionEndReason.Abandoned.

Gets or sets whether the conversation’s transcript is written to the agent session’s history. The default is true.

public bool PersistTranscript { get; set; }

bool

A privacy switch. The user’s audio is never stored, but the text of what they said is durable while this is on, and the delegated runs then see the full conversation. Turning it off keeps the ledger in memory only; delegation still works, with the same context, for the session’s lifetime. Either way the value is reported to the client when the session is created, so no recording happens silently.