关于CWMP基础(二)----TR069通信流程

1.通信流程图

在这里插入图片描述

  1. 建立TCP连接
  2. SSL初始化,进行加密建立安全机制
  3. 由CPE端发起HTTP请求,发送Inform报文,开始建立CWMP连接。Inform中使用Eventcode字段描述发送Inform请求的原因 如 6 CONNECTION REQUEST ,表示ACS要求建立连接。
  4. 如果ACS通过CPE的请求,则连接建立。
  5. 如果CPE无别的请求则发送一个空报文。满足HTTP报文请求/响应报文交互规则。
  6. ACS查询CPE上设置的ACS URL的值
  7. CPE将所需要获取的值返回给ACS。
  8. ACS发现CPE的ACS URL是本机URL的值,于是发起Set请求,要求将CPE的ACS URL设置为备用ACS的URL的值。
  9. 设置成功,CPE发送响应报文。
  10. ACS无别的请求发送空报文。
  11. CPE发送关闭连接

2.简单的报文实例

POST /acs/grandstream HTTP/1.1
Host: acs.avsystem.com:10301
User-Agent: GRANDSTREAM CPE-0.21.3.31 (3.6.13)
Authorization: Digest username="", realm="ACSRealm", algorithm=MD5, nonce="JVwsZqxc3qEyTday/kL6C0H+BhQLbZCu", uri="/acs/grandstream", qop=auth, nc=0000000a, cnonce="65da02d074fa0db3", response="a4dfe2ee1670802d4f1e12f330724fc7"
Content-Type: text/xml; charset=utf-8
SOAPAction: cwmp:Inform
Content-Length: 2970

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cwmp="urn:dslforum-org:cwmp-1-0">
<soap:Header>
  <cwmp:ID soap:mustUnderstand="1">haU761yJla</cwmp:ID>
</soap:Header>
<soap:Body>
<cwmp:Inform>
  <DeviceId>
    <Manufacturer>Grandstream</Manufacturer>
    <OUI>C074AD</OUI>
    <ProductClass>XXXX</ProductClass>
    <SerialNumber>XXXXXXX</SerialNumber>
  </DeviceId>
  <Event soap-enc:arrayType="cwmp:EventStruct[1]">
    <EventStruct>
      <EventCode>6 CONNECTION REQUEST</EventCode>
      <CommandKey></CommandKey>
    </EventStruct>
  </Event>
  <MaxEnvelopes>1</MaxEnvelopes>
  <CurrentTime>2021-04-06T17:05:44</CurrentTime>
  <RetryCount>0</RetryCount>
  <ParameterList soap-enc:arrayType="cwmp:ParameterValueStruct[11]">
    <ParameterValueStruct>
      <Name>Device.GatewayInfo.ManufacturerOUI</Name>
      <Value xsi:type="xsd:string"></Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>Device.GatewayInfo.ProductClass</Name>
      <Value xsi:type="xsd:string"></Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>Device.GatewayInfo.SerialNumber</Name>
      <Value xsi:type="xsd:string"></Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>Device.DeviceInfo.HardwareVersion</Name>
      <Value xsi:type="xsd:string">1.3A</Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>Device.DeviceInfo.SoftwareVersion</Name>
      <Value xsi:type="xsd:string">0.0.0.0</Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>Device.DeviceInfo.ProvisioningCode</Name>
      <Value xsi:type="xsd:string"></Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>Device.ManagementServer.ConnectionRequestURL</Name>
      <Value xsi:type="xsd:string">http://X.X.X.X:7547/4LUa1m6SgD5GBzaR</Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>Device.ManagementServer.ParameterKey</Name>
      <Value xsi:type="xsd:string">n/a</Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>Device.LAN.IPAddress</Name>
      <Value xsi:type="xsd:string">192.168.131.X</Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>Device.LAN.MACAddress</Name>
      <Value xsi:type="xsd:string">00:00:00:00:00</Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>Device.DeviceSummary</Name>
      <Value xsi:type="xsd:string">Device:1.3[](Baseline:1,UDPConnReq:1,GatewayInfo:1,LAN:1,Time:1,IPPing:1,TraceRoute:1,Download:1,Upload:1,MemoryStatus:1),VoiceService:1.0[1](Endpoint:1,SIPEndpoint:1)</Value>
    </ParameterValueStruct>
  </ParameterList>
