We’re accustomed to configuring the “tftp-server-name” DHCP option for use with zero config to provision Grandstream IP phones. We recently swapped out an EdgeRouter at a customer for an Mikrotik CCR, here we specified the IP in the DHCP option 150 (in hex) but it doesn’t appear to be working. We need to specify https and the port number, in the past we used a string in EdgeRouters for this functionality:
set service dhcp-server shared-network-name demo subnet 10.0.0.0/24 tftp-server-name https://10.1.1.60:8089
RouterOS can send such DHCP options, but for now it can only do it when the device actually requests them.
That is how it should work as defined in the standard: devices send a list of options they want to receive, DHCP servers reply with the values of those options.
However, there has been a flood of buggy devices programmed by sloppy programmers, that expect to receive values for options they did not request.
It is a topic that has been discussed over and over and it appears that in RouterOS v7 the capability is being added.
However, don’t just upgrade to v7 just for that and without testing and evaluating it outside of the production environment!
Thank you for correcting me, I assumed all offers would include the option 150, but apparently only for the devices specifically requesting it. We will proceed by looking more in depth into the device, assuming the above configuration is correct.
We’re running the CCR1009 on 7.1, and thus far we haven’t encountered any issues.
Why are you using a http url for a tftp address? RFC5859 states this needs to be an IP address (or multiple IP addresses) not a URL.
You need to convert each octet of the IP address to HEX and then set the option. For instance if I have two tftp servers: 192.168.6.1 and 10.1.1.1 it would be:
Grandstream uses http/https for provisioning. And as stated in the OP. We always use a full string with https:// included and port, as that only seems to work. (proven in Windows and EdgeRouter DHCP environments).
I don’t have anything helpful to give.
When you wireshark sniff a windows/edgerouter setup, does it actually transmit the https://host:port in the clear or does it translate it into an IP address?
I would use the packet sniffer from the router to make sure it is being sent. If wireshark decodes it, then the phone should be able to use it as long as it is in the format the phone needs.