目录
概述
GB28181公网对讲特别说明
GB28181语音对讲原理
公网摄像头语音对讲解决方案
LiveMedia介绍
LiveMedia GB28181平台搭建
概述
摄像头语音对讲是在2014版本提出来的,我这里详细写一遍国标28181-2016语音对讲的功能介绍。
提前先把GB28181检测需要注意的事项说一下:
1、语音对讲其实主要的是音频流的输入输出, 输入设备类型是136,输出设备类型是137
2、目前检测的时候,海康摄像机是定制的检测版本有固定的137类型id,一般海康摄像机是没有配置音频输出通道的,需要自己通过SDK模拟一个音频输出设备或则让海康提供 28181检测的固件版本。
3、检测时候需要用笔记本电脑模拟一个136音频输入的设备,一般和客户端绑定一起(或则后台服务器配置相应的id和客户端绑定一起)
4、音频输入源一般是采用笔记本采集的音频信号.
GB28181公网对讲特别说明
注意:GB28181中语音广播音频数据是由平台发送到摄像头的,但是在公网的环境下一般情况是摄像头没有固定IP地址,语音信令建立完成之后,平台无法将音频数据发送至需要由摄像头主动发起音频数据连接到GB28181平台。
GB28181语音对讲原理
其中,信令1、2、3、4为语音广播通知、语音广播应答消息流程;信令5、12、13、14、15、16为SIP服务 器接收到客户端的呼叫请求通过 B2BUA 代理方式建立语音流接收者与媒体服务器之间的媒体流信令 过程,信令6~11为SIP服务器通过三方呼叫控制建立媒体服务器与语音流发送者之间的媒体流信令 过程,信令17~20为SIP服务器断开语音流接收者与媒体服务器之间的媒体流信令过程,信令21~24为SIP服务器断开媒体服务器与语音流发送者之间的媒体流信令过程。
命令流程描述如下: a) 1:SIP服务器向语音流接收者发送语音广播通知消息,消息中通过 To头域标明作为目的地址 的语音流接收者ID,消息采用 Message方法携带。 b) 2:语音流接收者收到语音广播通知消息后,向SIP服务器发送200OK 响应。 c) 3:语音流接收者向SIP服务器发送语音广播应答消息,消息中通过 To头域标明作为目的地 址的SIP服务器ID,消息采用 Message方法携带。 d) 4:SIP服务器收到语音广播应答消息后,向语音流接收者发送200OK 响应。 e) 5:语音流接收者向SIP服务器发送Invite消息,消息中通过 To头域标明作为目的地址的语音 流发送者ID,消息头域中携带Subject字段,表明请求的语音流发送者ID、发送方媒体流序列 号、语音流接收者ID、接收方媒体流序列号等参数,SDP消息体中s字段为“Play”代表实时点 播,m 字段中媒体参数标识为“audio”表示请求语音媒体流。 f) 6:SIP服务器收到Invite请求后,通过三方呼叫控制建立媒体服务器和语音流发送者之间的 媒体连接。向媒体服务器发送Invite消息,此消息不携带SDP消息体。 g) 7:媒体服务器收到SIP服务器的Invite请求后,回复200OK 响应,携带SDP消息体,消息体 中描述了服务器接收媒体流的IP、端口、媒体格式等内容。 h) 8:SIP服务器收到媒体服务器返回的200OK 响应后,向语音流发送者发送Invite请求,消息 中通过 To头域标明作为目的地址的语音流发送者ID,消息头域中携带 Subject字段,表明请 求的语音流发送者ID、发送方媒体流序列号、语音流接收者ID、接收方媒体流序列号等参数, 请求中携带消息7中媒体服务器回复的200OK 响应消息体,s字段为“Play”代表实时点播, m 字段中媒体参数标识为“audio”表示请求语音媒体流,增加y字段描述SSRC值,f字段描述 媒体参数。 i) 9:语音流发送者收到SIP服务器的Invite请求后,回复200OK 响应,携带SDP消息体,消息 体中描述了媒体流发送者发送媒体流的IP、端口、媒体格式、SSRC 字段等内容,s字段为 “Play”代表实时点 播,m 字段中媒体参数标识为“audio”表示请求语音媒体流。 j) 10:SIP服务器收到语音流发送者返回的200OK 响应后,向媒体服务器发送 ACK 请求,请求 中携带消息9中语音流发送者回复的200OK 响应消息体,完成与媒体服务器的Invite会话 建立过程。 k) 11:SIP服务器收到语音流发送者返回的200OK 响应后,向语音流发送者发送 ACK 请求,请 求中不携带消息体,完成与语音流发送者的Invite会话建立过程。 l) 12:完成三方呼叫控制后,SIP服务器通过 B2BUA 代理方式建立语音流接收者和媒体服务器 之间的媒体连接。在消息5中增加SSRC值,转发给媒体服务器。 m)13:媒体服务器收到Invite请求,回复200OK 响应,携带SDP消息体,消息体中描述了媒体服 务器发送媒体流的IP、端口、媒体格式、SSRC值等内容,s字段为“Play”代表实时点播,m 字段 中媒体参数标识为“audio”表示请求语音媒体流。 n) 14:SIP服务器将消息13转发给语音流接收者。 o) 15:语音流接收者收到200OK 响应后,回复 ACK 消息,完成与SIP服务器的Invite会话建立 过程。 p) 16:SIP服务器将消息15转发给媒体服务器,完成与媒体服务器的Invite会话建立过程。 q) 17:SIP服务器向语音流接收者发送 BYE消息,断开消息5、14、15建立的Invite会话。 r) 18:语音流接收者收到 BYE消息后回复200OK 响应,会话断开。 s) 19:SIP服务器向媒体服务器发送 BYE 消息,断开消息 12、13、16 建立的同媒体服务器的 Invite会话。
上面是28181协议里面规定的流程,直接照搬过来,不管怎么实现语音对讲也要根据流程走。
下面我把抓包详情粘贴下:
MESSAGE sip:34020000001370000001@192.168.1.81:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.93:5060;rport;branch=z9hG4bK-3d09000-1047e076-A8X5JYC1
From: <sip:64000000002000000001@192.168.1.93:5060>;tag=CN2Ei3Vu
To: <sip:34020000001370000001@192.168.1.81:5060>
Call-ID: 5c0d74ae-4352-df11-aa52-56a46c795625@192.168.1.93
CSeq: 55 MESSAGE
Contact: <sip:192.168.1.93:5060>
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
User-Agent: iVMS 1.0
Content-Length: 173<?xml version="1.0"?>
<Notify>
<CmdType>Broadcast</CmdType>
<SN>20</SN>
<SourceID>64000000001360000001</SourceID>
<TargetID>34020000001370000001</TargetID>
</Notify>
SIP/2.0 200 OK
To: <sip:34020000001370000001@192.168.1.81:5060>;tag=75600014_53173353_c376baa4-b5f9-4f2a-a739-653dc3299ae1
Via: SIP/2.0/UDP 192.168.1.93:5060;rport=5060;branch=z9hG4bK-3d09000-1047e076-A8X5JYC1;received=192.168.1.93
CSeq: 55 MESSAGE
Call-ID: 5c0d74ae-4352-df11-aa52-56a46c795625@192.168.1.93
From: <sip:64000000002000000001@192.168.1.93:5060>;tag=CN2Ei3Vu
Content-Length: 0MESSAGE sip:64000000002000000001@6400000000 SIP/2.0
Call-ID: 2cf6a25ea9b4f63ca255f60faefb584d@0.0.0.0
CSeq: 1 MESSAGE
From: <sip:34020000002000000001@3402000000>;tag=78679367_53173353_5e822bd3-744e-4d50-a7ae-3dcb31308ad5
To: <sip:64000000002000000001@6400000000>
Max-Forwards: 70
Content-Encoding: GB2312
Content-Type: Application/MANSCDP+xml
Route: <sip:64000000002000000001@192.168.1.93:5060;lr>
Via: SIP/2.0/UDP 192.168.1.81:5060;branch=z9hG4bK5e822bd3-744e-4d50-a7ae-3dcb31308ad5_53173353_28675579067886
Content-Length: 147<?xml version="1.0"?>
<Response>
<CmdType>Broadcast</CmdType>
<SN>20</SN>
<DeviceID>34020000001370000001</DeviceID>
<Result>OK</Result>
</Response>SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.81:5060;branch=z9hG4bK5e822bd3-744e-4d50-a7ae-3dcb31308ad5_53173353_28675579067886
From: <sip:34020000002000000001@3402000000>;tag=78679367_53173353_5e822bd3-744e-4d50-a7ae-3dcb31308ad5
To: <sip:64000000002000000001@6400000000>;tag=nVa5oJ2n
Call-ID: 2cf6a25ea9b4f63ca255f60faefb584d@0.0.0.0
CSeq: 1 MESSAGE
Contact: <sip:64000000002000000001@192.168.1.93:5060>
Content-Length: 0INVITE sip:64000000001360000001@6400000000 SIP/2.0
Call-ID: a0ce1d2417f6cb64571120b90c2243c1@0.0.0.0
CSeq: 1 INVITE
From: <sip:34020000002000000001@3402000000>;tag=84133916_53173353_4063c926-989f-4a9a-af9c-867f8219c6ab
To: <sip:64000000001360000001@6400000000>
Max-Forwards: 70
Contact: "34020000002000000001" <sip:192.168.1.81:5060>
Subject: 64000000001360000001:0-4-0,34020000002000000001:1
Content-Type: application/sdp
Route: <sip:64000000001360000001@192.168.1.93:5060;lr>
Via: SIP/2.0/UDP 192.168.1.81:5060;branch=z9hG4bK4063c926-989f-4a9a-af9c-867f8219c6ab_53173353_28675585450209
Content-Length: 171v=0
o=64010000002020000001 0 0 IN IP4 192.168.1.81
s=Play
c=IN IP4 192.168.1.81
t=0 0
m=audio 8000 RTP/AVP 96
a=recvonly
a=rtpmap:96 PS/90000
y=0100000001
f=v/a/1/8/1
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.1.81:5060;branch=z9hG4bK4063c926-989f-4a9a-af9c-867f8219c6ab_53173353_28675585450209
From: <sip:34020000002000000001@3402000000>;tag=84133916_53173353_4063c926-989f-4a9a-af9c-867f8219c6ab
To: <sip:64000000001360000001@6400000000>
Call-ID: a0ce1d2417f6cb64571120b90c2243c1@0.0.0.0
CSeq: 1 INVITE
Content-Length: 0SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.81:5060;branch=z9hG4bK4063c926-989f-4a9a-af9c-867f8219c6ab_53173353_28675585450209
Record-Route: <sip:64000000002000000001@192.168.1.93:5060;lr>
From: <sip:34020000002000000001@3402000000>;tag=84133916_53173353_4063c926-989f-4a9a-af9c-867f8219c6ab
To: <sip:64000000001360000001@6400000000>;tag=Wn1J54GK
Call-ID: a0ce1d2417f6cb64571120b90c2243c1@0.0.0.0
CSeq: 1 INVITE
Contact: <sip:64000000001360000001@192.168.1.93:5060>
Content-Type: application/sdp
Content-Length: 180v=0
o=64000000001360000001 0 0 IN IP4 192.168.1.93
s=Play
c=IN IP4 192.168.1.93
t=0 0
m=audio 20104 RTP/AVP 8
a=sendonly
a=rtpmap:8 PS/90000
y=0100000001
f=v/a/1/8/1
ACK sip:64000000001360000001@192.168.1.93:5060 SIP/2.0
Call-ID: a0ce1d2417f6cb64571120b90c2243c1@0.0.0.0
CSeq: 1 ACK
From: <sip:34020000002000000001@3402000000>;tag=84133916_53173353_4063c926-989f-4a9a-af9c-867f8219c6ab
To: <sip:64000000001360000001@6400000000>;tag=Wn1J54GK
Max-Forwards: 70
Route: <sip:64000000002000000001@192.168.1.93:5060;lr>
Via: SIP/2.0/UDP 192.168.1.81:5060;branch=z9hG4bK4063c926-989f-4a9a-af9c-867f8219c6ab_53173353_28675725931057
Content-Length: 0
公网摄像头语音对讲解决方案
鉴于在公网环境下GB28181通用版本的摄像头无法实现对讲广播、可以有以下集中方式解决:
1、摄像头厂家提供可以在公网环境下GB28181对讲的版本程序烧录
2、使用EHOME协议的摄像头
3、在摄像头所在的内网增加视频网关,由视频网关和公网国标平台实现对讲
LiveMedia介绍
LiveMedia视频中间件是为安防视频监控行业打造的一套基于H5技术开发的视频基础产品。平台可支持国内外不同品牌、不同协议、不同设备类型监控产品的统一接入管理,同时提供标准的H5播放接口供其他应用平台快速对接,让您快速拥有视频集成能力。不受开发环境、跨系统跨平台等条件影响,具有全兼容、全平台支持、H5免插件、低延时、安全等功能特点,为安防视频播放提供最稳定、可靠、便捷的解决方案.
LiveMedia视频中间件的核心功能:
- 提供用户管理及Web可视化页面管理;
- 提供设备状态管理,可实时查看设备是否掉线等信息;
- 实时流媒体处理,PS(TS)转ES;
- 实时快照、视频数据获取;
- 音频实时对讲、喊话;
- 设备状态监测;
- 云台控制;
- 录像检索、回放;
- 提供RTSP、RTMP、HTTP-FLV、HLS、WEBRTC等多种协议流输出;
- 对外提供服务器获取状态、信息,控制等HTTP API接口;
LiveMedia GB28181平台搭建
进入官网下载、一键部署、免费使用