Wednesday, March 16, 2011

Daylight rules in Grandstream 2010 provisioning

Provisioning Grandstream 20xx phones via TFTP is easy, but one thing which causes problems is provisioning daylight saving values.

Normaly you should be able to set the P246 property to the correct value for your country/location.

It appears that inside the GXP, the firmware uses the same routine to decode the config file as is used to decode the data posted via a web browser. In other words, the data MUST BE URL-ENCODED.

For example, the following (current New Zealand 2007-onwards DST rule) will not work:

P246=9,1,7,2,0;4,1,7,3,0;60

But, if you URL-encode it, you will get:

P246=9%2C1%2C7%2C2%2C0%3B4%2C1%2C7%2C3%2C0%3B60

And guess what - the phone will accept it, and you're on your way :-)

If you've got python installed, you can encode things pretty easily. If you're using a different language, ask Google.

import urllib
print urllib.urlencode({'P246': '9,1,7,2,0;4,1,7,3,0;60'})

And here a online encoder
http://www.albionresearch.com/misc/urlencode.php

With that value you can set the correct daylight saving rules
for all grandstream phones in your network.

BTW: Perhaps someone should pass along this information to the fruits company, looks like iFruit is (not for the first time) having time problems ;)