Release v0.8.2

Release Date: April 3, 2023

New Features
  • Added custom speech API to allow third parties to add in support for speech recognition and text to speech
  • Add support for Nuance on-prem installs along with the Nuance hosted SaaS
  • Added support for soniox speech recognizer.
  • Optional verb status events can be sent over websocket connections to allow apps to track execution of a flow
  • Forward P-Asserted-Identity received on inbound calls to outbound calls
Bug fixes
  • repeated ws failures should cause reconnections to stop eventually
  • refactored TTS generation into new speech-utils package
  • added TTS_FAILURE alert type to distinguish failures from provisioning isses
  • Instead of google latest_short model, which has proven unreliable in testing, default to phone_call which provides much better results.
  • Gather: restart timeout when an interim transcript is received
  • allow for Nuance returning empty transcripts
  • Gather: clear dtmf event handler on completion
  • multiple languages now work on Azure
  • additional security checks for some API calls
  • migrate to argon2 from argon-ffi
  • updates to swagger.yml for accuracy and readability
  • expire jwt on logout from portal
  • pass on displayName of From header if we get it
  • grafana: fixed issue with media call counts not appearing
  • grafana: add instance id tag to sip calls count to better support EC2 cluster deployments
SQL changes


Known issues and workarounds

Creating a carrier that requires outbound registration does not work because the sip_gateways rows associated with the carrier are incorrectly set to inactive when first created. The workaround is to first create and configure the carrier in the jambonz web portal, including the outbound registration configuration, and then applying the SQL update below.

Note: this bug only affects carriers configured with outbound registration. There is no need to apply the fix below when configuring a carrier that does not require outbound registration.

on VM installs

Use an ssh client to log into the jambonz webserver as 'admin' user. Find the mysql password in the apps/ecosystem.config.js file - look for the environment variable named JAMBONES_MYSQL_PASSWORD. Then, using the mysql client log into the database and apply the update statement as shown below.

on k8s installs

Use kubectl or Lens to exec a shell into the mysql container. Find the mysql password from the env vars for the api-server container. In the shell on the mysql container log into the database and apply the update below:

$ mysql -u admin -D jambones -p
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 91974
Server version: 10.5.18-MariaDB-0+deb11u1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [jambones]> update sip_gateways set is_active=1;
Query OK, 2 rows affected (0.001 sec)
Rows matched: 26  Changed: 2  Warnings: 0

MariaDB [jambones]> quit

This bug will be fixed in 0.8.3 but while running on 0.8.2 you will need to repeat the update sequence above after adding any carrier that requires outbound registration.

  • Available now on AWS Marketplace
  • Deploy to Kubernetes using this Helm chart

Questions? Contact us at