</cwmp:Inform>
</soap:Body>
</soap:Envelope>
  • 当建立连接后,CPE发送请求,并发送Inform报文通知。(Eventcode表示请求原因 如:connect request)
HTTP/1.1 200 OK
Date: Tue, 06 Apr 2021 09:05:44 GMT
Set-Cookie: AVSSESSIONID=8FbL3sKSb9CFE4BrPp6WmmL_jZb81lXKOmCByV0ja-wILFtvXN_Zgg;Path=/
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Type: text/xml; charset="UTF-8"
Content-Length: 459

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:cwmp="urn:dslforum-org:cwmp-1-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Header><cwmp:ID soap:mustUnderstand="1">haU761yJla</cwmp:ID></soap:Header><soap:Body><cwmp:InformResponse><MaxEnvelopes>1</MaxEnvelopes></cwmp:InformResponse></soap:Body></soap:Envelope>POST /acs/grandstream HTTP/1.1
  • ACS收到请求后,发送Inform报文响应。
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:cwmp="urn:dslforum-org:cwmp-1-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Header><cwmp:ID soap:mustUnderstand="1">haU761yJla</cwmp:ID></soap:Header><soap:Body><cwmp:InformResponse><MaxEnvelopes>1</MaxEnvelopes></cwmp:InformResponse></soap:Body></soap:Envelope>POST /acs/grandstream HTTP/1.1
Host: acs.avsystem.com:10301
User-Agent: GRANDSTREAM CPE-0.21.3.31 (3.6.13)
Cookie: AVSSESSIONID=8FbL3sKSb9CFE4BrPp6WmmL_jZb81lXKOmCByV0ja-wILFtvXN_Zgg
Authorization: Digest username="", realm="ACSRealm", algorithm=MD5, nonce="JVwsZqxc3qEyTday/kL6C0H+BhQLbZCu", uri="/acs/grandstream", qop=auth, nc=0000000b, cnonce="65da02d074fa0db3", response="1a89bfd8e8d89377bc9a961769644ef5"
Content-Type: text/xml; charset=utf-8
Content-Length: 0
  • CPE发送空报文无别的请求,满足HTTP报文的请求/响应的交互规则。

HTTP/1.1 200 OK
Date: Tue, 06 Apr 2021 09:05:45 GMT
Content-Type: text/xml; charset="UTF-8"
Content-Length: 406

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:cwmp="urn:dslforum-org:cwmp-1-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Header><cwmp:ID soap:mustUnderstand="1">47ed9304</cwmp:ID></soap:Header><soap:Body><cwmp:GetRPCMethods /></soap:Body></soap:Envelope>POST /acs/grandstream HTTP/1.1
  • ACS响应获取getRPCMethods的请求

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cwmp="urn:dslforum-org:cwmp-1-0">
<soap:Header>
  <cwmp:ID soap:mustUnderstand="1">47ed9304</cwmp:ID>
</soap:Header>
<soap:Body>
<cwmp:GetRPCMethodsResponse><MethodList soap-enc:arrayType="xsd:string[18]"><string>GetRPCMethods</string><string>GetParameterNames</string><string>GetParameterValues</string><string>SetParameterValues</string><string>SetParameterAttributes</string><string>GetParameterAttributes</string><string>AddObject</string><string>DeleteObject</string><string>Reboot</string><string>FactoryReset</string><string>Download</string><string>Upload</string><string>ScheduleInform</string><string>GetQueuedTransfers</string><string>GetAllQueuedTransfers</string><string>ScheduleDownload</string><string>CancelTransfer</string><string>ChangeDUState</string></MethodList></cwmp:GetRPCMethodsResponse></soap:Body>
</soap:Envelope>
  • CPE请求,发送GetRPCMethods的响应
