Delphi v0.9.19
Delphi v0.9.19 stores each call's SIP ladder and span tree after hangup, shows DTMF digits in the SIP ladder, runs Test Call on a temporary copy of the app, switches Azure speech recognition to the caller's detected language and repairs base numbers with a duplicated country code. It pins a media certificate authority for internal media HTTPS and binds TelPro media to its routed floating address. The upgrade requires operator actions, so read the upgrade notes before you start.
0.9.19Recorded SDK recommendation0.1.5Recorded SDK range>=0.1.3 <0.2.0Highlights
- After hangup, the platform now stores the SIP ladder and span tree of every ended call with the conversation, including calls ended by the caller, the bot or a transfer, so the Debug views keep them after the source logs expire. See Verify SIP ladder and span tree persistence.
- The SIP ladder shows the DTMF digits of keypad rows. When the deployment does not log personal data, the digits are masked as
*. See Review a conversation. - Test Call runs on a temporary copy and never changes the app's flow, revision or versions. Browser text sessions refuse flows whose chat path reaches a voice agent.
- Azure speech recognition can now switch to the caller's detected language above a minimum confidence, with a platform default for apps that leave it unset. See Detected-language switching.
- Base numbers no longer duplicate the country code. The upgrade repairs a repeated
+or a trunk0after+49. Numbers that start with+4949, and rows whose corrected value already exists, are left unchanged for manual review. See Manage base numbers.
Voice and calls
- A call to an app that is switched off is refused with
486 Busy Herebefore it is answered. A call that already reached one of the app's extensions ends with a BYE. No conversation record is created for a refused call. See Refuse calls while an app is switched off.
Flow Builder and conversations
- The configuration-version history shows each change once and compares a row with its backup.
- Generated transfers no longer name an invented SIP host.
- Settings → Features shows a read-only list of the features enabled for the installation. See See which features are enabled.
Observability and diagnostics
- Log records that exceed the export limit are shortened and marked
[Truncated]instead of being rejected. - SIP header budget logs no longer carry vendor-named attributes. Update dashboards and filters that used them.
- SIP logs no longer show
0for unset values; a value that is actually0is also omitted.
Infrastructure and operations
- Internal media HTTPS uses certificates issued from a per-environment media CA, which Web, API, Voice and Ops trust. Media no longer creates a self-signed certificate. See Establish and rotate Media HTTPS trust.
- TelPro binds WebRTC and TURN media to the routed floating address and refuses to start them when the address is not bound. See Bind the floating media address.
- RTPEngine packages 26.0.1.24, Go 1.27.2 build stages, and Alpine 3.24.2 for Media and the log-to-span sidecar, with image vulnerability fixes.
- For the complete list of new and changed variables, see Changes in 0.9.19.
Upgrade notes
Upgrade the complete 0.9.19 release set, and update the Web UI, API, Voice and Ops services in one window. 0.9.19 adds a saved-version status that 0.9.18 services were not built to recognize. Do not use Save while 0.9.18 services are still running. See Upgrade to 0.9.19.
Run the database migrations with the Ops db-migrate service first. They archive duplicate draft and published flow versions, repair base numbers and remove orphaned system-audio references. The archive and delete steps cannot be undone. Before you start, check for duplicate draft or published versions per flow, and list base numbers that start with +4949 for manual review.
Issue the media CA and server certificate, update Media, then set the CA as the trust bundle on Web, API, Voice and Ops. Without valid material, Media initialization stops.
On each TelPro edge, bind the media address, then deploy the image together with its configuration bundle. TURN_LISTEN_IP now defaults to empty instead of 0.0.0.0.
Allow the Ops and Web hosts to reach the SigNoz query API port (default 8080) directly. Without it, SIP ladders and span trees are not stored. See Network ports.
- Update log queries, dashboards and alerts. Request, response and error objects in OTLP logs are now serialized as text, and some SIP header budget attributes were removed. See Upgrade to 0.9.19.
- An app that is already switched off keeps answering calls until it is published again after the upgrade.
Known issues
- Capacity figures are not certified.
Compatibility
The recommended SDK is 0.1.5, with supported range >=0.1.3 <0.2.0. The SDK contract is unchanged. The platform declares these upstream versions for 0.9.19. For digests, declaration locations and overrides, see Declared upstream versions.
| Component | Declared version |
|---|---|
| Kamailio | 6.1.4 (source build) |
| RTPEngine | 26.0.1.24 |
| Asterisk | 22.11.0 |
| Janus | 1.4.1 |
| Node.js (application images) | 24.21.0 on Alpine 3.24 |
| Go (build stage) | 1.27.2 |
| Debian (media images) | trixie |
| Alpine (media server, sidecar) | 3.24.2 |
| Python (CPU AudioProc) | 3.11 |
| PostgreSQL | 17 |
| Redis | 7 |
| PgBouncer | 1.25.1 |
| coturn | 4.6.2 |
| OpenTelemetry Collector | 0.159.0 |
| SigNoz | 0.139.0 |
| ClickHouse | 25.5.6 |
| Keycloak (Portal identity) | 26.7.4 |
| Host operating system | Ubuntu 22.04 |
Upgrade checklist
- Check for duplicate draft or published versions per flow, and list base numbers that start with
+4949. - Run the database migrations with Ops
db-migrate, then update Tasker. - Issue the media CA, update Media, and set the CA bundle on Web, API, Voice and Ops.
- Deploy the Web UI, API and Voice services together, with calls drained, and verify each host.
- On each TelPro edge, bind the media address and deploy image and configuration together.
- Open Ops and Web to the SigNoz query API port.
- Publish apps that are switched off and must refuse calls.
- Update log queries, dashboards and alerts.
- Run the acceptance checks in Apply and accept the selected set.