Firmware upgrade through Provisioning add-on not working for Grandstream GRP-series phones

I have a test installation of VitalPBX that I’ve been experimenting with for a bit. I’m trying to figure out how to use the Provisioning add-on to automatically provide firmware for phones to upgrade. I’ve primarily been trying to use Grandstream GRP-series phones here. I have created templates and provisioned phones just fine, but I can never get the phones to upgrade the firmware without a lot of manual intervention.

I have traced this down to the fact that the provisioning XML file is not setting the variable for the phone to know where to get the firmware from. I have confirmed this by checking the XML files through the shell… the variable , which for Grandstream sets the server IP/Domain Name, etc., is simply empty. If I manually edit the file/template using the “custom settings” section, then all is well.

I feel that there must be some step I’m missing to enable this. The configuration loads just fine, as does every other feature I’ve checked. It simply is not providing a valid path to the firmware.

If anyone has any advice on this, or if I need to provide some of the files from my installation, please let me know. Thanks in advance for the help.

Hello,

Thank you for reporting the issue we’ll proceed to test it

I test it on a grp2615 template and the firmware variable p192 is set with the firmware path, could you please share the contents of the generated provision file for analysis

Roger, this problem seems to be elusive. It does work sometimes, but not at others. This is the configuration file for a GRP2616 that does not have the string in it that is needed.
cfgc074ad7fbb86.xml.txt (350.1 KB)

If you are on a secondary tenant first please try to create the http settings for that tenant and then try again to generate the provision file

Roger, I should have sent a file from the Primary Tenant, but it is doing it on those extensions, too. I’ve attached two files. One is for a GRP2615, the other is for a GXP2160.

I’m not as familiar with Yealink phones, but I’ve noticed the same issue with them as well. I’ve attached a provisioning file for a T53 that is also missing the same type of parameter.

These are all phones/devices on the primary tenant.

805ec08b1bd5.cfg.txt (96.0 KB)
cfg000b8264db65.xml.txt (297.4 KB)
cfgc074ad1347e0.xml.txt (305.1 KB)

The same happens after you create a http settings record?, I’ll take a look at the yealink models

Roger,
I think you found the problem. I did not create a username/password at all. When I put a setting in there, then the URL will populate. I have not had time to check to see if the phone accepts this setting yet, but I will let you know if this works.

You can create the http settings record with empty user and password, remember to create one on each tenant where the device is assigned, we’ll update it for the next version so is not necessary to create a http settings record to get the firmware data

Roger, this does appear to work now. I created a http settings record with empty username and password as you suggested. Thank you for your help!

Using pjsip trunks for extensions, I registered Grandstream HT 813 and it works great. Did not provision it, but registered it.
Not sure if that helps.

I was able to manually provision phones, but my issue was that I had never created the “https settings record” (for username/password). Once I did this, everything started working correctly. However, I did not try this with any of the HT-series from Grandstream.