Skip to main content

Delphi v0.9.17-patch1

KI Kombinat GmbH

Delphi v0.9.17-patch1 improved audio startup, call teardown and custom SIP header handling. It also moved inbound trunk health checks to the SIP edge and improved call searches, timestamps and audit attribution.

Platformv0.9.17-patch1Recommended SDKv0.1.5Supported SDK range>=0.1.3 <0.2.0

Highlights

  • Reduced cold-start audio-processing bypasses and false TTS errors during intentional interruption or hangup.
  • Preserved literal custom header values, with warnings when runtime names or values need normalization.
  • Checked inbound trunk reachability using SIP OPTIONS from the edge instead of Asterisk AMI.
  • Improved raw SIP searches, call correlation, ISO log timestamps and audit IP/User-Agent attribution.

Voice, calls and providers

  • RNNoise warmed up before the audio service became ready. Calls retain independent filter state, and stalled processing still has a bounded bypass.
  • DeepFilter received a separate model-readiness deadline; initialization no longer blocks the audio service's WebSocket event loop.
  • Intentional Azure TTS cancellation stopped being reported as a synthesis failure. Pending work unwinds without treating incomplete audio as a successful, cacheable response.
  • Built-in browser calling avoided a duplicate autodial race and displayed clearer gateway errors.
  • Private provider addresses covered by an IPv4 or IPv6 NO_PROXY subnet now bypass the outbound HTTP proxy correctly. Existing public proxy rules remain in force.
  • TOBi relatesTo: 0 is treated as an unsolicited response, rather than a match for an outbound request. Conversation setup retries remain bounded; conversational message submissions are not retried automatically to avoid duplicate bot turns.

Custom SIP headers

Printable values containing quotes, apostrophes, backslashes, punctuation and Unicode remain literal on the wire. Empty custom values are supported.

Configured names are validated when saved. Runtime bot names are normalized when necessary: invalid characters become underscores, control characters in values become spaces, and whitespace is normalized. Protected signaling headers are dropped. Case-insensitive collisions are resolved after normalization using the last value, with bot overrides taking precedence over configured defaults.

Normalization and dropped/colliding headers generate warnings. Invalid or oversized optional headers do not prevent hangup. Large SIP capture events also have more logging space, so valid large header sets remain visible in diagnostics.

See managed callback actions for limits and SIP header context rules for flow configuration.

Trunk health and operations

Inbound trunk health now uses SIP OPTIONS from the edge to the trunk's first configured allowed source IP. Voice services consume the shared probe result for availability, latency and alarms. Monitoring does not change call routing.

Upgrade action

Review OPTIONS reachability and each monitored trunk's first allowed source IP. Probing is enabled by default through HEALTH_PROBE_ENABLED, with a 60-second interval and port 5060. Probe timeout follows the SIP transaction timer (currently 45 seconds), not the legacy HEALTH_PROBE_TIMEOUT example. AMI credentials are no longer required for this monitor, but may still be needed by other integrations.

TelPro also restored fresh configuration on each container start and recovered stale drain state when no maintenance operation owned it. Roll out the matching image and configuration bundle together.

See SIP trunk logs and the environment variable index.

Diagnostics, API and security

  • Searches can fall back to raw SIP attributes when ordinary text search finds no records. This helps locate header values that are absent from a capture's summary line.
  • SIP call lookup and TOBi request correlation were improved. Existing historical logs are not backfilled.
  • Collected logs include full ISO date/time attributes alongside numeric timestamps. Compact call-debug table and ladder clock columns still show time-of-day. Log-level handling accepts upper- or lower-case configuration consistently.
  • Audit events include request-scoped client IP and User-Agent.
  • TelAPI now receives all five API_CREDENTIAL_* deployment settings. The default policy is five failed authentication attempts per client IP within five minutes, followed by a five-minute jail; webhook protection is enabled by default.
  • Both API reference profiles were refreshed, including the TOBi correlation clarification.
  • Dependencies and runtime error handling received security and reliability maintenance.
Credential-jail rollout

Refresh API service configuration, then confirm the configured retry threshold and jail duration. Consider clients that share one proxy/NAT address when choosing policy overrides. See API credential jail.

Upgrade checklist

  1. Deploy the patch images and configuration across the gateway, Voice, API, Ops and Web roles, including audio processing and collectors. There are no new database migrations relative to v0.9.17.
  2. Verify trunk OPTIONS health and review credential-jail settings.
  3. Correct invalid or duplicate configured SIP header names, and inspect runtime normalization warnings after representative calls.
  4. Verify private provider proxy exclusions. Keep certificate verification enabled.
  5. Confirm completed recordings are playable and that the processing worker can delete its temporary source objects. See recording output.
  6. Run representative realtime, modular, hangup, transfer and failure-path calls and check their correlated logs.

The targeted regression round covered audio startup, settled noisy-audio preservation, standard browser calls and isolated terminal/fault scenarios. It did not establish a new load/capacity certification or certify every VAD, recording, transport and provider-fault combination. Immediate-speech startup jitter and private SIP destination routing require separate environment-specific verification.

SDK compatibility

The recommended SDK remains 0.1.5, with supported range >=0.1.3 <0.2.0. No new npm SDK release is required or published as part of this patch. See SDK compatibility.