根据gbt28181协议,注册到SPVMN平台的方法

2023-11-11 12:48

本文主要是介绍根据gbt28181协议,注册到SPVMN平台的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

说明:SPVMN平台IP为192.168.8.180,设备IP为192.168.8.184


一、向平台注册的交互协议

1、客户机向SPVMN平台注册协议

REGISTER sip:34020000002000000001@3402000000 SIP/2.0
Via: SIP/2.0/UDP 192.168.8.184:5060;rport;branch=z9hG4bK1839159132
From: <sip:34020000001320000001@3402000000>;tag=1168363890
To: <sip:34020000001320000001@3402000000>
Call-ID: 434018964
CSeq: 1 REGISTER
Contact: <sip:34020000001320000001@192.168.8.184:5060>
Max-Forwards: 70
User-Agent: IP Camera
Expires: 3600
Content-Length: 0

2、平台回复包

SIP/2.0 401 Unauthorized
CSeq: 1 REGISTER
Call-ID: 434018964
From: <sip:34020000001320000001@3402000000>;tag=1168363890
To: <sip:34020000001320000001@3402000000>;tag=90691234_53173353_a67d0e0e-e55c-4ac7-9d5a-f78e149aaf81
Via: SIP/2.0/UDP 192.168.8.184:5060;rport=5060;branch=z9hG4bK1839159132;received=192.168.8.184
WWW-Authenticate: Digest realm="3402000000",nonce="b1f444e6805f2768"
Content-Length: 0

3、验证注册

REGISTER sip:34020000002000000001@3402000000 SIP/2.0
Via: SIP/2.0/UDP 192.168.8.184:5060;rport;branch=z9hG4bK119722870
From: <sip:34020000001320000001@3402000000>;tag=1168363890
To: <sip:34020000001320000001@3402000000>
Call-ID: 434018964
CSeq: 2 REGISTER
Contact: <sip:34020000001320000001@192.168.8.184:5060>
Authorization: Digest username="34020000001320000001", realm="3402000000", nonce="b1f444e6805f2768", uri="sip:34020000002000000001@3402000000", response="97cae60143bf336443d0bc5e669571a9", algorithm=MD5
Max-Forwards: 70
User-Agent: IP Camera
Expires: 3600
Content-Length: 0

4、平台回复

SIP/2.0 200 OK
CSeq: 2 REGISTER
Call-ID: 434018964
From: <sip:34020000001320000001@3402000000>;tag=1168363890
To: <sip:34020000001320000001@3402000000>;tag=02949493_53173353_db24af08-e421-4de3-85e7-b3f3f5284b02
Via: SIP/2.0/UDP 192.168.8.184:5060;rport=5060;branch=z9hG4bK119722870;received=192.168.8.184
Contact: <sip:34020000001320000001@192.168.8.184:5060>
Expires: 3600
Date: 2015-11-05T10:55:56.012
Content-Length: 0

5、客户端向平台的消息请求包

MESSAGE sip:34020000002000000001@3402000000 SIP/2.0
Via: SIP/2.0/UDP 192.168.8.184:5060;rport;branch=z9hG4bK10460200
From: <sip:34020000001320000001@3402000000>;tag=1056449357
To: <sip:34020000002000000001@3402000000>
Call-ID: 897764098
CSeq: 20 MESSAGE
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
User-Agent: IP Camera
Content-Length:   162<?xml version="1.0" encoding="UTF-8"?>
<Notify>
<CmdType>Keepalive</CmdType>
<SN>105</SN>
<DeviceID>34020000001320000001</DeviceID>
<Status>OK</Status>
</Notify>

6、平台回复

D?IWEge<@SSIP/2.0 200 OK
CSeq: 20 MESSAGE
Call-ID: 897764098
From: <sip:34020000001320000001@3402000000>;tag=1056449357
To: <sip:34020000002000000001@3402000000>;tag=32617088_53173353_9281af7a-b890-44e0-8033-2f61d4af7c64
Via: SIP/2.0/UDP 192.168.8.184:5060;rport=5060;branch=z9hG4bK10460200;received=192.168.8.184
Content-Length: 0

