CPE initiates connection by sending Inform message. Connection is initiated first time it connects to access network, on power-up or reset, every PeriodicInformInterval, on connection request, when Active Notification parameters are changed by an external cause, when ACS URL changes, whenever download or upload completes (please consult TR-069 standard for complete list of events).

POST /cwmpWeb/CPEMgt HTTP/1.1
Content-Type: text/xml; charset=ISO-8859-1
Host: 10.10.10.11
User-Agent: Thomson_cwmp-engine/r6.2.35.0
SOAPAction:
Transfer-Encoding: chunked
Authorization: Basic MDAxNDdGLUNQMDYxMUpUTE5XOg==

<soapenv:Envelope soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cwmp="urn:dslforum-org:cwmp-1-0">
    <soapenv:Header>
        <cwmp:ID soapenv:mustUnderstand="1">0_THOM_TR69_ID</cwmp:ID>
    </soapenv:Header>
    <soapenv:Body>
        <cwmp:Inform>
            <DeviceId>
                <Manufacturer>THOMSON</Manufacturer>
                <OUI>00147F</OUI>
                <ProductClass>SpeedTouch 780</ProductClass>
                <SerialNumber>CP0611JTLNW</SerialNumber>
            </DeviceId>
            <Event soap:arrayType="cwmp:EventStruct[04]">
                <EventStruct>
                    <EventCode>0 BOOTSTRAP</EventCode>
                    <CommandKey></CommandKey>
                </EventStruct>
                <EventStruct>
                    <EventCode>1 BOOT</EventCode>
                    <CommandKey></CommandKey>
                </EventStruct>
                <EventStruct>
                    <EventCode>2 PERIODIC</EventCode>
                    <CommandKey></CommandKey>
                </EventStruct>
                <EventStruct>
                    <EventCode>4 VALUE CHANGE</EventCode>
                    <CommandKey></CommandKey>
                </EventStruct>
            </Event>
            <MaxEnvelopes>2</MaxEnvelopes>
            <CurrentTime>1970-01-01T00:01:09Z</CurrentTime>
            <RetryCount>05</RetryCount>
            <ParameterList soap:arrayType="cwmp:ParameterValueStruct[12]">
                <ParameterValueStruct>
                    <Name>InternetGatewayDevice.DeviceSummary</Name>
                    <Value xsi:type="xsd:string">
InternetGatewayDevice:1.1[] (Baseline:1, EthernetLAN:1, ADSLWAN:1, Bridging:1, Time:1, WiFiLAN:1)</Value>
                </ParameterValueStruct>
                <ParameterValueStruct>
                    <Name>InternetGatewayDevice.DeviceInfo.SpecVersion</Name>
                    <Value xsi:type="xsd:string">1.1</Value>
                </ParameterValueStruct>
                <ParameterValueStruct>
                    <Name>InternetGatewayDevice.DeviceInfo.HardwareVersion</Name>
                    <Value xsi:type="xsd:string">BANT-R</Value>
                </ParameterValueStruct>
                <ParameterValueStruct>
                    <Name>InternetGatewayDevice.DeviceInfo.SoftwareVersion</Name>
                    <Value xsi:type="xsd:string">6.2.35.0</Value>
                </ParameterValueStruct>
                <ParameterValueStruct>
                    <Name>InternetGatewayDevice.DeviceInfo.ProvisioningCode</Name>
                    <Value xsi:type="xsd:string"></Value>
                </ParameterValueStruct>
                <ParameterValueStruct>
                    <Name>InternetGatewayDevice.DeviceInfo.VendorConfigFile.1.Name</Name>
                    <Value xsi:type="xsd:string">MyCompanyName</Value>
                </ParameterValueStruct>
                <ParameterValueStruct>
                    <Name>InternetGatewayDevice.DeviceInfo.VendorConfigFile.1.Version</Name>
                    <Value xsi:type="xsd:string"></Value>
                </ParameterValueStruct>
                <ParameterValueStruct>
                    <Name>InternetGatewayDevice.DeviceInfo.VendorConfigFile.1.Date</Name>
                    <Value xsi:type="xsd:dateTime">0000-00-00T00:00:00</Value>
                </ParameterValueStruct>
                <ParameterValueStruct>
                    <Name>InternetGatewayDevice.DeviceInfo.VendorConfigFile.1.Description</Name>
                    <Value xsi:type="xsd:string">MyCompanyName</Value>
                </ParameterValueStruct>
                <ParameterValueStruct>
                    <Name>InternetGatewayDevice.ManagementServer.ConnectionRequestURL</Name>
                    <Value xsi:type="xsd:string">http://10.127.129.205:51005/</Value>
                </ParameterValueStruct>
                <ParameterValueStruct>
                    <Name>InternetGatewayDevice.ManagementServer.ParameterKey</Name>
                    <Value xsi:type="xsd:string"></Value>
                </ParameterValueStruct>
                <ParameterValueStruct>
                    <Name>InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress</Name>
                    <Value xsi:type="xsd:string">10.127.129.205</Value>
                </ParameterValueStruct>
            </ParameterList>
        </cwmp:Inform>
    </soapenv:Body>
