22
2020
10

GB28181入门笔记

HQY


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: 01234567891011121314151617181920212223242526272829303132333435363738394041424344454647

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

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 ]1234

首行(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协议栈之一了。

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

    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开发人员提供了大量的极有价值的文档资料供大家使用。


    HQY
  • « 上一篇 下一篇 »

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。