Skip to main content
Version: 0.9.17

Platform settings

Path: /admin-settingsPlatform Settings tab

Central place for platform-wide configuration that does not belong to a single subsystem tab. Secret values live in AWS Secrets Manager; Postgres stores metadata and non-secret defaults only.

Send test email

Queues an EMAIL_SEND Tasker job so you can confirm the worker's mail transport before relying on password-expiry or notification emails.

FieldRequiredDescription
RecipientYesDestination address.
SubjectNoDefaults to Delphi test email.
BodyNoPlain text. When empty, the server adds a timestamp and triggering user id.

After you click Send test email, open Job history, filter by type EMAIL_SEND, and confirm the job reaches COMPLETED.

SES prerequisites

When EMAIL_TRANSPORT=ses, Tasker needs a matching AWS_REGION, a verified sender (EMAIL_SENDER_ADDRESS), ses:SendEmail / ses:SendRawEmail on the Tasker role, and — while the AWS account is in the SES sandbox — a verified recipient address. HTTPS proxy env vars (HTTPS_PROXY, HTTP_PROXY, NO_PROXY) are honored for SES API calls as of v0.9.13-patch3.

Secret storage

FieldDescription
AWS RegionRegion for the Secrets Manager client.
NamespaceRead-only prefix for secret names. Resolved from TelWeb env: PLATFORM_SECRETS_NAMESPACENAMESPACEvoiceai/local.
General secrets collectionPath segment for platform secrets (default platform/secrets).
TLS materials collectionPath segment for trunk TLS PEMs (default platform/trunk-tls).

Full secret names are {namespace}/{general|tls collection} — for example VGW-DEV-GROUP-C2/platform/secrets.

Shared AWS accounts

If multiple Delphi deployments share one AWS account, each must have a distinct bootstrap NAMESPACE (or PLATFORM_SECRETS_NAMESPACE) on TelWeb and TelAPI. When the namespace env vars are missing, TelWeb falls back to voiceai/local and environments can overwrite each other's platform secrets.

Use Test Connection before saving in production. Changing collection paths does not migrate existing Secrets Manager payloads — move secrets operationally first. Confirm the Namespace field shows your deployment id (not voiceai/local) before writing production keys.

AI builder defaults

When enabled, configure provider / model / team-secret key pairs for:

  • Briefing chat — pre-build discovery assistant.
  • Builder / generator — flow synthesis from the briefing.

Team secrets are tried first, then platform defaults, then local env fallback.

QA scoring defaults

Default provider, model, team-secret key, and scoring prompt for batch QA jobs.

SigNoz observability

FieldDescription
Signoz URLBase URL for call debug views and span persistence jobs.
API key secretPlatform Secret key name holding the Signoz API key (default signozApiKey).
Retention daysHow long persisted span trees are kept.
Span persist delay secondsDelay before PERSIST_CONVERSATION_SPAN_TREE runs after hangup.
SIP ladder persist delay secondsSame for PERSIST_CONVERSATION_SIP_LADDER.

Resilience defaults

Platform-wide resilience defaults set provider timeout and retry behavior, bot-delay comfort messages, and call-level error actions. Teams inherit these settings unless a team admin enables a team override; individual flows can still override provider and error-handling settings in the Flow Designer.

The Provider defaults accordion has a row for STT, TTS, Realtime, and Bot/LLM. Each row can define:

FieldMeaning
Request timeoutMaximum duration of one provider attempt.
Retry countAdditional same-provider attempts after the initial attempt.
Initial retry delayWait before the first retry.
Backoff factorMultiplier applied to each later retry delay.
Retry HTTP status codesComma-separated allow-list for HTTP responses and WebSocket upgrade responses.

The built-in status-code list is 408, 429, 500, 502, 503, 504. A response with a status retries only when its exact code is listed; it cannot be re-enabled by a broader retry category. See Provider retry policies for the complete built-in defaults and retry sequence.

Provider defaults inherit per role. A team TTS override replaces the complete platform TTS block, and a concrete flow-provider retry block replaces the inherited role block. Include all values that the replacement block should retain. Leave an entire role empty to use the built-in behavior unless a more specific scope supplies it.

Use the other resilience accordions for bot no-input comfort-message timing and retry count, plus call-level failover triggers and transfer/hangup actions.

Egress defaults

Default global egress route ID — fallback when a transfer has no flow-level route and team/base-number defaults cannot be resolved. Must reference an enabled global egress route synced to Kamailio. Leave empty to disable the platform fallback.

Transfer restrictions

Platform defaults for outbound transfer destination rules (premium-rate blocking, optional country-code allow lists). Teams may override in team settings.

Platform secrets

The bottom section of this tab manages platform secrets — LLM API keys, SigNoz keys, generic secrets, and TLS materials. Metadata is in Postgres; values live in AWS Secrets Manager (general collection vs TLS collection depending on purpose).

Before new teams can use shared OpenAI/Azure keys, SUPERUSERs must create platform secrets openaiDefaultKey and (for non–OpenAI-only plans) azureDefaultKey, then Set Secret for each. See Team default secrets for autopopulate behaviour, tier rules, and troubleshooting.

TLS-specific workflow (CA / client cert for SIP trunks): Platform TLS materials.

Language management

TelWeb language entries live on the dedicated Languages tab. Use Platform Settings for defaults and secrets; use Languages to enable locales and edit translation overrides.

Version history

Each setting key has a Save snapshot button that captures the current value as a versioned checkpoint. Open the sidebar to list prior versions, restore one as the live value, or diff a version against the current value. See Config versioning & backups.

See also