GrandStream GXP2160 with EndPoint Manager

Hi guys,

New install of FreePBX bistro.

I bought one commercial module : the EndPoint Manager.

I set up my pfSense with option 66 to feed tftp:// (the IP of my FreePBX server).

I have AASTRA phones, different models, and all of them got provisioned automatically, without any kind of intervention… just resetting to factory default, they upgraded the firmware, and auto configured everything…

And then I have one single GrandStream, a GXP2160.

I don’t understand what to do, I tried everything and it will just not provision itself…

In the end, I just had to set up a SIP account manually from the web GUI.

This really sucks, I actually bought the EndPoint manager because I noticed that the OSS Endpoint Manager didn’t support the GXP2160… It did support all my AASTRA phones though.

Can anyone help? What is the phone looking for when it is booting up? Would it be because it can’t provision from HTTP ? Then what can I do about that ?


The 2160 is supported and works. I have about 3 dozen running on EPM. Look at the guide in the link below. The GUI of the phone will look different, but the settings are the same. TFTP, set firmware and config server to the ip of your PBX, apply, reboot. the wiki is your friend.

Goddamn it, I did look in the wiki but couldn’t find that.

Thanks a lot !

But I’m wondering why the full “factory default” reset doesn’t work… I mean… what is the GXP2160 looking for when it boots up?

My firewall does feed the DHCP option 66 with tftp:// and it did work with all the other phones so why doesn’t it work with the GXP2160?


I can only confirm what jyates01 has said that the 2160 is supported and works. We have over 600 phones a mixture of GXP2130’s and GXP2160’s and they all provision fine using EPM.
As to what the GXP2160 is looking for when it boots after a factory reset, it simply does a DHCP discovery/request, the DHCP server will give it it’s networking info along with the tftp server address. I use the following in the DHCP config files to distinguish the Grandstreams from other network devices (we have several thousand other devices on this network):-

class “grandstream” {
match if substring (option vendor-class-identifier, 0, 11) = “Grandstream” or
( substring(hardware,1,3) = 00:0b:82 );
option tftp-server-name “”;

The 2160 simply requests its config (cfgxxxxxxxxxxxx, (x’s = mac address in lowercase) file from the tftp server.

I would first check the DHCP log and see that the request is coming into the server and what the reply is. Then check the tftp server logs to see that the 2160 has requested the config file (along with any firmware files etc) and that the file was downloaded.

In our case since the phones are put into a separate VLAN it actually goes through the boot process twice, once to get its VLAN info and then boots again in the VLAN.


To be honest, I skip the reset to factory config setting. I set the firmware and config server to point to the FQDN or IP of my PBX, apply and reboot. First reboot will pick up the new config, and then will reboot again into the new config.

One thing to be aware of with EPM and the Grandstream phones is when ever you update EPM to a new version. Schmooze sometime update their templates for the phones and add extra P values with a default value. If any of these added new P values are the same P number as one you have added yourself to the base template, then this new default value will override your value. I’ve been caught by this a few times. Now I always take a copy of my phones .cfg file (that’s the text version of the config file) and then after updating EPM I regenerate the config for my phone. Then do a diff on the safe config and the new one to see if anything has been added. If it has this will show as a P value appering twice in the new config. If it happens just edit the base template, remove your added P value and change the new added P value to what you want… Its a bit of a pain that new default values override your own values, but at least you can get around it.

Ok so screw the factory settings.

I log in to the web configuration panel and go into

Maintenance > Upgrade and provisionning

Then I set this:


Then I reboot

I tried TFTP top…

And nothing happens :frowning:

WTF am I doing wrong :’(

The “path” should be a directory path not a network address, the default (empty string) should work fine for tftp (but not necessarily for your chosen http protocol)

So how do I find out the path I have to write there… nothing in EndPoint Manager seems to indicate what it should be?

It is the path relative your tftpd configured directory usually that is / tftpboot so as i said probably it should be empty if you are using http then relative to your document root usually /var/www/html

Ok but like I said, I did try TFTP with the firmware and server path set to and it doesn’t work :frowning:

Although it does work for all AASTRA phones :’(

Is there any kind of log I can check in FreePBX or EndPoint manager to see where it gets stuck?

If your tftpd server_args in /etc/xinet.d/tftp has -vv then /var/log/messages will show what is going on.

Trying to bump this thread as I still haven’t found a working solution.

I’m using the paid version of EndPoint Manager.

I have no idea how to get support from Schmooze : I tried emailing them twice and never got any response.

FreePBX version is: 12.0.74

EndPoint Manager version is:

Everything is on latest version as of today.

The problem is simple:

  1. All phones (Mitel, various model) will detect the right provisioning server because I feed them this info from the DHCP server. This one (GrandStream GXP2160) won’t. If i make a factory setting reset, it will just boot with no setting at all.
    This sucks but I can live without.

  2. Then I try to put the provisioning info from the Web GUI of the phone:

I’ve tried TFTP, HTTP and HTTPS protocols, always with the same IP which is the IP of FreePBX.

I save, apply and reboot, it will never provision.

The only way I got this phone working is to manually configure the info in account settings.

Since I’m about to deploy 50+ phones of the brand and model, I really need the provisioning to work.

Any idea?


I have replied to your Sales Inquiry form with a copy of the response to your July 9th email. Perhaps you did not see that particular response. Included will be a list of support options available for you.


Ok it got in my spam, sorry for that.

Well yeah the only option Schooze will offer me is paid support.

I was expecting a minimal help…

I guess I’m on my own!

I have a 2160 on my desk and it provisions just fine via tftp and http. In case it matters, I’m running firmwares: Boot, Core, Base, Prog

On a freshly reset phone, navigate to Maintenance, Upgrade and Provisioning, Select upgrade via tftp, remove the contents of the field Firmware Server Path, Add the PBX IP or FQDN to Config Server Path and leave the rest as default. Save and Apply, and reboot the phone.

Ok so I ended up taking for granted that the configuration software was correct.

I then disabled the option that allows DHCP server 66 to override server.


So there’s something wrong with my DHCP server… but I can’t figure out what !

It does work with all AASTRA phones by default :S

DCHP option is set to feed “text” with tftp://

Anybody sees a problem with that?

Yes some clients don’t like the tftp:// bit, unfortunately some clients won’t work without it, a catch 22 unless you customize your tftpserver (dnsmasq can fix that by serving different parameters for different MAC address masks)

p.s. It doesn’t work with ALL Aastra phones, i.e. 9133’s have exactly that problem.

Not sure you could answer that but just in case:

If I remove the tftp:// part, then should my AASTRA 6730i and 6739i still work ?

Thanks !!!

yes they swing both ways, polycoms don’t