Failed to load XML File

Hello,

I’m using FreePBX 13.0.106, all modules are updated.

I’ve provisioned a single S700 phone by manually entering the provisioning server on the phone.

I selected
Upgrade Mode: TFTP
Firmware Server: tftp://10.x.x.x
Config Server: tftp://10.x.x.x

The phone provisioned, and upgraded the firmware to Firmware 2.0.4.8. I can get dialtone and use the phone.

But I’m having trouble setting up anything that uses the XML-API. When I select any of those buttons on the phone I get the error message

“Failed to load XML File”

What step am I missing?

Thanks,
Daniel

Make sure you can get to the Rest APPs port (default 88) and check to see if the Phone App Daemon is running.

Obvious stupid question time: Is your TFTP directory read/write/execute to everyone AND are all of the files in the directory writable by everyone?

Thanks for the advice. According to my setup, the Rest Port is 84. When I hit it with my web browser I get the Apache 2 Test page.

I’m assuming I’ll have to check if the phone app is running on the command line. Do you know the process name?

Thanks

The tftpboot directory is setup as the FreePBX distribution created it. Which is

/tftpboot Everyone read/NO Write/execute

most of the files are
Everyone read/NO Write/execute

Thanks

Historically, the TFTP protocol will not transfer files that are not RW- or RWX by the user reading them.

I don’t know that the vulnerability in the protocol was tightened up lately, but I know that’s how it’s worked for me for the last 20 years or so.

go to http://YOUPBXIP:84/applications.php/findmefollow/main?user=EXTNUMBER

you should see something like this

{“application_name”:null,“application_display”:null,“page_name”:“main”,“type”:“display”,“exitPath”:null,“layout”:[],“action”:[],“error”:[{“reason”:400,“display”:“Phone Apps module not licensed.”}]}

If you don’t, try to telnet into port 84.

Indeed that is what I got.

{“application_name”:null,“application_display”:null,“page_name”:“main”,“type”:“display”,“exitPath”:null,“layout”:[],“action”:[],“error”:[{“reason”:400,“display”:“Phone
Apps module not licensed.”}]}

The only thing I can say is that the phone uploaded it’s new ROM and is taking configuration changes ok. It’s just using the RESTful apps that is causing me problems.

Last two things I can think of:

Check the actual URL inside the Function key section on the phone GUI, make sure it is pointing to the correct server address and port number.

Make sure your modules are up to date.

Now we are making some progress!

Here’s the URL on the phone.

http://:84/applications.php/…

So it’s not assigning the server name or IP to this url.
I found the problem. On the Endpoint Manager Template for this phone, it had

internal_Server as the entry for Destination address, instead of the actual IP Address.

Is there a way to force it to use HTTPS?

Thanks for the help!

HTTPS support will be coming once FreePBX 13 gets the changes for SSL we are doing done as the phone needs non self sign certs for the apps.

Great! Thanks for the update.