1. 先把“作为下级级联”这件事想清楚:方向和角色别搞反
做国标对接最容易被绕晕的一点,就是“上级”和“下级”到底谁主动。标题里写了“作为下级级联到第三方国标平台”,这句话的意思是:LiveGBS这台流媒体平台,要主动去注册到上面那套更“大”的国标平台里,比如某些安防厂商自带的综合管理平台。这套第三方平台是“上级”,LiveGBS是“下级”。
很多人在这一步会犯迷糊,因为LiveGBS平时最常见的用法是当“上级”用——摄像头、NVR、DVR通过GB/T28181接入到LiveGBS,LiveGBS帮它们做转流、录像、拉流。这个时候LiveGBS就是信令的中心,摄像头是下级。现在要反过来了:LiveGBS把自己当成一个“大设备”,去向上级平台报到。上级平台一旦接受注册,就能看到LiveGBS下面挂着的所有通道,并可以直接点播这些通道的实时流和回放流。
第三方平台要求你提供“国标编号、地址、端口号”,本质上是它要在自己的“下级平台管理”页面里,添加一条“下级平台”的配置。它需要知道LiveGBS这个“下级平台”叫什么编号、住在哪个IP、在哪个端口上“开门迎客”。这些信息不是你去它平台里乱填的,而是你自己这台LiveGBS作为下级时,对外暴露的身份和地址。所以后面所有配置的核心只有一件事:把LiveGBS本机的SIP服务参数,准确、真实、能被上级访问到地交给对方。
再强调一次角色:LiveGBS是下级,第三方平台是上级。第三方平台要的“国标编号、地址、端口号”都是LiveGBS这侧的信息。千万别把这个和“上级平台的SIP服务器编码/地址/端口”搞混了。很多人在找第三方要“对方地址、对方端口”,其实那是你在添加上级平台时要填的,不是对方问你要的。我见过不少接入申请单被退回,就是因为把两边信息填反了。
2. 对方要的“国标编号、地址、端口号”分别该怎么定
2.1 国标编号:不能自己随手编,要遵守编码规则或由上级分配
国标编号在国内视频联网里通常是一串纯数字编码。按照GB/T 28181-2016以及2022版的精神,设备或平台的国标编码遵循“中心编码(行政区划)+行业编码+类型编码+序号+校验”的结构。常见的长度是20位十进制数字,比如“34020000002000000001”这种。前8位是中心编码,代表省、市、区(县);接着2位行业编码;接着2位类型编码;后面是7位序号和1位校验位。不同类型的设备类型编码不一样,平台(SIP服务器/信令安全路由)的设备类型和摄像头也不同。
在级联场景下,上级平台通常要求“下级平台”使用一个能与自身管理域匹配的编码。如果你们属于同一个市域,那下级平台编码的前8位很可能要落在同样的行政区划下,否则即便注册成功,上级平台的目录树也会把这个下级挂到其他区域下面,看起来别扭,后续处理麻烦。所以最稳妥的做法是:在配置前,先和第三方平台的管理员确认一下,有没有统一分配好的“平台国标编号”。很多大平台在申请接入时会给你一张参数表,里面直接写好了“下级平台SIP服务器ID”,你复制过来填到LiveGBS对应位置即可。
如果对方说“你自己填”,那也不要随便写。确定一个符合如下规则的编码:
- 前8位:所在行政区划编码,需要和上级平台所在区域一致或上级认可。
- 中间4位:行业编码+类型编码。行业编码常见“00”表示通用;平台类型编码一般用“02”或“10”,不同厂家有不同理解。你按上级平台常见惯例来,或者干脆用对方模板里给过的先例。
- 后8位:序号加校验,只要保证整个编码在整个域内唯一即可。
部分平台还支持更短的自定义域编码(如10位或12位),这种通常出现在私有化程度较高的平台里,虽然不符合通用国标规范,但如果你对接的第三方平台确实这么做,就以它的要求为准。毕竟“接不上”比“合不合规”更现实。
LiveGBS配置界面里,有一个“本机SIP服务器ID”或者“国标编号”的字段,修改后需要重启国标服务才能生效。填写时注意:不能带空格、横杠,只能是数字。校验位如果拿不准,有些平台允许填任意数字,有些平台会做校验,所以最好让上级平台帮你算好。
2.2 地址:必须填的是LiveGBS所在服务器的SIP监听地址
“地址”指的是外部能够访问到LiveGBS这台监听的IP。这里有一个关键判断:上级平台和LiveGBS在同一个二层内网,还是跨了公网。
如果两者在同一个局域网/专网内,就把LiveGBS服务器的实际内网IP填给第三方。比如LiveGBS服务器内网是192.168.10.20,那第三方平台添加下级时,地址就填192.168.10.20。这个前提是第三方平台服务器能ping通并访问到这个IP。
如果两者跨了公网,或者第三方平台不在同一个内网,情况立刻复杂。你直接填LiveGBS服务器内网IP是没用的,上级平台根本路由不到。这时候你需要在边界防火墙上做端口映射,把公网IP的某个端口映射到LiveGBS服务器内网的SIP端口,然后第三方平台添加下级时填写这个公网IP和公网映射端口。如果你的出口只有一条动态公网IP,还要考虑映射失效的问题。
这里有一个非常容易被忽略的坑:在LiveGBS内部配置“本机SIP地址/公网地址”时,如果跨NAT,务必把“对外宣告的SIP地址”设置成映射后的公网IP,而不是内网IP。GB28181信令里带有SIP Contact地址,如果信令到达上级平台时显示的地址是内网IP,那么即使注册成功,点击实时视频时上级平台大概率会因为“找不到媒体流地址”而拉流失败。这就是很多人“注册在线但播放黑屏”的常见原因。如果你部署在云主机上,且有弹性公网IP,直接绑定公网IP到网卡上会省很多事;如果是物理机在NAT后,建议在LiveGBS的配置里查找“SIP公网IP/外网地址”字段,认真填写。
2.3 端口:默认5060,但TCP/UDP和映射场景要看清楚
LiveGBS默认的SIP信令端口是5060,全监听在0.0.0.0上,UDP和TCP默认都监听。第三方平台添加下级平台时,一般会让你提供端口号。大多数情况你提供5060就行。
但要注意几个坑:
- 如果这台服务器上已经跑了别的SIP服务,使用了5060端口,会冲突。你可以在LiveGBS里把SIP端口改成5061或者别的,但改完一定要同步告诉第三方,并确保防火墙放行新端口。
- 有些上级平台只支持UDP,有些只支持TCP,尤其国标2022之后,TCP的使用率明显提高。第三方平台添加下级时,一般会有一个“传输协议”下拉框,你根据LiveGBS实际开启的协议选。如果LiveGBS默认UDP/TCP都开,那两边选UDP或TCP都可以,但务必保证双向一致。更常见的情况是上级平台固定用TCP 5060,你的LiveGBS服务器防火墙和安全组里必须同时放行TCP 5060入方向和UDP 5060入方向,别只放了一个。
- 端口映射场景下,外部映射端口可以不是5060,比如公网映射为10060,但LiveGBS内网实际端口仍是5060,那第三方平台添加下级时填公网IP和10060。同时还要在LiveGBS的“公网端口宣告”里,把这个外部映射端口作为对外端口写清楚,保证信令消息里携带的端口是外部可访问的端口,而不是内网5060。否则就会出现“上级平台已添加,但信令交互时消息里的端口连不通”的问题。
给第三方平台提供参数时,建议用表格列出来:
| 参数 | 示例 | 说明 |
|---|---|---|
| 下级平台国标编号 | 34020000002000000001 | LiveGBS的SIP服务器ID |
| SIP监听地址 | 203.0.113.10 | 上级平台实际能访问到的IP |
| SIP端口 | 5060 | UDP/TCP协议对应 |
| 传输协议 | UDP/TCP | 和LiveGBS实际开启一致 |
| 接入密码/鉴权密码 | 自定义 | 两边必须一致 |
2.4 密码:别以为国标就一定不要密码
早期的GB28181很多平台图方便不启用密码,但2022版对安全要求提升,大多数第三方平台在添加下级平台时强制要求填“接入密码”。这串密码是给SIP Digest鉴权用的。你要在LiveGBS作为下级时的“密码”字段里填同样的值。
需要注意,第三方平台菜单里的名称可能不叫“密码”,而叫“接入密钥”“SIP认证密码”“鉴权密码”,但本质上都是同一个东西。有些平台还会有“区分大小写”的校验,建议用大小写字母加数字组合,避免歧义。另外,如果上级平台启用了密码,LiveGBS侧没有填或者填错,上级平台日志会提示“401 Unauthorized”或“鉴权失败”,看上去像是你被拒了。
3. 实操:在LiveGBS里配置“作为下级”的完整步骤
3.1 先准备好一张“参数对照表”
不要脑子一热就开配置。我做对接前一定会先做下面这张表,两边信息一目了然:
| 配置项 | LiveGBS侧 | 第三方平台侧 |
|---|---|---|
| 本机SIP服务器ID(国标编号) | 待填 | 待填(两边必须一致) |
| 上级SIP服务器ID | 从上家拿到 | 第三方平台自己提供 |
| 上级平台SIP地址 | 从上家拿到 | 第三方平台的地址 |
| 上级平台SIP端口 | 默认5060,按对方要求 | 默认5060 |
| 下级SIP监听地址 | LiveGBS服务器内网IP或映射公网IP | 上级填写此地址 |
| 下级SIP监听端口 | LiveGBS配置的端口 | 上级填写此端口 |
| 鉴权密码 | 与上级协商 | 与下级协商 |
| 传输协议 | UDP/TCP | 与下级一致 |
这张表填完,再去操作,会清晰得多。尤其是找第三方平台要“上级SIP服务器ID”和“地址”,你才知道该问谁要、问什么字段。
3.2 登录LiveGBS后台,找到国标配置/级联接入页面
LiveGBS的管理界面通常有“基础配置”“国标接入”“流媒体服务”等几个大菜单。做级联时,你要找的是“国标配置”里关于“平台接入”或“上联”的部分。有的版本直接叫“SIP上级”,有的叫“级联接入”。打开后一般会看到一个列表,里面可以添加多个上级平台。这个列表允许你同时配置多个不同的上级平台,意味着LiveGBS可以同时作为下级,向多套第三方平台注册。不过配置多套时,本机国标编号不变,但每个上级平台的连接参数不同。
我习惯的流程是:
- 在LiveGBS后台“国标服务”配置页,先看“本机国标ID”(也叫SIP服务器ID)。如果第三方平台已经分配了编号,直接改成本机国标ID;如果还没分配,就先把规划好的编号填进去。
- 修改本机国标ID后,重启LiveGBS服务,确保生效。
- 再找到“级联平台管理”或“上联平台配置”,点击“添加”。
3.3 填写上级平台参数
添加上级平台时,通常需要填这些字段:
- 上级平台名称:给一个你认得出来的名字,比如“总部中心平台”。
- 上级SIP服务器ID:这是第三方平台自己的SIP服务器ID,不是你的。从对方拿。
- 上级平台地址:第三方平台的SIP监听IP。
- 上级平台端口:第三方平台SIP端口,通常是5060。
- 下级(本机)国标编号:这个在很多版本里可能默认读取本机国标ID,不用重复填,但如果支持单独指定,就填同一个ID。
- 密码:与上级平台约定的接入密码。
- 传输协议:UDP或TCP,按上级要求选。
- 通道目录推送周期:一般默认即可,常见300秒或600秒。如果你希望对方尽快看到新加摄像头,可以设小一点比如60秒,但会带来额外的信令开销。
- 过期时间/注册有效期:保持默认。
填完保存后,LiveGBS会立刻向上级平台发送一条SIP REGISTER请求。正常情况下,几秒内页面上的“级联状态”会变成“在线”或“已注册”。如果一直是“离线”“未注册”,看第4节排查。
3.4 在第三方平台添加上级时填什么
这步是标题里最直接的问题:第三方平台要求你提供国标编号、地址、端口号。你就按自己LiveGBS实际配置提供:
- 国标编号:就是LiveGBS本机SIP服务器ID。
- 地址:上级能访问到的IP。
- 端口:上级能访问到的SIP端口。
- 密码:和LiveGBS里填的密码一致。
第三方平台添加下级的地方通常叫“接入平台”“下级平台”“域管理”。以H品牌为例,添加下级平台时,页面会让你输入“SIP服务器ID”(即你给的国标编号)、“SIP服务器地址”(IP)、“SIP服务器端口”(5060),以及“接入密码”。以D品牌为例,可能需要你先创建一个“接入域”,指定域编码,然后把LiveGBS作为“平台接入”设备添加进去。以U品牌为例,则可能叫“下级平台编码”。名字虽然不一样,填信息的时候一一对应即可。
3.5 验证目录是否上送
注册成功不代表万事大吉。第三方平台添加下级后,还需要看到LiveGBS名下已接入的通道。LiveGBS会通过SUBSCRIBE/NOTIFY或主动推送的方式,把设备目录上送给上级。有些平台需要你在LiveGBS侧手动点击“推送目录”或“通知上级”,有些则等待下一个目录推送周期。
验证方法很简单:去第三方平台的“视频目录”或者“设备列表”里,找到这个下级平台节点,展开看有没有子设备/通道。如果能看到实时视频,说明整个流程通了。如果只是注册在线但目录为空,多半是目录推送间隔未到,或者LiveGBS本机设备根本没有接入任何通道。另外,还要检查该通道是否设置了“支持国标级联导出”之类的属性。LiveGBS的通道列表里,被推送到上级的通道与本地使用的逻辑通道可能是两套,级联推上去的是LiveGBS内部生成的国标通道。凡是能正常在LiveGBS内预览的通道,一般都会被转换为下级通道上送。
我在有个模拟项目里就遇到过这样的事:LiveGBS里明明有几十个摄像头,级联状态也显示在线,但上级平台一个通道都看不到。后来发现是LiveGBS版本差异,需要在“级联接入”配置里勾选“自动上送全部共享通道”,默认只上送带有共享标记的通道。所以如果目录为空,先检查通道的“共享”属性,再去检查上级平台的目录刷新。
4. 常见问题与排查技巧实录
4.1 注册不上,LiveGBS显示“离线”/“未响应”
这是级联对接里最高频的问题。排查顺序我按“网络-端口-信令-编码”来走:
- 先确认上级平台地址、端口填的没错。可以去一审那里再核对一次“上级平台SIP地址”是内网IP还是公网IP。
- 在LiveGBS服务器上直接用telnet测端口。UDP端口用telnet测不准,可以用
nc -u -vz <上级IP> 5060测试UDP是否通。如果跨公网,测试端口的机器必须是外网可访问的地址。 - 再看防火墙。Linux上查
firewall-cmd --list-ports或ufw status,云主机查安全组入方向是否放行UDP/TCP 5060。 - 看liveGBS日志。国标服务日志里如果能看到SIP REGISTER请求发出,说明出站没问题;如果连日志都没有,检查配置是否保存成功。
- 如果上级平台那边显示“下级未上线”,同时你这边能收到信令但注册超时,大概率是“本机SIP地址”宣告错误,也就是对方回复的消息到达不了你。
跨NAT时,还要确认是否同时做了双向NAT。也就是说,从上级过来的UDP包经过公网映射后要能回来。很多场景是只做了“出站端口映射”,忘了“回程路由”,导致单通。
4.2 国标编号格式被驳回
上级平台添加下级时,页面大多会做格式校验。常见问题:
- 编号长度不对。LiveGBS里填的是20位数字,你复制的时候多了一个空格或者少了一位。
- 校验位不对。某些平台对第20位校验码会核实,如果计算不符,会提示“编码不合法”。
- 编号冲突。整个域里已经有另一个平台在使用同一个编码,上级平台会拒绝重复注册。
- 前8位行政区划不在上级平台允许范围内。虽然对方没明说,但添加后可能自动归到“未分配”区域,状态正常但看不到位置。
解决策略很简单:让第三方平台管理员直接给你分配一个“下级平台编码”,把最终那个编码回填到LiveGBS里。不要自己造,尤其跨域场景。H品牌平台对编码规范校验尤其严格,稍微不对就弹红。
4.3 提示鉴权失败、密码错误
先确认两边填的密码完全一致,包括大小写。然后看上级平台是否开启“摘要认证”,如果开启了,你这边密码必须和上级数据库里存的一致。有时候上级平台的系统管理员设置了一个初始密码,口头告诉你时容易把0和O、1和I混淆。建议让管理员直接复制字符串给你。
另外,不少平台在“下级平台管理”里填的密码和“设备的接入密码”不是同一个,注意区分。你在LiveGBS侧作为下级填的密码,必须对应的是上级平台“添加下级平台”时设置的密码。
还有一个易错点:如果LiveGBS里同时配置了多个上级平台,每个上级平台的密码可能不同,LiveGBS会按上级平台ID选择密码,不会串,但你可能在复制时弄混。
4.4 注册在线,但上级平台看不到目录/通道
注册通了,说明SIP层面没问题,接下来是目录推送。先等一个推送周期(默认300秒),如果还是空,手动在LiveGBS级联页面点“推送目录”。然后到上级平台查看信令日志,看是否收到MESSAGE/SUBSCRIBE。如果上级收到了目录,但显示不了,多半是目录XML里的编码字段和上级平台区域不符,或者设备类型字段不被上级识别。
我调试时遇到过一种情况:LiveGBS里的通道国标编号是自动生成的,前8位与上级要求的中心编码不同,导致上级平台把目录包解析出来但选择忽略。解决方法是手动修正通道的国标编码,保证它们都在上级平台域下。
如果是国标2022,还可能有一个“共享密钥”字段,某些第三方平台要求下级平台在目录推送时携带额外的鉴权信息,LiveGBS版本太旧可能不兼容,建议升级到支持2022的版本。
4.5 实时视频点播失败,无画面
注册、目录都正常,但一点点播就失败,这是典型“信令通、媒体流不通”的症状。国标信令消息里,SDP中携带的媒体流地址一般是LiveGBS告诉对方的。如果你在LiveGBS里没有配置“公网IP”,它会在SDP里写内网IP,导致上级平台发送INVITE后返回的媒体流地址无法访问。
处理方法:
- 在LiveGBS“国标服务”配置里,找到“SIP对外地址”或“公网IP”,填成上级平台能访问到的IP。
- 检查上级平台要求的媒体端口范围,许多平台只允许特定范围的RTP端口,LiveGBS默认的媒体端口范围不要太窄,比如7000-12000差不多够用。
- 防火墙还需要放行媒体端口(UDP),不仅仅是SIP端口。
- 如果上级平台只支持TCP媒体流,需要确认LiveGBS的媒体传输模式支持TCP,并在配置里开启。
4.6 国标2022带来的几个明显差异
很多人还在用2016的思路做级联,但2022版里最直观的变化有几点:
- TCP支持从“可选”变为“必选”,很多第三方平台新建级联默认用TCP,你的LiveGBS必须把TCP SIP监听打开。
- 密码算法和摘要方式有调整,老密码可能不适用,需要重新协商。
- 对设备目录、录像目录等XML结构做了扩展,旧的LiveGBS版本推上去的内容可能不完整,对方解析不了。
- 新增一些媒体协商字段,如果没有正确实现,点播会出现“超时”。
所以如果需要对接国标2022的第三方平台,先用最新版LiveGBS,再和对方确认它实际用的是2022的哪部分。这年头平台和平台之间,版本差异是一个绕不开的暗坑。
5. 几个值得分享的对接习惯
先说一个高效验证方法:如果你还没和真实第三方平台对接,可以用两台LiveGBS先做一次模拟级联,一台当上级,一台当下级,把上面那些配置都走一遍。这样你能看到两个完整界面,知道信息从哪来、到哪去,再去和H/D/U品牌对接时就不会慌。我当初花了两个小时自己模拟,后来现场对接基本一次性通过。
再说一个“地址填什么”的决策树:
- 如果上级IP和本机IP在同一网段,直接填内网IP。
- 如果不同网段但有路由可达,填能ping通的IP。
- 如果必须走公网,做一个端口映射,并设置好NAT后的宣告IP和端口。
- 永远不要在同一台服务器上同时开多个SIP服务占用5060,除非你会改端口并告知对方。
最后,配合一份“交付参数表”给第三方平台的对接人员。下面是模板:
| 参数 | 我方填写 | 备注 |
|---|---|---|
| 下级平台/SIP服务器ID | 34020000002000000001 | 由上级管理员分配或双方确认 |
| 下级平台SIP监听IP | 203.0.113.10 | 必须可被上级访问 |
| 下级平台SIP端口 | 5060 | UDP/TCP |
| 接入密码 | ******** | 两边一致 |
| 传输协议 | TCP | 按上级要求 |
| 目录推送周期 | 300秒 | 可调整 |
把这个表发给对方,对方基本上一眼就知道怎么填。遇到H品牌、D品牌、U品牌这些平台,不同字段名根本不用慌,拿这张表一一对应即可。
最后再分享一个小技巧:调试级联时,不要只看自己的界面,让第三方平台那边把它的信令日志打开,尤其是SIP消息收发日志。一旦两边日志都在手,是注册失败、鉴权失败、还是目录解析失败,五分钟就能定位出来。国标级联是个“两端配合”的活,自己把参数备齐、把端口打开、把日志留好,往往一聊就对上了。