jambonz/sbc-call-routersbc-call-router 是一个基于 express.js 框架开发的 Web 回调服务,主要用途是将 SIP INVITE 请求路由至 sbc-inbound 或 sbc-outbound 应用。其核心功能是根据呼叫源地址的网络归属(是否属于配置的内部网络),自动区分入站和出站呼叫,并将请求转发至对应的处理服务。
通过 docker run 快速启动服务,需指定必填环境变量(如 JAMBONES_NETWORK_CIDR):
bashdocker run -d \ --name sbc-call-router \ -p 3000:3000 \ # 映射容器端口(默认使用 express 端口,如未指定 HTTP_PORT 则为 3000) -e HTTP_PORT=3000 \ # 可选,服务监听端口 -e JAMBONES_NETWORK_CIDR="192.168.1.0/24,10.0.0.0/8" \ # 必填,内部网络 CIDR(支持多 CIDR,逗号分隔) -e JAMBONES_LOGLEVEL="info" \ # 可选,日志级别(debug/info/warn/error) -e JAMBONES_INBOUND_ROUTE="[***]" \ # 可选,入站呼叫路由 URL -e JAMBONES_OUTBOUND_ROUTE="[***]" \ # 可选,出站呼叫路由 URL -e K8S=false \ # 可选,是否在 Kubernetes 中运行(默认 false) sbc-call-router:latest
创建 docker-compose.yml 配置文件,定义服务及环境变量:
yamlversion: '3' services: sbc-call-router: image: sbc-call-router:latest container_name: sbc-call-router ports: - "3000:3000" # 端口映射(主机端口:容器端口) environment: - HTTP_PORT=3000 # 服务监听端口(可选) - JAMBONES_NETWORK_CIDR=192.168.1.0/24,10.0.0.0/8 # 必填,内部网络 CIDR - JAMBONES_LOGLEVEL=info # 日志级别(可选) - JAMBONZ_TAGGED_INBOUND= # 标记入站请求(可选,需结合业务逻辑使用) - JAMBONES_INBOUND_ROUTE=[***] # 入站路由 URL(可选) - JAMBONES_OUTBOUND_ROUTE=[***] # 出站路由 URL(可选) - K8S=false # 是否在 Kubernetes 中运行(可选,默认 false) restart: unless-stopped # 自动重启策略
服务所有配置通过环境变量实现,具体参数说明如下:
| 变量名 | 含义 | 是否必填 |
|---|---|---|
| HTTP_PORT | 服务监听的 TCP 端口(API 请求端口) | 否 |
| JAMBONES_NETWORK_CIDR | 内部网络 CIDR(用于判断源地址是否为内部网络) | 是 |
| JAMBONES_LOGLEVEL | 日志级别(支持 debug、info、warn、error 等) | 否 |
| JAMBONZ_TAGGED_INBOUND | 标记入站请求(具体用途需结合业务逻辑) | 否 |
| JAMBONES_INBOUND_ROUTE | 入站呼叫的路由目标 URL | 否 |
| JAMBONES_OUTBOUND_ROUTE | 出站呼叫的路由目标 URL | 否 |
| K8S | 服务是否作为 Kubernetes 服务运行(布尔值,如 true/false) | 否 |
补充说明:
JAMBONES_NETWORK_CIDR 为必填项,支持配置多个 CIDR(用逗号分隔),例如 "192.168.1.0/24,10.0.0.0/8"。HTTP_PORT,服务默认使用 express.js 框架的默认端口(通常为 3000)。K8S 变量用于标识服务是否运行在 Kubernetes 环境,可能影响服务发现或网络配置(具体逻辑需结合服务内部实现)。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务