Calix Community  
 
Reply
Highlighted
Calix Certified
Posts: 8
Registered: ‎12-12-2013
0
Accepted Solution

TR-069 SetParameterValues

Hi everyone,

 

Wondering if anyone has successfully used CC+ API to set parameter values on Gigacenter 844E or similar. In this particular use case, we're looking to update the Registration ID on the device itself, as we need to migrate a portion of our installed Gigacenter base over to new registration IDs. There would also be future use case to set 2.4/5.0 GHz WiFi SSID and Passphrase simultaneously via custom web front-end for CSRs and other staff.

 

In looking through NBI API documentation, I'm seeing that CC+ only supports TR-069 GetParameterValues options:

 

Here is a list of all TR069 Operations that are currently supported by Calix CC+ API:
- “GetParameterValues”

That said, I was able to successfully initiate a reboot of the device using "Reboot" Operation using the following JSON file:

 

{
        "operation": "Reboot",
        "cpeIdentifier": {
                "serialNumber": "FSAN#"
        }
}

Of course, this action times out when run with curl, but the device did actually reboot.

 

Anyway, looking for input from anyone that's tried to do similar to see if they found a way. I plan to submit a feature request, if necessary.

 

Thanks much!

Calix Certified
Posts: 8
Registered: ‎12-12-2013
0

Re: TR-069 SetParameterValues

Just an update, I've tried a few different things, and it's looking like the values may not be writeable. Here's my attempt at updating WiFi info:

 

{
	"operation": "SetParameterValues",
	"cpeIdentifier": {
		"serialNumber": "FSAN%"
	},
	"parameterValues": {
		"InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID": "Testing",
		"InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.PreSharedKey.1.X_000631_KeyPassphrase": "testing12345",
		"InternetGatewayDevice.LANDevice.1.WLANConfiguration.9.SSID": "Testing",
		"InternetGatewayDevice.LANDevice.1.WLANConfiguration.9.PreSharedKey.1.X_000631_KeyPassphrase": "testing12345"
	}
}

Yields the following:

 

