博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GB28181入门笔记
阅读量:4027 次
发布时间:2019-05-24

本文共 4145 字,大约阅读时间需要 13 分钟。

文章目录

SIP之GB28181注册详解

本节引用“天好蓝”的博文《》,部分截图如下:

链
在这里插入图片描述

GB28181注册抓包

百度云盘: 提取码: 6qf1 ,内容截图

在这里插入图片描述
下面是上面抓包中的内容:

REGISTER sip:130909115229300920@10.64.49.44:7100 SIP/2.0Via: SIP/2.0/UDP 10.64.49.218:7100;rport;branch=z9hG4bK4162288924From: 
;tag=382068091To:
Call-ID: 143225205CSeq: 1 REGISTERContact:
Max-Forwards: 70User-Agent: HikvisionExpires: 7200Content-Length: 0SIP/2.0 401 UnauthorizedVia: SIP/2.0/UDP 10.64.49.218:7100;rport=7100;branch=z9hG4bK4162288924From:
;tag=382068091To:
;tag=916944766Call-ID: 143225205CSeq: 1 REGISTERWWW-Authenticate: Digest realm="hik", nonce="a8afe6fcbee6331d89d3eb0d3d19ce39", opaque="a853e4f25298413f9bf3a9aa6767857d", algorithm=MD5User-Agent: HikvisionExpires: 7200Content-Length: 0REGISTER sip:130909115229300920@10.64.49.44:7100 SIP/2.0Via: SIP/2.0/UDP 10.64.49.218:7100;rport;branch=z9hG4bK3997518011From:
;tag=382068091To:
Call-ID: 143225205CSeq: 2 REGISTERContact:
Authorization: Digest username="admin", realm="hik", nonce="a8afe6fcbee6331d89d3eb0d3d19ce39", uri="sip:130909115229300920@10.64.49.44:7100", response="907ddb1bcc25174d7de4a96c947fb066", algorithm=MD5, opaque="a853e4f25298413f9bf3a9aa6767857d"Max-Forwards: 70User-Agent: HikvisionExpires: 7200Content-Length: 0SIP/2.0 200 OKVia: SIP/2.0/UDP 10.64.49.218:7100;rport=7100;branch=z9hG4bK3997518011From:
;tag=382068091To:
;tag=705514612Call-ID: 143225205CSeq: 2 REGISTERContact:
User-Agent: HikvisionDate: 2013-09-10T16:01:51Content-Length: 0

会发现,FromTo怎么一样的呢?与常规的理解不一样,详见下面。

SIP协议PPT

百度文库《》,部分截图,如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SIP注册

CSDN博文《》,部分截图如下:

在这里插入图片描述

在这里插入图片描述

SIP注册代码示例

“一步一光年”的博文《》,部分截图如下:

在这里插入图片描述

SIP协议

SIP协议简介

SIP(SessionInitiationProtocol,会话发起协议)是由IETF提出的IP电话信令协议.它的主要目的是为了解决IP网中的信令控制,以及同软交换的通信,从而构成下一代的增值业务平台,对电信、银行、金融等行业提供更好的增值业务。SIP协议是一种基于文本的类似于HTTP的协议,报文结构与HTTP也一样,即包括请求行,头域字段,body。报文结构如下:

