文章目录
SIP之GB28181注册详解
本节引用“天好蓝”的博文《SIP之GB28181注册详解》,部分截图如下:
GB28181注册抓包
百度云盘: https://pan.baidu.com/s/1ALKBJ7xkPjdH8Ya3SqYlbA 提取码: 6qf1 ,内容截图
下面是上面抓包中的内容:
会发现,From和To怎么一样的呢?与常规的理解不一样,详见下面。
SIP协议PPT
百度文库《4-SIP协议原理》,部分截图,如下:
SIP注册
CSDN博文《SIP注册信令消息示范及解释》,部分截图如下:
SIP注册代码示例
“一步一光年”的博文《sip注册流程》,部分截图如下:
SIP协议
SIP协议简介
SIP(SessionInitiationProtocol,会话发起协议)是由IETF提出的IP电话信令协议.它的主要目的是为了解决IP网中的信令控制,以及同软交换的通信,从而构成下一代的增值业务平台,对电信、银行、金融等行业提供更好的增值业务。SIP协议是一种基于文本的类似于HTTP的协议,报文结构与HTTP也一样,即包括请求行,头域字段,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对接视频流》,部分截图如下:
https://pan.baidu.com/s/1y-ppGH-F9OokjqUcdnLjzg 提取码: mir6
SIP服务域:实际就是SIP服务器ID前10位。
SIP服务器地址:SIP服务所在机器的IP地址(如果存在多网卡建议将不用的网卡禁用掉)。
SIP服务器端口:SIP服务Port,其他SIP服务发送命令到此端口与之通信。
GBT 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求(扫描带目录版).pdf》, 提取码: k5ma,相关部分的截图如下:
检测工具,运行的界面,如下:
模拟被测设备的程序,如果不想改配置件里的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开发人员提供了大量的极有价值的文档资料供大家使用。
本文链接:https://www.kinber.cn/post/1504.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: