彩铃(SmartYard-Server)——平台核心
RBT(SmartYard-Server)是SmartYard平台的主要后端。它存储完整的配置和操作状态(建筑物、入口、设备、用户、密钥),使对讲机和 IP 中继与该模型保持一致,通过 Asterisk 协调对讲机呼叫,提供推送通知,收集和处理事件,并与媒体服务器、RBT-TT 和监控集成。
存储库:https://github.com/rosteleset/SmartYard-Server
RBT 存储和管理什么
基础设施和拓扑
- 设备:对讲机、闭路电视摄像机、IP 中继
- 建筑物/物体:建筑物、入口数量、每个入口的公寓范围
- “门模式”:服务于建筑群的入口
用户和权限
- 居民移动应用程序帐户
- 用户分配到的所有公寓的每用户权限
密钥和访问代码
- 多个关键级别:
- 用户密钥
- 公寓钥匙
- 建筑钥匙
- 管理公司钥匙
- 主钥匙(打开所有内容)
- 公寓门禁密码
RBT 内部子系统(SmartYard-Server)
1)核心域(注册表+访问控制)——系统模型和访问逻辑
充当整个平台事实来源的单核心子系统:
- 存储站点拓扑:建筑物、入口、公寓范围、入口模式(包括服务于多个建筑物的“门模式”)
- 存储设备库存:对讲机、摄像头、IP 中继及其绑定
- 商店用户及其跨公寓的权限/特权
- 存储钥匙和访问代码(用户/公寓/建筑物/管理/主钥匙)
- 执行授权检查并生成访问控制操作(门/大门/屏障)
此域模型和规则集由自动配置器、移动 API、事件管道和集成使用。
2) 自动配置器 — 所需/实际/差异设备同步
自动将内部通信和 IP 中继配置收敛到 RBT 中定义的所需状态:
- 为核心域中的每个设备编译所需状态配置
- 读取当前(实际)设备配置
- 计算实际和期望之间的差异
- 仅应用所需的更改(“补丁”)以达到目标状态
- 减少不必要的重写/重新启动,并使设备状态与数据库模型保持一致
3) Mobile API(应用程序API)——移动应用程序的接口
iOS/Android 客户端使用的公共 API: - 身份验证/会话 - 可用的建筑物/公寓/设备 - 带有权限检查的访问操作(例如“打开”) - 事件和历史 - 通过媒体服务器(HLS / WebRTC)发布媒体访问参数
重要提示:移动客户端通过媒体服务器接收视频,而不是直接从摄像机接收视频。
3.1) 自定义层 — 自定义字段 + 可重写模块 + Web 扩展
RBT 支持自定义层,有助于扩展业务逻辑,而无需分叉核心项目。
- 公寓的自定义字段可在用户界面中使用
- 模型/后端级别也支持其他实体的自定义字段
- 自定义行为可以通过可重写的后端和移动API模块来实现(例如,在
backends/*/custom和mobile/*/custom中) - 移动应用程序 网络扩展 也是该层的一部分,用于 UI/工作流程自定义(请参阅 Web 扩展)
实际示例:您可以将对讲机阻塞和摄像头阻塞拆分为单独的公寓字段,并根据这些值调整 API 行为,同时使上游 RBT 更新更容易。
3.2) 计费集成 — 基本功能
RBT 包括一个基本计费集成层,用于在计费和平台数据之间进行同步。
- 将地址层次结构导入 RBT(区域 → 城市 → 街道 → 建筑物 → 公寓 + 建筑服务)
- 公寓订阅/合同与更新同步:
- 状态
- 登录名/密码
- 自定义字段
- 用户电话号码
文档示例:计费集成
4) 电话编排器 — Asterisk 自动化
自动管理Asterisk来处理对讲呼叫和对讲↔移动应用程序交互。
5) 推送和消息传递 — 通知传递
向移动应用程序发送内线呼叫和其他系统消息/事件的推送通知。
6) 事件管道(Syslog Ingest)——事件收集和处理
一个专用子系统,通过 syslog 接收事件,使用元数据规范和丰富它们,将它们存储在 ClickHouse 中,并触发后续操作。
主要职责: - 从设备/服务获取系统日志 - 解析、标准化、丰富(建筑物/入口/设备/公寓/用户) - 将结构化事件写入ClickHouse(包括元数据,以及需要时的快照/链接) - 识别触发器:对于支持的事件类型,启动 FALPRS 处理(面/板)
7) 事件存储 (ClickHouse) — 事件存储
将完整的事件历史记录存储在 ClickHouse 中:事件元数据以及相关工件(例如相机快照)。
8) 媒体路由 — 将摄像机映射到媒体服务器
保留摄像机/流到媒体服务器的映射。视频仅通过媒体服务器使用HLS/WebRTC到达客户端。
9) 相机演示 — 相机如何在应用程序中显示
允许为居民定义摄像头演示: - 文件夹树 - 基于地图的视图(地理/视觉布局)
10) 票务集成 (RBT-TT)
在 RBT-TT 中为操作员和现场技术人员 (PWA) 处理的操作工作流创建和维护服务票证。
11) 监控集成 (Zabbix)
通过与 Zabbix 集成来监控活动设备。
汇总表“子系统→职责”
| 子系统 | 责任 | 存储/集成 |
|---|---|---|
| 核心域 | 拓扑、设备、用户、密钥、权限 + 访问操作 | 彩铃数据库 |
| 自动配置器 | 所需/实际/差异同步和补丁更新 | RBT ↔ 对讲机/IP 中继 |
| 移动API(应用程序API) | iOS/Android API:访问、事件、媒体参数 | 应用API + 彩铃 |
| 自定义层(自定义字段 + Web 扩展) | 项目特定的数据/模型 + 移动 UI/工作流程扩展,无需核心分叉 | RBT + 可覆盖模块 + SmartYard-web |
| 计费集成 | 地址层次结构导入+订阅/合同同步 | 计费 ↔ 彩铃 |
| 电话协调器 | Asterisk管理、对讲通话 | 星号 |
| 推送和消息 | 推送通知发送 | 推送提供商 |
| 事件管道(系统日志摄取) | 系统日志→规范化→存储→触发识别 | 系统日志 → ClickHouse → FALPRS |
| 活动存储 | 耐用的活动存储 | 点击屋 |
| 媒体路由 | “相机→媒体服务器/流”映射 | Flussonic/替代品 |
| 相机演示 | 文件夹树/地图视图 | 彩铃 |
| 票务集成 | 门票和操作流程 | RBT-TT |
| 监控集成 | 设备监控 | 扎比克斯 |
典型流程
设备自动配置(基于差异的更新)
1)RBT 数据变更(权限/钥匙/公寓/设备)
2) 自动配置器构建所需状态配置
3) 自动配置器读取实际设备配置
4) 计算 diff/patch 并且仅应用所需的更改
5)设备状态收敛到数据库模型
事件 → ClickHouse → 认可
1) 设备/服务通过 syslog 发出事件
2)Event Pipeline解析/丰富它
3)事件存储在ClickHouse中
4) 对于支持的事件类型,会触发 FALPRS(面/板)
5) 结果被存储并可供客户端/逻辑使用
移动应用中的视频
1)用户打开相机视图
2) RBT通过媒体服务器检查权限并下发媒体访问
3) 视频通过媒体服务器通过HLS/WebRTC传送
对讲通话 → 移动应用程序
1)对讲机发起呼叫
2) RBT 通过Asterisk 进行编排
3) 推送通知到达用户
4) 用户可以打开/操作(权限检查),并且事件被记录