</soapenv:Envelope>

Let's stop here for a while to explain Inform message. Inform message itself is consistsed of 5 arguments:

  • DeviceId: list of parameters that uniquely define cpe. Parameters are Manufacturer, ProductClass, OUI and SerialNumber. Manufacturer is self-explanatory parameter. OUI are 6 digits of MAC address OUI. SerialNumber is parameter that uniquely defines cpe, no devices with the same serial number may exist. For ProductClass many vendors put generic values like CPE or IAD. Although guys from Broadband forum expect that this value will be CPE or STB, in my opinion this is wrong. Thomson engineers have smartly put here 'SpeedTouch 780' - it's model name, and I think that is exactly what should be found here. Why?

ModelName parameter is even defined in TR-098 data model, so why we should put model name into ProductClass. Only these four parameters are defined in DeviceId structure of Inform message. Imagine that cpe vendor has 3 models, one voip cpe with wlan, one cpe without voip, and the third without voip functionality and without wlan. ACS recognizes CPE by reading DeviceId structure in Inform message, and if all models from the same vendor have common, generic ProductClass value like 'CPE' (Manufacturer and OUI parameters are common by it's nature), ACS will not be able to recognize model type, and will not know if it can set voip or wlan data. Much more, it can not know about firmware image it will download on device.

  • Event: structure indicating what event caused transaction session to be established. Here device sent EventCode '0 BOOTSTRAP' code which means that device is contacting ACS for the first time. Also device sent additional EventCodes: '1 BOOT' because device was booting after factory reset, 2 PERIODIC which is sent whenever PeriodicInforInterval expires and '4 VALUE CHANGE' because value ManagementServer.URL was changed (device has just learned about ACS server URL via DHCP option 43).

  • MaxEnvelopes: standard says this value must be '1'. Anyway, it is not relevant to our discussion.

  • CurrentTime: also not relevant in this discussion.

  • RetryCount: Number of prior times an attempt was made to retry this session. I don't know about any practical significance of this parameter.

  • ParameterList: standard specifies list of parameters which MUST be included in every Inform message. Parameters that are required on every Inform are listed in TR-098 standard in table 3. There are 8 of them, and we see in example below that Thomson has sent 12 parameters. Parameters VendorConfigFile.1.Name, VendorConfigFile.1.Version, VendorConfigFile.1.Date and VendorConfigFile.1.Desription are surplus.

Every time it receives valid Inform message, server sends Inform response:

HTTP/1.1 200 OK
Cache-Control: no-cache="set-cookie"
Date: Wed, 04 May 2011 17:12:46 GMT
Content-Length: 545
Content-Type: text/xml; charset=ISO-8859-1
Set-Cookie: JSESSIONID=f2xtNBJT1nwCvKpG2B22hyYpT9V0p2WLsnW1bbQm6wCbBWJ75TfZ!-2130266351; path=/
X-Powered-By: Servlet/2.4 JSP/2.0

<soapenv:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cwmp="urn:dslforum-org:cwmp-1-0" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header>
        <cwmp:ID soapenv:mustUnderstand="1">0_THOM_TR69_ID</cwmp:ID>
    </soapenv:Header>
    <soapenv:Body>
        <cwmp:InformResponse>
            <MaxEnvelopes>1</MaxEnvelopes>
        </cwmp:InformResponse>
    </soapenv:Body>
</soapenv:Envelope>

Referensi

results matching ""

    No results matching ""