跳转至

彩铃(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)发布媒体访问参数

API文档

重要提示:移动客户端通过媒体服务器接收视频,而不是直接从摄像机接收视频。

3.1) 自定义层 — 自定义字段 + 可重写模块 + Web 扩展

RBT 支持自定义层,有助于扩展业务逻辑,而无需分叉核心项目。

  • 公寓的自定义字段可在用户界面中使用
  • 模型/后端级别也支持其他实体的自定义字段
  • 自定义行为可以通过可重写的后端和移动API模块来实现(例如,在backends/*/custommobile/*/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) 用户可以打开/操作(权限检查),并且事件被记录


另请参阅