HTTP/1.1 200 OK
Date: Tue, 06 Apr 2021 09:05:45 GMT
Content-Type: text/xml; charset="UTF-8"
Content-Length: 566

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:cwmp="urn:dslforum-org:cwmp-1-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Header><cwmp:ID soap:mustUnderstand="1">72518d29</cwmp:ID></soap:Header><soap:Body><cwmp:GetParameterValues><ParameterNames soap-enc:arrayType="xsd:string[1]"><string>Device.ManagementServer.PeriodicInformInterval</string></ParameterNames></cwmp:GetParameterValues></soap:Body></soap:Envelope>POST /acs/grandstream HTTP/1.1
Host: acs.avsystem.com:10301
User-Agent: GRANDSTREAM CPE-0.21.3.31 (3.6.13)
Cookie: AVSSESSIONID=8FbL3sKSb9CFE4BrPp6WmmL_jZb81lXKOmCByV0ja-wILFtvXN_Zgg
Authorization: Digest username="", realm="ACSRealm", algorithm=MD5, nonce="JVwsZqxc3qEyTday/kL6C0H+BhQLbZCu", uri="/acs/grandstream", qop=auth, nc=0000000d, cnonce="428822b01d33404d", response="7598a61391e704feb7973476224382ce"
Content-Type: text/xml; charset=utf-8
SOAPAction: 
Content-Length: 737
  • ACS响应,发送getParameterValues的值。
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cwmp="urn:dslforum-org:cwmp-1-0">
<soap:Header>
  <cwmp:ID soap:mustUnderstand="1">72518d29</cwmp:ID>
</soap:Header>
<soap:Body>
<cwmp:GetParameterValuesResponse>
  <ParameterList soap-enc:arrayType="cwmp:ParameterValueStruct[1]">
    <ParameterValueStruct>
      <Name>Device.ManagementServer.PeriodicInformInterval</Name>
      <Value xsi:type="xsd:unsignedInt">86400</Value>
    </ParameterValueStruct>
  </ParameterList>
</cwmp:GetParameterValuesResponse></soap:Body>
</soap:Envelope>
  • CPE回复ACS的结果
HTTP/1.1 204 No Content
Date: Tue, 06 Apr 2021 09:05:45 GMT
  • CPE请求关闭连接
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CWMP(CPE WAN Management Protocol)是一种用于管理宽带设备的协议,而TR-069(Technical Report 069)是基于CWMP的规范。 CWMP/TR-069的源码分析涉及到底层协议的实现以及相关的功能模块。由于CWMP/TR-069的实现方式可能因厂商而异,所以我无法提供具体的源码分析。但是,我可以给你一些常见的功能模块,供你参考: 1. 数据模型(Data Model):CWMP/TR-069使用一种基于XML的数据模型来描述设备的参数和状态。源码中会涉及到数据模型的解析、更新和存储。 2. 连接管理(Connection Management):CWMP/TR-069使用HTTP或者HTTPS协议与管理服务器进行通信。源码中会涉及到建立连接、发送请求和接收响应等操作。 3. 参数配置(Parameter Configuration):CWMP/TR-069允许管理服务器远程配置设备的参数。源码中会涉及到参数的读取、写入和验证等操作。 4. 远程诊断(Remote Diagnostics):CWMP/TR-069允许管理服务器对设备进行远程诊断。源码中会涉及到收集诊断信息、发送诊断请求和解析诊断结果等操作。 5. 固件升级(Firmware Upgrade):CWMP/TR-069允许管理服务器远程升级设备的固件。源码中会涉及到固件的下载、验证和安装等操作。 这些只是功能模块的一部分,CWMP/TR-069的源码分析需要深入研究具体实现的代码。希望这些信息能对你有所帮助!如果你有具体的问题,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值