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' } } ] };
测试套件运行方法请参考此处。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务