到此,注册成功。


二、视频播放协议

2.1 平台向设备请求数据

INVITE sip:34020000001320000001@3402000000 SIP/2.0
Call-ID: 8da28ff25846846583477063d4008180@0.0.0.0
CSeq: 1 INVITE
From: <sip:34020000002000000001@3402000000>;tag=41363971_53173353_e9868597-2a56-4171-911d-d527eb58c307
To: <sip:34020000001320000001@3402000000>
Max-Forwards: 70
Contact: "34020000002000000001" <sip:<span style="font-family: Arial, Helvetica, sans-serif;">192.168.8.180</span><span style="font-family: Arial, Helvetica, sans-serif;">:5060></span>
Content-Type: application/sdp
Route: <sip:34020000001320000001@192.168.8.184:5060;lr>
Via: SIP/2.0/UDP 192.168.8.180:5060;branch=z9hG4bKe9868597-2a56-4171-911d-d527eb58c307_53173353_50921343723068
Content-Length: 225v=0
o=34020000002020000001 0 0 IN IP4 192.168.8.180
s=Play
c=IN IP4 192.168.8.180
t=0 0
m=video 6000 RTP/AVP 96 98 97
a=recvonly
a=rtpmap:96 PS/90000
a=rtpmap:98 H264/90000
a=rtpmap:97 MPEG4/90000
y=0100000001
f=

2.2 设备回复平台的包

SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.8.180:5060;branch=z9hG4bKe9868597-2a56-4171-911d-d527eb58c307_53173353_50921343723068;received=192.168.8.180
From: <sip:34020000002000000001@3402000000>;tag=41363971_53173353_e9868597-2a56-4171-911d-d527eb58c307
To: <sip:34020000001320000001@3402000000>
Call-ID: 8da28ff25846846583477063d4008180@0.0.0.0
CSeq: 1 INVITE
User-Agent: IP Camera
Content-Length: 0

SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.8.180:5060;branch=z9hG4bKe9868597-2a56-4171-911d-d527eb58c307_53173353_50921343723068;received=192.168.8.180
From: <sip:34020000002000000001@3402000000>;tag=41363971_53173353_e9868597-2a56-4171-911d-d527eb58c307
To: <sip:34020000001320000001@3402000000>;tag=833711816
Call-ID: 8da28ff25846846583477063d4008180@0.0.0.0
CSeq: 1 INVITE
Contact: <sip:34020000001320000001@192.168.8.184:5060>
Content-Type: application/sdp
User-Agent: IP Camera
Content-Length:   227v=0
o=34020000001320000001 3238 3238 IN IP4 192.168.8.184
s=play
c=IN IP4 192.168.8.184
t=0 0
m=video 15060 RTP/AVP 96
a=sendonly
a=rtpmap:96 PS/90000
a=username:34020000001320000001
a=password:12345678
y=0100000001

2.3 平台发给设备的ACK,设备收到这个包后,就可以向平台发送RTP数据了

ACK sip:34020000001320000001@192.168.8.184:5060 SIP/2.0
Call-ID: 8da28ff25846846583477063d4008180@0.0.0.0
CSeq: 1 ACK
From: <sip:34020000002000000001@3402000000>;tag=41363971_53173353_e9868597-2a56-4171-911d-d527eb58c307
To: <sip:34020000001320000001@3402000000>;tag=833711816
Max-Forwards: 70
Via: SIP/2.0/UDP 192.168.8.180:5060;branch=z9hG4bKe9868597-2a56-4171-911d-d527eb58c307_53173353_50921370541873
Content-Length: 0




这篇关于根据gbt28181协议,注册到SPVMN平台的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/390157

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定