jambonz/feature-serverjambonz-feature-server是jambones平台的核心功能服务器,实现平台核心功能逻辑。该服务器负责处理SIP通信控制、媒体资源管理、与其他组件(如Drachtio服务器、Freeswitch媒体服务器、数据库、缓存服务)的集成,以及AWS/GCP云服务对接(如TTS/STT、通知等),是构建jambones通信平台的关键组件。
适用于jambones通信平台的部署环境,用于构建基于SIP的语音通信应用,如呼叫中心、语音通知、交互式语音应答(IVR)、语音录制与转写等场景,需与jambones平台其他组件(如SBC、API服务器)协同工作。
该应用通过环境变量进行配置,以下是主要配置项说明:
| 变量 | 含义 | 是否必填 |
|---|---|---|
| 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 | 共享密钥 | 是 |
| ENABLE_METRICS | 若为1,则生成指标数据 | 否 |
| 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且提供提示,将尝试通过临时转录减少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 | 指标主机IP地址(通常为'127.0.0.1',因Telegraf本地安装) | 否 |
| STATS_PORT | 指标主机监听端口 | 否 |
| STATS_PROTOCOL | 指标传输协议('tcp'或'udp') | 否 |
| STATS_TELEGRAF | 若为1,指标将生成为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 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务