start-linemessage-headerCRLF[ 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=11111TO: sip:caller@work.com
  • FROM: 给出标识会话发起者的URI。比如:FROM: sip:caller@work.com;tag=hyh8,tag是必需的。
  • CALL-ID: 用于全局唯一标识正在建立的会话的标识符。 随机数加UAC标识信息。
  • CSeq: 用于标识同一会话中不同事务的序号,通常由一个用作序号的整型数和消息类型组成。整个会话操作过程由不同的事务组成,每一事务所涉及的消息的CSeq序号必须相同。
  • Via: 为响应消息提供传输路径,当请求消息经过每一跳节点时,每一跳节点都把自身的IP地址信息放入顶层Via中。响应消息则沿着请求消息记录下的传输路径反向传输,首先移走指明自身IP地址信息的顶层消息头

注:以上内容参考:

GB28181资料

对接视频(PJSIP)示例

博客园,王纲的《》,部分截图如下:

在这里插入图片描述
下面介绍下各配置项基本意义:

  • 本地端口:默认为5060,SIP服务发送命令给摄像机时需要知道摄像机GB28181端口号。

  • SIP服务器ID:说简单就是服务器的标识,只不过这个标识有一定的要求,具体请参见《GBT 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求.pdf》,文档百度云盘链接: 提取码: mir6

  • SIP服务域:实际就是SIP服务器ID前10位。

  • SIP服务器地址:SIP服务所在机器的IP地址(如果存在多网卡建议将不用的网卡禁用掉)。

  • SIP服务器端口:SIP服务Port,其他SIP服务发送命令到此端口与之通信。

    在这里插入图片描述

eXosip使用示例

博文《》,部分截图,如下:

在这里插入图片描述

博文《》,部分截图如下:

在这里插入图片描述
在这里插入图片描述

报警事件通知和分发

文档《》, 提取码: k5ma,相关部分的截图如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CSDN博文,部分截图如下:

在这里插入图片描述

GB28181检测

检测工具及模拟设备

,提取码: 3d3v ,截图

在这里插入图片描述
检测工具,运行的界面,如下:
在这里插入图片描述
模拟被测设备的程序,如果不想改配置件里的IP,将电脑IP改来和配置文件的一样, 如下:
在这里插入图片描述
测试时,wireshark抓包,界面如下:
在这里插入图片描述
直接在检测工具上,也能看到报文内容,如图:
在这里插入图片描述
百度文库,,截图如下:
在这里插入图片描述

,截图,如下:

在这里插入图片描述

基于eXosip的Demo源码

提取码: mehg ,截图如下:

在这里插入图片描述
在这里插入图片描述

osip及eXosip官网文档

在这里插入图片描述
在这里插入图片描述
eXosip2的使用文档,下图红框处:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

GB28181的rport机制

,截图如下:

在这里插入图片描述
在这里插入图片描述

PJSIP库

PJSIP是一个开放源代码的SIP协议栈。它支持多种SIP的扩展功能,目前可说算是最流行的sip协议栈之一了。

下面列出其重要的几种优点:

  1. 代码层次非常清晰,从低级到高级都提供了很方便的接口供开发;
  2. 提供相当多的测试用例和一个基于pjsip开发的命令行UA程序供开发人员参考;
  3. 高度的可移殖性,只需简单的编译一次,它能够在多种平台上运行(所有Windows 系统列, Windows Mobile, Linux, 所有Unix 系列, MacOS X, RTEMS, Symbian OS, 等等)。
  4. 极小的内存需求,官方宣称编译后的库,完全实现SIP的功能只需要150K的内存空间,这使得PJISPi不仅仅是嵌入开发的理想平台,并且实用于那些内存运行于极小内存平台的应用,这也意味着极小的用户下载时间。
  5. 高效的性能,这意味着极小的CPU运算需求下能同时实现更多的通话。
  6. 支持多种SIP功能及扩展功能,多种SIP功能和扩展功能,例如多人会话,事件驱动框架,会话控制(presence),即时信息,电话传输,等等在库文件里得以实现。
  7. 丰富的文档资料,对于软件开发人员来说,文档资料从来都是多多益善,因此我们要求PJSIP开发人员提供了大量的极有价值的文档资料供大家使用。

转载地址:http://twxbi.baihongyu.com/

你可能感兴趣的文章
Java中数字转大写货币(支持到千亿)
查看>>
Java.nio
查看>>
函数模版类模版和偏特化泛化的总结
查看>>
VMware Workstation Pro虚拟机不可用解决方法
查看>>
最简单的使用redis自带程序实现c程序远程访问redis服务
查看>>
redis学习总结-- 内部数据 字符串 链表 字典 跳跃表
查看>>
iOS 对象序列化与反序列化
查看>>
iOS 序列化与反序列化(runtime) 01
查看>>
iOS AFN 3.0版本前后区别 01
查看>>
iOS ASI和AFN有什么区别
查看>>
iOS QQ侧滑菜单(高仿)
查看>>
iOS 扫一扫功能开发
查看>>
iOS app之间的跳转以及传参数
查看>>
iOS __block和__weak的区别
查看>>
Android(三)数据存储之XML解析技术
查看>>
Spring JTA应用之JOTM配置
查看>>
spring JdbcTemplate 的若干问题
查看>>
Servlet和JSP的线程安全问题
查看>>
GBK编码下jQuery Ajax中文乱码终极暴力解决方案
查看>>
jQuery性能优化指南
查看>>