How to write a great FreePBX extension

Update Voicepulse replied in a comment to this post. Though my post was a bit venomous, they replied thoughtfully, and they’re considering GPLing their FreePBX module. Keep in mind, while the Freepbx module annoyed me, and the contract annoyed me, I’m still using their service, I’ve switched to it full time, and I may be switching my mother to it if she goes VOIP. A 19 ping (versus 100-120) and 4 channels will do that.

  1. Write a FreePBX plugin that automatically creates trunks and inbound routes for people using your service.
  2. In the process, do the following
    1. Blindly try to install curl (using yum. On my Ubuntu machine.)
    2. Include FreePBX and your own function files with hardcoded paths for Trixbox, instead of using relative paths.
    3. Make tar.gz backups of my /etc/asterisk directory and quietly add them to your modules directory. Make sure not to do any checks for file size or free disk space.
    4. Write to my sip_general_custom.conf and extensions_custom.conf (bad FreePBX extension! bad!)
  3. Use PHP Obfuscator on your code, and copyright it, so that no one can see all the horrible things you’re doing to their system, or figure out why it doesn’t work.
  • I installed the extension and saw the paths didn’t work.
  • I looked at the code, and was appalled that they obfuscated it.
  • I symlinked /var/www/html so that it would install, then found out none of their actions (adding trunks, adding inbound routes) actually worked.
  • After seeing some of the fun things it does, I’m quite glad it didn’t work at all!

Thanks Voicepulse! Your rates are good, the voice quality seems great, but emailing you a signed contract and waiting for “verification” was annoying, and I wouldn’t touch your FreePBX extension with 9 1/2 foot poll. Your customers (including me) would probably clean up your mistakes if you GPL’d it. The only downside would be the possibility of helping someone you didn’t intend to.


JoeTerranova.net Print This Post Print This Post