
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
sbc-inbound是jambonz平台会话边界控制器(SBC)功能的组成部分,主要用于处理入站SIP流量。它接收来自运营商SIP中继、SIP设备及WebRTC应用的INVITE请求,对已知运营商的流量直接允许接入,对SIP设备的请求进行认证挑战,并将通过验证的流量转发至私有子网中的jambonz应用服务器,实现安全可控的入站呼叫接入管理。
适用于jambonz VoIP平台的入站呼叫接入场景,特别是需要对入站SIP流量进行安全控制、运营商流量与设备流量区分管理的场景,如企业IP PBX系统、云通信平台的入站呼叫边界防护等。
通过以下环境变量进行配置,具体说明如下:
| 变量名 | 含义 | 是否必填 |
|---|---|---|
| DRACHTIO_HOST | drachtio服务器IP地址(通常为'127.0.0.1') | 是 |
| DRACHTIO_PORT | drachtio服务器控制连接监听端口(通常为9022) | 是 |
| DRACHTIO_SECRET | 共享密钥 | 是 |
| HTTP_PORT | HTTP监听端口 | 否 |
| 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 | In***DB主机地址 | 是 |
| JAMBONES_TIME_SERIES_PORT | In***DB端口 | 否 |
| JAMBONES_RECORD_ALL_CALLS | 启用自动呼叫录音,可选'yes'或'no' | 否 |
| K8S | 是否作为Kubernetes服务运行 | 否 |
| K8S_RTPENGINE_SERVICE_NAME | rtpengine服务名(K8S环境必填) | 否 |
| K8S_FEATURE_SERVER_SERVICE_NAME | 功能服务器服务名(K8S环境必填) | 否 |
| JWT_SECRET | JWT令牌签名密钥 | 是 |
| ENCRYPTION_SECRET | 凭证加密密钥(JWT_SECRET已弃用) | 是 |
drachtio服务器配置
json{ "drachtio": { "port": 3001, "secret": "cymru" } }
drachtio对象指定用于接收来自drachtio服务器TCP连接的监听端口,以及用于服务器认证的共享密钥。
注意:根据提供的配置,可以使用入站连接或出站连接。在生产环境中,为便于应用逻辑的集中化和集群化,建议使用出站连接;入站连接通常用于自动化测试套件。
rtpengine配置
json{ "rtpengine": { "host": "127.0.0.1", "port": 22222 } }
rtpengine对象指定rtpengine的位置,通常与drachtio运行在同一服务器上。
应用日志级别
json{ "logging": { "level": "info" } }
配置应用日志级别,可选'info'(默认)或'debug'。
应用服务器路由配置
内部应用服务器的SIP中继路由通过IP地址数组指定:
json{ "trunks": { "appserver": ["sip:10.10.120.1"] } }
转码选项
rtpengine的转码选项在配置文件中定义,通常无需修改:
json{ "transcoding": { "rtpCharacteristics": { "transport protocol": "RTP/AVP", "DTLS": "off", "SDES": "off", "ICE": "remove", "rtcp-mux": ["demux"] }, "srtpCharacteristics": { "transport-protocol": "UDP/TLS/RTP/SAVPF", "ICE": "force", "SDES": "off", "flags": ["generate mid", "SDES-no"], "rtcp-mux": ["require"] } } }
用户认证由客户端通过暴露HTTP回调实现。系统会向配置的回调地址(即REGISTER请求中关联SIP域对应的accounts.registration_hook列的值)发送POST请求,请求体为包含以下信息的JSON payload:
json{ "method": "REGISTER", "expires": 3600, "scheme": "digest", "username": "john", "realm": "jambonz.org", "nonce": "157590482938000", "uri": "sip:172.37.0.10:5060", "response": "be641cf7951ff23ab04c57907d59f37d", "qop": "auth", "nc": "00000001", "cnonce": "6b8b4567", "algorithm": "MD5" }
客户侧逻辑需检索给定用户名的关联密码,然后按照https://tools.ietf.org/html/rfc2617#section-3.2.2%E6%8F%8F%E8%BF%B0%E7%9A%84%E7%AE%97%E6%B3%95%E8%AE%A1%E7%AE%97%E5%93%8D%E5%BA%94%E5%93%88%E5%B8%8C%E5%80%BC%EF%BC%8C%E5%B9%B6%E4%B8%8EHTTP%E8%AF%B7%E6%B1%82%E4%BD%93%E4%B8%AD%E7%9A%84%60response%60%E5%B1%9E%E6%80%A7%E8%BF%9B%E8%A1%8C%E6%AF%94%E8%BE%83%EF%BC%8C%E5%AE%8C%E6%88%90%E8%AE%A4%E8%AF%81%E3%80%82
示例代码可参考https://github.com/jambonz/customer-auth-server/blob/master/lib/utils.js%EF%BC%8C%E5%AE%8C%E6%95%B4%E7%A4%BA%E4%BE%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8F%AF%E5%8F%82%E8%80%83https://github.com/jambonz/customer-auth-server%E3%80%82
客户服务器应始终返回200 OK响应,响应体为JSON格式,包含status字段,值为ok(认证成功)或fail(认证失败):
json{"status": "ok"}
失败时可额外包含msg字段,描述失败原因:
json{"status": "fail", "msg": "invalid username"}
本应用作为背靠背用户代理(B2BUA)和媒体代理,将INVITE请求转发至jambonz应用服务器时,会添加以下头信息:
X-Forwarded-For:发送INVITE的客户端IP地址X-Forwarded-Carrier:入站运营商名称(如适用)运行内置测试套件需在本地/服务器安装MySQL,运行前需设置MYSQL_ROOT_PASSWORD环境变量指定MySQL root密码。测试套件会在MySQL中创建名为jambones_test的数据库用于测试,测试完成后自动删除。
bashMYSQL_ROOT_PASSWORD=foobar npm test
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务