中国电信网络视频监控技术规范V2.0互联互通补充规范V2.01
一、 补充要求
1. 总体协议要求
(1) 按RFC3261定义的消息格式执行;
(2) 对中国电信全球眼需要的功能参考SIP的构架和信令交互实现的机制进行消息规范;
(3) 采用SIP的结构描述方式,头信息完全采用SIP协议头结构,消息体采用XML结构化方法。便于后期向SIP体系平滑过渡。
(4) 平台设备的ID的流水码>0。
2. SIP消息头域
SIP是基于请求/响应的事务处理模型,使用消息方式完成用户的定位,会话的建立和管理。SIP消息分为两类:SIP请求和SIP响应。SIP消息的基本格式为:
generic-message = start-line
*message-header
CRLF
[ message-body ]
start-line = Request-Line / Status-Line
一般的SIP消息由开始行、消息头、消息体组成。SIP请求和SIP响应在开始行内容不同。整个SIP消息的大小不超过40KBytes。
SIP请求的开始行为:
Request-Line = Method SP Request-URI SP SIP-Version CRLF
SIP响应的开始行为:
Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF
头信息的具体描述:
请求头:
INFO sip:xxx
Content-Type: application/global_eye_v10+xml
Content-Length: xxx
To: xxx
From: xxx
CSeq: xxx INFO
Call-ID: xxx
Max-Forwards: xxx
Via: xxx
Contact: xxx
[CrLF]
回应头:
200 OK sip:xxx
Content-Type: application/global_eye_v10+xml
Content-Length: xxx
To: xxx
From: xxx
CSeq: xxx INFO
Call-ID: xxx
Max-Forwards: xxx
Via: xxx
Contact: xxx
[CrLF]
例子:
从192.168.15.115的CMS平台向192.168.15.100的CMS平台发出请求,然后192.168.15.100的CMS平台向192.168.15.115的CMS平台给出回应。
每个平台针对SIP的用户取为CMS,身份标示采用“用户@用户源IP”
请求头:
INFO sip: CMS@192.168.15.115 SIP/2.0
Via: SIP/2.0/UDP 192.168.15.100:0; branch=z9hG4bk241576964
Max-Forards: 70
From: <sip: CMS@192.168.15.115>; tag=1841049113
To: <sip: CMS@192.168.15.100>
Call-ID: 841511652-1539196432-1739981531
CSeq: 3 INFO
Contact: <sip: CMS@192.168.15.100:0>
Content-Type: application/global_eye_v10+xml
Content-Length: 302
User-Agent: SIP .NET 1.0 evalution version
回应头:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.15.100:0;branch=z9hG4bk241576964
Max-Forards: 70
From: <sip: CMS@192.168.15.100>
To: <sip: CMS@192.168.15.115>; tag=1841049113
Call-ID: 841511652-1539196432-1739981531
CSeq: 3 INFO
Content-Type: application/global_eye_v10+xml
Content-Length: 302
User-Agent: SIP .NET 1.0 evalution version
说明:
(1)
INFO域使用“CMS@源地址 SIP/2.0” 的方式说明
Via域使用 “SIP/2.0/传输方式 目的地址:0; branch=...”的方式说明
传输方式恒定为UDP
branch必须以z9hG4bK为前缀,后续是一个随机字符串,长度限制在10个以内。
Max-Forards域恒定义为70
From域使用“<sip:CMS@源地址>; tag=...”说明,tag是一个长度不大于10的随机字符串
To域使用“<sip:CMS@目的地址>”说明
Call-ID域使用3个长度不大于10的随机字符串连接表示
CSeq域使用序列号和消息类型表示
Contact域使用“<sip:邮件地址:0>”表示
Content-Type域恒定为 application/global_eye_v10+xml
Content-Length域表示sip消息体的长度,不包括sip消息的头部
User-Agent域恒定义为SIP .NET 1.0 evaluation version
(2)
Status Line域恒定义为“SIP/2.0 200 OK”
Via域与对应的SIP请求消息头的Via域保持完全一致
Max-Forards域恒定义为70
From域与对应的SIP请求消息头的To域保持完全一致
To域与对应的SIP请求消息头的From域保持完全一致
Call-ID域与对应的SIP请求消息头的Call-ID域保持完全一致
CSeq域与对应的SIP请求消息头的CSeq域保持完全一致
Content-Type域恒定为 application/global_eye_v10+xml
Content-Length域表示sip消息体的长度,不包括sip消息的头部
User-Agent域恒定义为SIP .NET 1.0 evaluation version
(3)
SIP头回车符定义:采用统一采用\\r\\n
SIP头空格定义:冒号(:)和分号(;)后统一加上一个空格
SIP消息接收端口:消息监听端口采用5060,发送源端口不做要求。
3. XML消息定义
<?xml version="1.0" encoding="UTF-8" ?>
<Message Version="1.0">
<IE_HEADER MessageType = “MSG_XXXXX”
SequenceNumber = "包序号"
SessionID = "会话ID"
SourceID = "通讯源ID"
DestinationID = "通讯目的ID"
/>
<IE_XXXXX Param1=“value1”
Param2=“value2”
/>
</Message>
说明:
xml version恒定义为1.0,encoding恒定义为 UTF-8
Message Version恒定义为1.0
MessageType 是消息类型
SequenceNumber 是消息的包序号,用于平台内部的消息标示,目的平台的反馈消息需要使用相同的值原样返回
SessionID是会话的ID,用于平台内部的会话标示,目的平台的反馈消息需要需要使用相同的值原样返回
SourceID是源设备或用户的编码ID,采用CMS平台和内部设备的编码规则,可以是平台ID/CU ID/PU ID/服务器ID
DestinationID是目的设备或用户的编码ID,采用CMS平台和内部设备的编码规则,可以是平台ID/CU ID/PU ID/服务器ID
IE_XXXX是参数块的类型标示,采用“IE_”的前缀表示
(暂时按照原来的定义:Param1和Param2是参数块中参数的名字定义,采用首字母大写的连接字符串,单词缩写可以采用全部大写方式,单词前缀采用首字母大写的方式。)
value1和value2是参数块中参数的值定义,参数是一个有效字符串,不包含’\\0’和英文双引号。(元素结构描述方法句法是否完全采用XML句法结构)
(XML句法结构中约定,实体值(Entityvalue)必须受下列规则约束:
字符串可以包含在单引号(')或双引号(")内。
字符串中不能包含用来包围字符串的引号字符。
字符串中不能包含(&)字符,除了用来作字符引号或实体参照的起始。同样地,字符串中也不能包含百分比字符(%)。)
消息中头部和内容对大小写敏感。
(XML句法结构中约定,字母的大小写在卷标的所有文字中都是不同的,包括实体名称。)
引号内的空格认为是有效内容