Skip to main content

Third-party version sources

platform v0.9.11verified 2026-05-14

This page is the single source of truth for third-party versions used by the Delphi platform — Kamailio, Asterisk, Janus, RTPEngine, coturn, PostgreSQL, Redis, the OTel collector, base images, etc. Bespoke voiceai-* images that ship from this release are tracked by ECR_TAG and live in the release notes instead.

Each row points at the single file that pins the version. When a release is cut, refresh this page using the extraction commands below; then update any operations page that quotes a stale version.

Pinned versions (v0.9.11)

ComponentVersionSource-of-truth file
Asterisk (TelSys)22.9.0.docker/voiceai-telsys/DockerfileENV ASTERISK_VER
Kamailio (TelPro)6.1.1-bookworm.docker/voiceai-telpro/DockerfileFROM ghcr.io/kamailio/kamailio:...
RTPEngine (TelPro) — dfx.at channel14.1.docker/voiceai-rtpengine/DockerfileARG RTPENGINE_VERSION
Janus (TelPro / WebRTC) — git tagv1.3.3.docker/voiceai-webrtc/DockerfileARG JANUS_VERSION
coturn (TelPro)coturn/coturn:4.6.2.infrastructure/services/telpro/docker-compose.yml
PostgreSQL (Database)postgres:17-alpine.infrastructure/services/database/docker-compose.yaml
PgBouncer (Database)edoburu/pgbouncer:v1.25.1-p0.infrastructure/services/database/docker-compose.yaml
Redis (Database)redis:7-alpine.infrastructure/services/database/docker-compose.yaml
Caddy (Web, Media)caddy:2-alpine.infrastructure/services/{web,media}/docker-compose.yaml
Squid (Squid)ubuntu/squid:latest (unpinned, see warning below).infrastructure/services/squid/docker-compose.yaml
OpenTelemetry Collector (contrib) (every service)otel/opentelemetry-collector-contrib:0.150.1.infrastructure/services/*/docker-compose.yaml
SigNoz (SigNoz service)main branch (cloned at deploy).infrastructure/services/signoz/init.shgit clone -b main
Node.js (TelAPI, TelWeb, TelPhi, Tasker, Scaler)node:24-alpine.docker/voiceai-{telapi,telweb,telphi,tasker,scaler}/DockerfileFROM node:...
Python (CPU AudioProc)python:3.11-slim.docker/voiceai-audioproc/DockerfileFROM python:...
NVIDIA CUDA (GPU AudioProc)nvidia/cuda:12.4.1-runtime-ubuntu22.04.docker/voiceai-audioproc/DockerfileFROM nvidia/cuda:...
Go (media-upload build)golang:1.24-alpine.docker/voiceai-media-server/DockerfileFROM golang:...
Alpine (sidecar runtimes)alpine:3.19.docker/voiceai-media-server/Dockerfile, telpro / voice docker-compose
Debian (telsys / telpro / rtpengine / webrtc runtime base)bookworm-slimvarious .docker/voiceai-*/Dockerfile
Squid pins to :latest

The Squid container is the only one in the stack pinned to a floating tag. Behaviour can change unexpectedly on update.sh (which always pulls). Pin to a digest in .infrastructure/services/squid/docker-compose.yaml for reproducibility.

Where to upgrade each component

When you decide to bump a version, edit the source file from the table above and re-roll the relevant image (or just bump the compose file for non-voiceai-* images):

ComponentChanges that drive a re-build
Asterisk, Kamailio, Janus, RTPEngine, AudioProcEdit the relevant .docker/voiceai-*/Dockerfile, then build & push the new voiceai-*:<tag> image to the registry.
Node, Go, Python, Debian, Alpine base imagesSame as above — edit FROM line in .docker/voiceai-*/Dockerfile, rebuild, push.
coturn, PostgreSQL, PgBouncer, Redis, Caddy, OTel, SquidEdit .infrastructure/services/<svc>/docker-compose.yaml, push the bundle to S3, run update.sh --config-ref <new-ref>. No image rebuild needed.
SigNozUpdate .infrastructure/services/signoz/init.sh to pin a tag instead of main (recommended), push the bundle, run update.sh --config-ref.

Refreshing this page on a release

