GB28181对接中遇到的问题总结

Catalog的回复:

对于信令中Catalog的讲解:(对方回复的信令解析)
DeviceStatus
3
34020000001320000001 ----------------------->这个的下级的设备ID
OK
ONLINE
OK
2017-07-07T17:44:02
------------------------------------------------> Item之间包裹的是真实的ChannelID
34020000001340000010 |
OFFDUTY |
--------------------------------------------------------------------------------------------->

关于SubjectID:

strSubject.Format("%s:%s,%s:%d", ua->m_strID,strSenderSN,m_OSIPEx[index].m_ServerInfo.m_strID, session->m_Params.m_iSSRC);
改成: 第一个ID为ChannelID而不能填写 DeviceID
strSubject.Format("%s:%s,%s:%d", strID,strSenderSN,m_OSIPEx[index].m_ServerInfo.m_strID, session->m_Params.m_iSSRC);
协议上面描述:

命令流程描述如下:

1:媒体流接收者向SIP服务器发送Invite消息,消息头域中携带Subject字段,表明点播的视频源ID发送方媒体流序列号、媒体流接收者ID、接收端媒体流序列号等参数,SDP消息体中s字段为“Play”代表实时点播

需要按照协议中要求的顺序去分别填写: 1、表明点播的视频源ID 2发送方媒体流序列号 3、媒体流接收者ID 4、接收端媒体流序列号

DeviceStatus
3
34020000001320000001
很多厂商你这个地方需要回复的DeviceID需要是8位的域,而不是真实的设备ID,对于协议中的描述我摘抄了一段:

a) 设备目录信息查询请求

所以在这一个地方 ........可以填写 为:1目标设备/ 2区域/ 3联网系统编码
根据不同情况,需要做多种处理方式。

关于注册的小问题:

2016标准中的协议贴出来先:

J.1.3 REGISTER sip: SIP服务器编码@目的域名或IP地址端口 SIP/2.0

Via: SIP/2.0/UDP 源域名或IP地址端口

From: 设备编码@域名>;tag=185326220

To: 设备编码@域名>

Call-ID: [email protected]

CSeq: 2 REGISTER

Contact: 设备编码@IP地址端口>

Authorization: Digest username="64010000002020000001", realm="64010000", nonce="6fe9ba44a76be22a", uri="sip:[email protected]:5060", response="9625d92d1bddea7a911926e0db054968", algorithm=MD5

Max-Forwards: 70

Expires: 3600

Content-Length: 0

注意这个地方的单词: Authorization 其中A是大写的,在对接中很多不同品牌的平台和设备实现中出现过不规范的小写a

在这个地方给大家提醒一下,注意这个细节,不然调试半天注册不上,原因很有可能就是这么一个小坑;

strncasecmp 这个函数, 比较就是对大小写不敏感,所以在这个地方推荐使用。避免你的平台和别人平台对接不上。

最后:

如果大家希望关于平台对接,或者其他工程需要,可以下载demo进行测试:

http://download.csdn.net/download/qq_24798461/9820447

如果大家有对接方面的问题欢迎咨询我的Chat快问:






你可能感兴趣的:(C++,C,GB28181)