文章目录
SIP之GB28181注册详解
本节引用“天好蓝”的博文《SIP之GB28181注册详解》,部分截图如下:
GB28181注册抓包
百度云盘: https://pan.baidu.com/s/1ALKBJ7xkPjdH8Ya3SqYlbA 提取码: 6qf1 ,内容截图
下面是上面抓包中的内容:
REGISTER sip:130909115229300920@10.64.49.44:7100 SIP/2.0
Via: SIP/2.0/UDP 10.64.49.218:7100;rport;branch=z9hG4bK4162288924
From: <sip:130909113319427420@10.64.49.218:7100>;tag=382068091
To: <sip:130909113319427420@10.64.49.218:7100>
Call-ID: 143225205
CSeq: 1 REGISTER
Contact: <sip:130909113319427420@10.64.49.218:7100>
Max-Forwards: 70
User-Agent: Hikvision
Expires: 7200
Content-Length: 0
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 10.64.49.218:7100;rport=7100;branch=z9hG4bK4162288924
From: <sip:130909113319427420@10.64.49.218:7100>;tag=382068091
To: <sip:130909113319427420@10.64.49.218:7100>;tag=916944766
Call-ID: 143225205
CSeq: 1 REGISTER
WWW-Authenticate: Digest realm="hik", nonce="a8afe6fcbee6331d89d3eb0d3d19ce39", opaque="a853e4f25298413f9bf3a9aa6767857d", algorithm=MD5
User-Agent: Hikvision
Expires: 7200
Content-Length: 0
REGISTER sip:130909115229300920@10.64.49.44:7100 SIP/2.0
Via: SIP/2.0/UDP 10.64.49.218:7100;rport;branch=z9hG4bK3997518011
From: <sip:130909113319427420@10.64.49.218:7100>;tag=382068091
To: <sip:130909113319427420@10.64.49.218:7100>
Call-ID: 143225205
CSeq: 2 REGISTER
Contact: <sip:130909113319427420@10.64.49.218:7100>
Authorization: Digest username="admin", realm="hik", nonce="a8afe6fcbee6331d89d3eb0d3d19ce39", uri="sip:130909115229300920@10.64.49.44:7100", response="907ddb1bcc25174d7de4a96c947fb066", algorithm=MD5, opaque="a853e4f25298413f9bf3a9aa6767857d"
Max-Forwards: 70
User-Agent: Hikvision
Expires: 7200
Content-Length: 0
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.64.49.218:7100;rport=7100;branch=z9hG4bK3997518011
From: <sip:130909113319427420@10.64.49.218:7100>;tag=382068091
To: <sip:130909113319427420@10.64.49.218:7100>;tag=705514612
Call-ID: 143225205
CSeq: 2 REGISTER
Contact: <sip:130909113319427420@10.64.49.218:7100>
User-Agent: Hikvision
Date: 2013-09-10T16:01:51
Content-Length: 0
会发现,From和To怎么一样的呢?与常规的理解不一样,详见下面。
SIP协议PPT
百度文库《4-SIP协议原理》,部分截图,如下:
SIP注册
CSDN博文《SIP注册信令消息示范及解释》,部分截图如下:
SIP注册代码示例
“一步一光年”的博文《sip注册流程》,部分截图如下:
SIP协议
SIP协议简介
SIP(SessionInitiationProtocol,会话发起协议)是由IETF提出的IP电话信令协议.它的主要目的是为了解决IP网中的信令控制,以及同软交换的通信,从而构成下一代的增值业务平台,对电信、银行、金融等行业提供更好的增值业务。SIP协议是一种基于文本的类似于HTTP的协议,报文结构与HTTP也一样,即包括请求行,头域字段,body。报文结构如下:
start-line
message-header
CRLF
[ message-body ]
首行(start-line)
分请求行和状态行。
请求行: 由请求类型
、请求目的地址
和协议版本号
构成。请求类型有:INVITE,ACK,OPTIONS,BYE,CANCEL和REGISTER。
状态行: 是被叫方向主叫方返回的状态信息,如1xx,2xx,3xx,4xx,5xx,6xx。
请求类型:
- INVITE:用于发起呼叫请求。INVITE消息包括消息头和数据区两部分。INVITE 消息头包含主、被呼叫的地址,呼叫主题和呼叫优先级等信息。数据区则是关于会话媒体的信息,可由会话描述协议SDP 来实现。
- BYE:当一个用户决定中止会话时,可以使用BYE 来结束会话。
- OPTIONS:用于询问被叫端的能力信息,但OPTIONS 本身并不能发起呼叫。
- ACK: 对已收到的消息进行确认应答。
- REGISTER:用于用户向SIP服务器传送位置信息或地址信息。
- CANCEL:取消当前的请求,但它并不能中止已经建立的连接。
状态类型:
- 1xx:临时消息:表示表示请求消息已经收到,后面将继续处理该请求。
- 2xx:成功消息:表示请求已经被成功的理解、接受或执行。
- 3xx:重定向消息:表示为了完成请求还需采取更进一步的动作。
- 4xx:客户机错误:表示该请求含有语法错误或在这个服务器上不能被满足。
- 5xx:服务器错误:表示该服务器不能处理一个明显有效的请求。
- 6xx:全局性故障:表示该请求在任何服务器上都不能被实现。
消息头(message-header)
常见消息头:
- TO: 格式:
TO: 显示名<接收者URI>;tag=n
,显示名和tag可选。接收者URI是SIP网络种唯一标识接收终端的标识符。例:TO: Name<SIP:caller@WORK.COM>;TAG=11111
或TO: sip:caller@work.com
- FROM: 给出标识会话发起者的URI。比如:
FROM: sip:caller@work.com;tag=hyh8
,tag是必需的。 - CALL-ID: 用于全局唯一标识正在建立的会话的标识符。 随机数加UAC标识信息。
- CSeq: 用于标识同一会话中不同事务的序号,通常由一个用作序号的整型数和消息类型组成。整个会话操作过程由不同的事务组成,每一事务所涉及的消息的CSeq序号必须相同。
- Via: 为响应消息提供传输路径,当请求消息经过每一跳节点时,每一跳节点都把自身的IP地址信息放入顶层Via中。响应消息则沿着请求消息记录下的传输路径反向传输,首先移走指明自身IP地址信息的顶层消息头
注:以上内容参考:https://cloud.tencent.com/developer/article/1183318
GB28181资料
对接视频(PJSIP)示例
博客园,王纲的《GB28181对接视频流》,部分截图如下:
下面介绍下各配置项基本意义:
-
本地端口:默认为5060,SIP服务发送命令给摄像机时需要知道摄像机GB28181端口号。
-
SIP服务器ID:说简单就是服务器的标识,只不过这个标识有一定的要求,具体请参见《GBT 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求.pdf》,文档百度云盘链接: https://pan.baidu.com/s/1y-ppGH-F9OokjqUcdnLjzg 提取码: mir6
-
SIP服务域:实际就是SIP服务器ID前10位。
-
SIP服务器地址:SIP服务所在机器的IP地址(如果存在多网卡建议将不用的网卡禁用掉)。
-
SIP服务器端口:SIP服务Port,其他SIP服务发送命令到此端口与之通信。
eXosip使用示例
博文《视频监控安防平台-GB28181_2016版-注册、心跳、注销》,部分截图,如下:
博文《基于eXosip的SIP客户端》,部分截图如下:
报警事件通知和分发
文档《GBT 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求(扫描带目录版).pdf》, 提取码: k5ma,相关部分的截图如下:
CSDN博文【GBT28181开发:SIP协议实践】之设备目录查询,部分截图如下:
GB28181检测
检测工具及模拟设备
GB28181-2016 IPC模拟设备 + 自动化测试工具 ,提取码: 3d3v ,截图
检测工具,运行的界面,如下:
模拟被测设备的程序,如果不想改配置件里的IP,将电脑IP改来和配置文件的一样, 如下:
测试时,wireshark抓包,界面如下:
直接在检测工具上,也能看到报文内容,如图:
百度文库,SIP资料,截图如下:
CSDN博文,截图,如下:
基于eXosip的Demo源码
GBT28181网络摄像机模拟器源码.zip 提取码: mehg ,截图如下:
osip及eXosip官网文档
http://www.gnu.org/software/osip/
http://savannah.nongnu.org/projects/exosip/
eXosip2的使用文档,下图红框处:
GB28181的rport机制
https://www.cnblogs.com/xiaOt119/archive/2012/06/11/2545136.html ,截图如下:
PJSIP库
PJSIP是一个开放源代码的SIP协议栈。它支持多种SIP的扩展功能,目前可说算是最流行的sip协议栈之一了。
下面列出其重要的几种优点:
- 代码层次非常清晰,从低级到高级都提供了很方便的接口供开发;
- 提供相当多的测试用例和一个基于pjsip开发的命令行UA程序供开发人员参考;
- 高度的可移殖性,只需简单的编译一次,它能够在多种平台上运行(所有Windows 系统列, Windows Mobile, Linux, 所有Unix 系列, MacOS X, RTEMS, Symbian OS, 等等)。
- 极小的内存需求,官方宣称编译后的库,完全实现SIP的功能只需要150K的内存空间,这使得PJISPi不仅仅是嵌入开发的理想平台,并且实用于那些内存运行于极小内存平台的应用,这也意味着极小的用户下载时间。
- 高效的性能,这意味着极小的CPU运算需求下能同时实现更多的通话。
- 支持多种SIP功能及扩展功能,多种SIP功能和扩展功能,例如多人会话,事件驱动框架,会话控制(presence),即时信息,电话传输,等等在库文件里得以实现。
- 丰富的文档资料,对于软件开发人员来说,文档资料从来都是多多益善,因此我们要求PJSIP开发人员提供了大量的极有价值的文档资料供大家使用。
今天的文章gb28181 pdf_GB18361标准规范分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/79205.html