jambonz/webhook-test-scaffoldjambonz-feature-server是jambones平台的核心功能服务器,用于实现该平台的核心语音通信功能。它通过与drachtio服务器、Freeswitch服务器、MySQL数据库、Redis等服务交互,处理平台关键业务逻辑,支持集成AWS、GCP等云服务,并可配置 metrics 生成。
以下环境变量用于配置服务运行参数,分为必填项和可选项:
| 变量名 | 含义 | 是否必填 |
|---|---|---|
| AWS_ACCESS_KEY_ID | AWS访问密钥ID,用于TTS/STT及SNS通知 | 否 |
| AWS_REGION | AWS区域 | 否 |
| AWS_SECRET_ACCESS_KEY | AWS密钥,与访问密钥配合使用 | 否 |
| AWS_SNS_TOPIC_ARN | 用于发布缩容生命周期通知的AWS SNS主题ARN | 否 |
| DRACHTIO_HOST | drachtio服务器IP地址(通常为'127.0.0.1') | 是 |
| DRACHTIO_PORT | drachtio服务器控制连接监听端口(通常为9022) | 是 |
| DRACHTIO_SECRET | drachtio服务器共享密钥 | 是 |
| ENABLE_METRICS | 若为1,启用metrics生成 | 否 |
| ENCRYPTION_SECRET | 凭证加密密钥(JWT_SECRET已弃用) | 是 |
| GOOGLE_APPLICATION_CREDENTIALS | GCP服务密钥文件路径 | 是 |
| HTTP_PORT | 接收jambonz-api-server API请求的TCP端口 | 是 |
| HTTP_IP | 接收jambonz-api-server API请求的IP地址 | 否 |
| JAMBONES_GATHER_EARLY_HINTS_MATCH | 若为true且提供提示,gather将查看临时转录本以减少ASR延迟 | 否 |
| JAMBONES_FREESWITCH | Freeswitch服务器连接信息,格式为'IP:port:secret'(如'127.0.0.1:8021:JambonzR0ck$') | 是 |
| JAMBONES_LOGLEVEL | 应用日志级别,可选'info'或'debug' | 否 |
| JAMBONES_MYSQL_HOST | MySQL数据库主机 | 是 |
| JAMBONES_MYSQL_USER | MySQL数据库用户名 | 是 |
| JAMBONES_MYSQL_PASSWORD | MySQL数据库密码 | 是 |
| JAMBONES_MYSQL_DATABASE | MySQL数据库名 | 是 |
| JAMBONES_MYSQL_CONNECTION_LIMIT | MySQL连接限制 | 否 |
| JAMBONES_NETWORK_CIDR | 功能服务器所在私有网络CIDR(如'172.31.0.0/16') | 是 |
| JAMBONES_REDIS_HOST | Redis服务器主机 | 是 |
| JAMBONES_REDIS_PORT | Redis服务器端口 | 是 |
| JAMBONES_SBCS | 内部网络SBC IP地址列表,逗号分隔 | 是 |
| STATS_HOST | metrics主机IP地址(通常为'127.0.0.1',因telegraf本地部署) | 否 |
| STATS_PORT | metrics主机监听端口 | 否 |
| STATS_PROTOCOL | metrics传输协议,可选'tcp'或'udp' | 否 |
| STATS_TELEGRAF | 若为1,metrics生成telegraf格式 | 否 |
| JAMBONZ_RECORD_WS_BASE_URL | 录音音频发送的WebSocket URL | 否 |
| JAMBONZ_RECORD_WS_USERNAME | 录音WebSocket用户名 | 否 |
| JAMBONZ_RECORD_WS_PASSWORD | 录音WebSocket密码 | 否 |
| ANCHOR_MEDIA_ALWAYS | 保持媒体在媒体服务器上 | 否 |
| JAMBONZ_DISABLE_DIAL_PAI_HEADER | 控制B-Leg的P-Asserted-Identity头 | 否 |
该应用通常通过pm2进程管理工具运行,推荐使用ecosystem.config.js配置文件,示例如下:
jsmodule.exports = { apps: [ { name: 'jambonz-feature-server', cwd: '/home/admin/apps/jambonz-feature-server', script: 'app.js', instance_var: 'INSTANCE_ID', out_file: '/home/admin/.pm2/logs/jambonz-feature-server.log', err_file: '/home/admin/.pm2/logs/jambonz-feature-server.log', exec_mode: 'fork', instances: 1, autorestart: true, watch: false, max_memory_restart: '1G', env: { NODE_ENV: 'production', GOOGLE_APPLICATION_CREDENTIALS: '/home/admin/credentials/gcp.json', AWS_ACCESS_KEY_ID: 'XXXXXXXXXXXX', AWS_SECRET_ACCESS_KEY: 'YYYYYYYYYYYYYYYYYYYYY', AWS_REGION: 'us-west-1', ENABLE_METRICS: 1, STATS_HOST: '127.0.0.1', STATS_PORT: 8125, STATS_PROTOCOL: 'tcp', STATS_TELEGRAF: 1, AWS_SNS_TOPIC_ARN: 'arn:aws:sns:us-west-1:xxxxxxxxxxx:terraform-20201107200347128600000002', JAMBONES_NETWORK_CIDR: '172.31.0.0/16', JAMBONES_MYSQL_HOST: 'aurora-cluster-jambonz.cluster-yyyyyyyyyyy.us-west-1.rds.amazonaws.com', JAMBONES_MYSQL_USER: 'admin', JAMBONES_MYSQL_PASSWORD: 'foobarbz', JAMBONES_MYSQL_DATABASE: 'jambones', JAMBONES_MYSQL_CONNECTION_LIMIT: 10, JAMBONES_REDIS_HOST: 'jambonz.zzzzzzz.0001.usw1.cache.amazonaws.com', JAMBONES_REDIS_PORT: 6379, JAMBONES_LOGLEVEL: 'debug', HTTP_PORT: 3000, DRACHTIO_HOST: '127.0.0.1', DRACHTIO_PORT: 9022, DRACHTIO_SECRET: 'sharedsecret', JAMBONES_SBCS: '172.31.32.10', JAMBONES_FREESWITCH: '127.0.0.1:8021:sharedsecret' } } ] };
测试套件运行方法请参考此处。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务