jambonz/sbc-outboundsbc-outbound是jambonz平台会话边界控制器(SBC)功能的组成部分,主要负责处理从cpaas应用服务器发起的出站INVITE请求,将呼叫路由至运营商SIP中继或已注册的SIP用户/设备(包括WebRTC应用),实现出站呼叫的会话控制与媒体处理。
适用于jambonz平台部署环境中,作为SBC的出站呼叫处理模块,用于管理从应用服务器到外部通信网络(运营商中继或终端用户)的出站呼叫流量,保障呼叫信令与媒体的安全传输与控制。
该应用通过环境变量进行配置,具体参数如下:
| 变量名 | 含义 | 是否必填 |
|---|---|---|
| DRACHTIO_HOST | drachtio服务器的IP地址(通常为'127.0.0.1') | 是 |
| DRACHTIO_PORT | drachtio服务器控制连接的监听端口(通常为9022) | 是 |
| DRACHTIO_SECRET | 共享密钥 | 是 |
| HTTP_PORT | TCP监听端口 | 否 |
| JAMBONES_LOGLEVEL | 应用日志级别,可选'info'或'debug' | 否 |
| JAMBONES_MYSQL_HOST | MySQL主机地址 | 是 |
| JAMBONES_MYSQL_PORT | MySQL端口 | 否 |
| JAMBONES_MYSQL_USER | MySQL用户名 | 是 |
| JAMBONES_MYSQL_PASSWORD | MySQL密码 | 是 |
| JAMBONES_MYSQL_DATABASE | MySQL数据库名 | 是 |
| JAMBONES_MYSQL_CONNECTION_LIMIT | MySQL连接限制 | 否 |
| DTMF_LISTEN_PORT | DTMF监听端口 | 否 |
| JAMBONES_NG_PROTOCOL | rtpengine NG协议 | 否 |
| RTPENGINE_PORT | rtpengine端口 | 否 |
| JAMBONES_CLUSTER_ID | 集群ID | 否 |
| JAMBONES_NETWORK_CIDR | 功能服务器运行的私有网络CIDR(例如'172.31.0.0/16') | 是 |
| JAMBONES_REDIS_HOST | Redis主机地址 | 是 |
| JAMBONES_REDIS_PORT | Redis端口 | 否 |
| JAMBONES_RTPENGINES | rtpengine的IP:ng-port列表,逗号分隔(例如'172.31.32.10:22222') | 是 |
| JAMBONES_TIME_SERIES_HOST | InfluxDB主机地址 | 是 |
| JAMBONES_RECORD_ALL_CALLS | 启用自动录音功能 | 否 |
| K8S | 是否作为Kubernetes服务运行 | 否 |
| K8S_RTPENGINE_SERVICE_NAME | rtpengine服务名称(K8S环境下必填) | 否 |
该应用通常使用pm2进行进程管理,需配合ecosystem.config.js配置文件,示例如下:
jsmodule.exports = { apps : [ { name: 'sbc-outbound', cwd: '/home/admin/apps/sbc-outbound', script: 'app.js', instance_var: 'INSTANCE_ID', out_file: '/home/admin/.pm2/logs/jambonz-sbc-outbound.log', err_file: '/home/admin/.pm2/logs/jambonz-sbc-outbound.log', exec_mode: 'fork', instances: 1, autorestart: true, watch: false, max_memory_restart: '1G', env: { NODE_ENV: 'production', JAMBONES_LOGLEVEL: 'info', DRACHTIO_HOST: '127.0.0.1', DRACHTIO_PORT: 9022, DRACHTIO_SECRET: 'cymru', JAMBONES_RTPENGINES: '172.31.32.10:22222', JAMBONES_MYSQL_HOST: 'aurora-cluster-jambonz.cluster-xxxxxxxxxxxxx.us-west-1.rds.amazonaws.com', JAMBONES_MYSQL_USER: 'admin', JAMBONES_MYSQL_PASSWORD: 'JambonzR0ck$', JAMBONES_MYSQL_DATABASE: 'jambonz', JAMBONES_MYSQL_CONNECTION_LIMIT: 10, JAMBONES_REDIS_HOST: 'jambonz.zzzzzzz.0001.usw1.cache.amazonaws.com', JAMBONES_REDIS_PORT: 6379, JAMBONES_TIME_SERIES_HOST: '172.31.32.11', JAMBONES_NETWORK_CIDR: '172.31.0.0/16' } }] };
可通过以下命令运行容器(需替换环境变量值):
bashdocker run -d \ -e DRACHTIO_HOST=127.0.0.1 \ -e DRACHTIO_PORT=9022 \ -e DRACHTIO_SECRET=your_secret \ -e JAMBONES_MYSQL_HOST=mysql_host \ -e JAMBONES_MYSQL_USER=mysql_user \ -e JAMBONES_MYSQL_PASSWORD=mysql_password \ -e JAMBONES_MYSQL_DATABASE=jambonz \ -e JAMBONES_REDIS_HOST=redis_host \ -e JAMBONES_RTPENGINES=rtpengine_ip:port \ -e JAMBONES_TIME_SERIES_HOST=influxdb_host \ -e JAMBONES_NETWORK_CIDR=172.31.0.0/16 \ --name sbc-outbound jambonz/sbc-outbound
若需运行内置测试套件,需在本地环境安装Docker,执行以下命令:
bashnpm test






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