EPM - Grandstream

I am trying to provision some Grandstream phones for the first time. Although the phone looks good I’m having no end of problems. So I am in particular facing a number of issues.

1: DHCP option 66 doesn’t seem to really work either using tftp:// or (obviously that IP is fake). I got around this but through the gui of the phone telling it to “update now”. Which seems to have worked.

2: The phone seems to be tempermental in terms of VLANs. We have the switch setup to use LLDP-MED to determine the VLAN. Sometimes on boot it gets it right and sometimes wrong. I can’t find any way to get it to “always” be right, and when it gets it wrong it seems if I give it a couple hours and reboot it might get it correct, but not an immediate reboot (for reference my Polycom, and YeaLink phones are 100% reliable). Further to this when I tried to push a firmware update, if I left it on a standard port it went into a reboot loop. I changed the port to an access port dedicated to the phone VLAN and it completed the update. The problem is that (unfortunately) I don’t have 2 ports per user so I can’t do that.

I of course don’t know if the VLAN issues were resolved in the latest firmware but I am more than a little put off. Does anybody have any experience with this?

Grandstreams don’t really like the tftp:// to be specified, and default to HTTP distribution. What I’ve found is open both, http and TFTP distribution to the phones, then specify in the template to use the tftp. This will usually resolve the first issue.

Vlans: Don’t block vlan 0 from reaching the system properly, then find the pcode for vlans (I forget what it is, sorry) and put that in the base file to fix it after first provision.


Thanks for the reply. How do I open for both http and tftp distribution. That should be open by default no? The following does occur to me however.

Also the web provisioning port appears to be port 83. Wouldn’t that mean I need to specify for the grandstreams something along the lines of. If I want it to provision via http?

BTW as a seperate note perhaps it is worth creating a list of how things like the option 66 to be specified:


Yealink - both
Grandstream - neither:-)
Polycom - tftp://…

You won’t need to include the port, provided you don’t change it from the defaults. The default web provisioning port is 84, and so you’ll want to make sure that’s enabled (it’s not in freepbx 13 by default) and not blocked by any firewalling.

To re-enable them in freepbx 13, go to the sysadmin module, then port management
You can turn back on anything you may need there.

As for the second comment - It would be nice having that list. I know I prefer to stick to a single brand just because of the differences between them though, and grandstreams while not as great sounding as a polycom (what is though, seriously) are more feature rich, have more customization and just plain are amazing phones for the price.

Interesting for some reason it was port 83 in my clean install… But I have changed the port to 84. I don’t understand why the port wouldn’t need to be defined in option 66 unless this is some “quasi standard” and therefore they guess…

I would love in theory to keep to 1 type of phones but that is easier said than done.

The multiple types issue gets resolved by the keep http distribution open at least, because each one will try over HTTP, then find out it needs to convert to tftp and next boot will go over that.

The grandstream information on option 66 is very terse. I played around with for hours until I found a working solution by trial and error.

I could not get tftp to work but did get http to work. Option 66 for the default provisioning port 83 on My FreePBX install is this below. This is for my Cisco DHCP server specifically: option 66 ascii “

Putting manually in the phone provisioning field also works. Must select http for the provisioning AND the ending / seemed to be important in my case as well.