Hacking the Grandstream BT-100

by Steven Haigh.
Last updated: 07/01/2005

Ring tones

So after a lot of playing around, I’ve managed to come up with a slightly different way of creating ring tones. I’ve managed to get past the 65Kb size for a custom ring tone.

The Script
The perl script for making ring tones is here.

Script notes.
From looking at the ring.bin format, if the header only has the ‘ring.bin’ as the file name, it will work with ring tones up to 128Kb in size. Anything else, such as ‘ring1.bin’ and the rings will only work up to 64Kb in size.

This has been tested by myself with firmware version 1.0.5.11 upwards (including 1.0.5.18 Beta firmware dated 18/Nov/2004)

Script History
I originally came across this script at www.voip-info.org and had a lot of problems with the existing version for firmware 1.0.5.0+. The older script still worked however – so this became the base for my research. The Grandstream firmware packages come with a ring tone that is larger than 64Kb – so it was defiantly possible. After some hex comparing of the headers between files, the only difference I could locate was the ‘file name’ field. Experimentation lead to the simple modifications in the script.

Firmware revisions
Partial credits for the below list to www.voip-info.org

    Firmware: 1.0.3.81

  • Cannot load new firmware if configured for DHCP?
  • Firmware: 1.0.4.46
    Fixes:

  • Phone crashes sometimes generating a loud tone until rebooted (in 1.0.4.40, should be fixed in 1.0.4.45)
  • Fix for voice echo problem during calls
  • Problem with dialing numbers
  • Speaker phone volume set to a higher volume
  • Possible DTMF problems fixed
  • Firmware: 1.0.4.55 – 1.0.4.81alpha

  • The phone sends some SIP traffic to port 0 at the destination, not to port 5060. See a more detailed explanation on the page Asterisk phone grandstream budgetone under the heading “Early dial”.
  • Firmware: 1.0.5.0 (and probably earlier)

  • Early dial and challenge/MD5 authentication do not play nicely together. Specifically, the Grandstream device correctly handles the “407 Authentication Required” challenge for the first two digits, but (usually) once the third is reached, it decides that 407 is a failure code, produces a busy signal, and aborts the call. This can be worked around by specifying “auth=plaintext” in your sip.conf.
  • Firmware: 1.0.5.11

  • Seems to be a rather stable version.
  • Firmware: 1.0.5.16

  • Message button is broken. It sends a malformed SIP INVITE message.
  • Firmware: 1.0.5.18 (Beta 18-Nov-2004)

  • Message button is fixed.
  • Appears that DHCP before PPPoE is broken. DHCP request isn’t seen.
  • New web configuration layout.
  • Firmware: 1.0.5.22 (Beta 25-Jan-2005 from here).

  • No observed issues.

NOTE: I no longer have a BT-100, hence this page will probably be static from here on in.