Ah, the joy… We have a small bunch (500) of Grandstream GXP2000… I customized them quite a lot, so when our institution decided to change its logo, they were to be updated.

Don’t ask me an opinion on those phones. You don’t like swearwords, I suppose… I’ve managed to reach an agreement with them. I reboot them once a week and they seem to work reasonably.

So, the logo. First of all, the format. If you keep the status line, which I do like (except in the Daylight Savings Time change months with 5 sundays, when the clock goes nuts), you have 132x48 pixel. 1 bit bitmap, old school LCD. But to load it on the phone you have to create a custom XML file named gs_screen.xml. Here you can find the syntax:

http://www.grandstream.cn/knowledgebase/gxp_wp_xml_application.pdf

To load a bitmap file you need to save your image in 1 bit color, or black and white if you prefer. Then you need to encode it in base64 and put the string in the xml between the two tags bitmap. Fine? …no…

The real caveat is that the file has to be in Windows 3.1 BMP format. Luckily, imagemagick to the rescue:

convert -colors 2 originallogo.bmp BMP3:originallogow31format.bmp
base64 -w0 originallogow31format.bmp

That’s it…