The extraction commands below are deliberately small and copy-pasteable — run them at the root of the platform repo (itk-ai-assistant). Each one prints the current value of one row in the table above, so a successful release-day refresh is a 30-second diff exercise.

One-shot script

Save the following as scripts/print-third-party-versions.sh in the platform repo (or adapt for your shell of choice). It prints a table you can paste directly into this page on release day.

#!/usr/bin/env bash
# Print every pinned third-party version in the Delphi platform.
# Run from the root of itk-ai-assistant (the platform repo).
set -euo pipefail

print_row() { printf '%-32s %-48s %s\n' "$1" "$2" "$3"; }

print_row "Component" "Version" "Source"
print_row "---------" "-------" "------"

# Bespoke voiceai-* image base versions (from .docker/*/Dockerfile)
print_row "Asterisk (TelSys)" \
"$(rg -No 'ASTERISK_VER=([0-9.]+)' -r '$1' .docker/voiceai-telsys/Dockerfile | head -1)" \
".docker/voiceai-telsys/Dockerfile"

print_row "Kamailio (TelPro)" \
"$(rg -No 'kamailio:([^\s]+)' -r '$1' .docker/voiceai-telpro/Dockerfile | head -1)" \
".docker/voiceai-telpro/Dockerfile"

print_row "RTPEngine (TelPro)" \
"$(rg -No 'RTPENGINE_VERSION=([0-9.]+)' -r '$1' .docker/voiceai-rtpengine/Dockerfile | head -1)" \
".docker/voiceai-rtpengine/Dockerfile"

print_row "Janus (WebRTC)" \
"$(rg -No 'JANUS_VERSION=(v?[0-9.]+)' -r '$1' .docker/voiceai-webrtc/Dockerfile | head -1)" \
".docker/voiceai-webrtc/Dockerfile"

# Compose-pinned upstream images (every infrastructure/services/*/docker-compose.*)
rg -No '^\s*image:\s*([^\s$]+)$' -r '$1' \
.infrastructure/services/*/docker-compose.y*ml | sort -u | \
awk -F: '{ printf "%-32s %s\n", $2, $1 }'

# SigNoz — what branch / tag does init.sh check out?
print_row "SigNoz" \
"$(rg -No 'signoz\.git.*-b ([^\s]+)|--branch ([^\s]+)' -r '$1$2' .infrastructure/services/signoz/init.sh || echo 'main')" \
".infrastructure/services/signoz/init.sh"

Make it executable and run it on every release tag:

chmod +x scripts/print-third-party-versions.sh
./scripts/print-third-party-versions.sh

Quick one-liners (no script needed)

If you don't want to commit the script, the same data with raw rg:

# All bespoke base images
rg -nN '^FROM\s|^ARG\s.*VERSION|ASTERISK_VER=' .docker/voiceai-*/Dockerfile

# All upstream images pinned in compose files
rg -nN '^\s*image:\s*[^\$]' .infrastructure/services/*/docker-compose.y*ml

# SigNoz checkout target
rg -nN 'signoz\.git' .infrastructure/services/signoz/init.sh

Release-day checklist

  1. Run the extraction script (or one-liners) at the platform repo root.
  2. Diff its output against the table above. For each row that changed:
    • Update this page.
    • Update the corresponding service operations page — Containers tables list per-service versions.
    • Add a one-line entry under "Infrastructure and operations" in the release notes.
  3. Re-run pnpm format:check && pnpm build in the docs repo — formatting and link integrity are enforced in CI.
  4. If a version bump is operationally significant (Postgres major version, Asterisk major, Kamailio major, OTel pipeline-breaking change), add an explicit operator callout (for example :::info[Upgrade checklist]) to the relevant operations page.
  5. Bump the page's platform_version: and last_verified: frontmatter.

What's intentionally not pinned

  • ubuntu/squid:latest — see warning above.
  • SigNoz — tracks main because the upstream docker-compose is opinionated about coordinated upgrades. Pin to a tag once your deployment depends on a specific feature.
  • The voiceai-* image tag itself (ECR_TAG) — set per deployment via the bootstrap /opt/deployment/.env. The release notes are the source of truth for what ECR_TAG ships at each release.

See also