Where is the WSDL for TR-069? Does it exist?

TR-069 uses SOAP. With SOAP, we can invoke remote methods in network elements or receive messages from it. For example, to invoke a function Fxyz in a service running in a router. In this case, who intends to work with SOAP needs to know what are the externalized capacities from a device (functions of a service). To externalize the capacities , for SOAP requests, there is the WSDL file (xml that describes the interface of a device’s service with methods).

If you have the WSDL for TR-069 capacities, you can automatically generate some code that will facilitate the creation of SOAP messages that will be the TR-069 messages, for example. Maybe the GenieACS developers are using such WSDL files.

However, I didn’t find any WSDL for TR-069. Does it exist in fact? Can someone here give-me some information about it or point me the web site where I can download such WSDL file?

Any hint will be very helpful!
Best regards.

While TR069 is based on SOAP, there are a very defined set of RPC calls.


For the CPE, the require RPCs are GetRPCMethods, SetParameterValues, GetParameterValues, GetParameterNames, GetParameterAttributes, SetParameterAttributes, AddObject, DeleteObject, Reboot, and Download.

To define a vendor specific RPC, the method must be of the following form:

The method starts with X underscore, followed by a unique vendor identifier, usually an official OUI or domain name. After another underscore, the custom RPC is named.

Hi. Thank you!
I my project case, we don’t desire to create new specific methods.
But, if there is a WSDL to represent TR-069, so it will be easier to automatically generate java code related to ‘sending SOAP messages’, for example.

However, if there isn’t such WSDL, so we have a gap that could suggest o good work in telecom.


Why do you want to send RPC calls directly to the CPE? This is the role that Genie fills.

Hi. You are right: I should use Genie!

However, my boss asked me to implement some java code to send few messages with TR-069. The first one will be about firmware upgrade. In this case, I was inclined to use Eclipse, a plugin for create web services, and WSDL files. In Eclipse you can generate web services and SOAP messages automatically very easily, if you have WSDL that represents the protocol defined in TR-069.

I still don’t know why my boss and his company would like to avoid using GenieACS or similar software.
Thank you for discuss with me.


Your boss is making things to hard. An ACS can manage all of this, including firmware upgrades. I have a firmware upgrade script thats about 60 lines of actual code (plus another dozen or so for the firmware version to file mappings, and another couple dozen to do version comparisons) that handles all of our CPEs, allows me to specify upgrades can only happen on an event like Boot or Scheduled, checks versions, does upgrades in order, handles firmware and config files, etc.

If you already use GenieACS in your environment, then don’t add another dependency (some custom java app). Leverage the tools you already have :slight_smile:. I’d push back on your boss a bit and tell him hes making things more difficult than they need to be.

Hi. You are completely right. I agree with you.
However, my boss asked me such task because he has a customer that is asking the same thing to him. So, the customer asked my boss, my boss asked me.

Our customer is a manufacturer that produces GPON artifacts. And they want to take control of some ONUs (CPEs) via TR-069. For me, the GenieACS would be the best solution. But I suspect that the customer doesn’t what to have costs with some kind of GenieACS licence. At least, that is what I had listened from someone. We are only software developers. I still don’t know about the GenieACS licenses prices, but I have the feeling that the customer should decide to buy it.


GenieACS is free :slight_smile:. You can purchase a license/support though.

The GenieACS stack can be run entirely on free software, Linux, Mongo, Redis, Ruby, Passenger, nginx/Apache.

Ok. The problem is that the customer’s software is not free. The customer will run his software over Linux. GenieACS can be run over Linux too, as you said. But, the customer software, that is not free, would to contact or incorporate the GenieACS. That is, a not free software would use the GenieACS, all over Linux.
In this case, I guess the customer have to free his software too, haven’t him?
They don’t want to free their software.

Thanks .

There is no need for the customers software to be free. Have the customer software make API calls to Genie via the NBI. This is how we do integration with GenieACS. Then there is no need to incorporate GenieACS into the their product.


Ok. Thank you for this information. I will comment about it with the manager of the project we are doing.
But, I’m a bit confuse. What are the conditions when we should pay some value to use GenieACS? Can I see some information about it in some web page of GenieACS?
Best regards.

Pay if you want support. Pay if you want to support the project. In the future, there will also be more of a differentiation between a free and paid product. @zaidka can weigh in on that.


Thank you very much! I got it.

Best regards.