## curl -X POST --header "Content-Type: application/json" -d @file.json -u "user:password" -vv https://gcs.calix.com:8444/api/device-op
*   Trying 199.71.143.216...
* Connected to gcs.calix.com (199.71.143.216) port 8444 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate: *.calix.com
* Server certificate: DigiCert SHA2 Secure Server CA
* Server certificate: DigiCert Global Root CA
* Server auth using Basic with user 'user'
> POST /api/device-op HTTP/1.1
> Host: gcs.calix.com:8444
> Authorization: Basic [[snip]]
> User-Agent: curl/7.43.0
> Accept: */*
> Content-Type: application/json
> Content-Length: 485
>
* upload completely sent off: 485 out of 485 bytes
< HTTP/1.1 400 Bad Request
< Content-Type: application/json
< Content-Length: 81
<
{
  "error" : "Received TR-069/CWMP Fault from Device: 9003 Invalid arguments"
}

Consumer Connect Logs:

 

08/11/2016 02:07:24 PM	SetParameterValues	InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID : Testing ( and 3 more parameters)	
<cwmp:SetParameterValues xmlns:cwmp="urn:dslforum-org:cwmp-1-2" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ParameterList  soapenc:arrayType="cwmp:ParameterValueStruct[4]">
    <ParameterValueStruct>
      <Name>InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID</Name>
      <Value  xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">Testing</Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.PreSharedKey.1.X_000631_KeyPassphrase</Name>
      <Value  xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">testing12345</Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>InternetGatewayDevice.LANDevice.1.WLANConfiguration.9.SSID</Name>
      <Value  xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">Testing</Value>
    </ParameterValueStruct>
    <ParameterValueStruct>
      <Name>InternetGatewayDevice.LANDevice.1.WLANConfiguration.9.PreSharedKey.1.X_000631_KeyPassphrase</Name>
      <Value  xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">testing12345</Value>
    </ParameterValueStruct>
  </ParameterList>
  <ParameterKey>[[snip]]</ParameterKey>
</cwmp:SetParameterValues>
08/11/2016 02:07:29 PM	Fault	FaultCode : 9003
FaultString : Invalid arguments
setParameterValuesFaults : Attempt to set a non-writeable parameter (code 9008), parameter name: InternetGatewayDevice.LANDevice.1.WLANConfiguration.9.PreSharedKey.1.X_000631_KeyPassphrase,Attempt to set a non-writeable parameter (code 9008), parameter name: InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.PreSharedKey.1.X_000631_KeyPassphrase	
<SOAP-ENV:Fault xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="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-2">
  <faultcode>Client</faultcode>
  <faultstring>CWMP fault</faultstring>
  <detail>
    <cwmp:Fault>
      <FaultCode>9003</FaultCode>
      <FaultString>Invalid arguments</FaultString>
      <SetParameterValuesFault>
        <ParameterName>InternetGatewayDevice.LANDevice.1.WLANConfiguration.9.PreSharedKey.1.X_000631_KeyPassphrase</ParameterName>
        <FaultCode>9008</FaultCode>
        <FaultString>Attempt to set a non-writeable parameter</FaultString>
      </SetParameterValuesFault>
      <SetParameterValuesFault>
        <ParameterName>InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.PreSharedKey.1.X_000631_KeyPassphrase</ParameterName>
        <FaultCode>9008</FaultCode>
        <FaultString>Attempt to set a non-writeable parameter</FaultString>
      </SetParameterValuesFault>
    </cwmp:Fault>
  </detail>
</SOAP-ENV:Fault>

The same occurred when attempting to update the Registration ID. So I guess that's a no for now. If anyone else has any better experience, I'd appreciate some feedback. Otherwise, I'll plan to submit a Feature Request.

Moderator
Posts: 313
Registered: ‎01-07-2010
0

Re: TR-069 SetParameterValues

So SetParameterValues directly to the device is not technically supported officially (yet) but the ACS server will let you do it, just have to understand you're bypassing the CC+ systems and talking directly to the device (so CC+ is not saving anything your doing right).

 

In your particular instance, you are looking to set regID, that particular parameter is readOnly via Tr69. Here is the DataModel for that parameter.

 

<parameter name="X_000631_RegistrationId" type="string" specSource="Custom" profile="Unspecified" supportLevel="ReadOnly" defaultValue="" maxLength="11" neverWriteToConfigFile="true">
<description source="custom">
Optional Calix RegistrationId entered via SmartActivate. Persistent storage is in Calix sysparms, NOT MDM.
</description>
</parameter>
Moderator
Posts: 313
Registered: ‎01-07-2010
0

Re: TR-069 SetParameterValues

This depends on what version of GC code you're running, but i am going to just leave this here:

 

$ cat file.json 
{
	"operation": "SetParameterValues",
	"cpeIdentifier": {
		"serialNumber": "CXNK00206426"
	},
	"parameterValues": {
		"InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID": "Jtest1",
		"InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.PreSharedKey.1.KeyPassphrase": "abcd1234567abcd1234567abcd",
		"InternetGatewayDevice.LANDevice.1.WLANConfiguration.9.SSID": "Jtest1",
		"InternetGatewayDevice.LANDevice.1.WLANConfiguration.9.PreSharedKey.1.KeyPassphrase": "abcd1234567abcd1234567abcd"
	}
}

result:

 

* upload completely sent off: 493 out of 493 bytes
< HTTP/1.1 200 OK
< Content-Length: 0
Calix Certified
Posts: 8
Registered: ‎12-12-2013
0

Re: TR-069 SetParameterValues

Aha! I seem to have had an artifact "X_00631_ in the KeyPassphrase fields. After removing those, the WiFi fields did work.

 

Thanks much! We'll have to find another way to deal with the Registration ID then. My guess is we'll just manually update them. Thankfully, it's only a portion of the 500+ we have in service (maybe 50ish). 

 

Anyway, thanks much!