A few new modules to play with

Hi guys,
I’ve made some modules that you may find useful. They’re sitting on my company github since a while, I list them here because maybe you’d like to try them.

Google TTS FreePBX Module https://github.com/nethesis/googletts/releases

This module allows to create system recordings using Google Cloud Text to Speech service https://cloud.google.com/text-to-speech/ of course you need to put your own API key

Return On Transfer https://github.com/nethesis/returnontransfer/releases

Do you know the code to make calls return when a blind transfer gone wrong? Ok, here it’s in a module. It also allow to chose a timeout, a custom alertinfo and a custom display name.

RapidCode https://github.com/nethesis/RapidCode/releases

Just like speed dial, with CSV import/export

DirectDID https://github.com/nethesis/directdid/releases

Yet another way to configure direct did in one place


  • no warranties etc etc :skull_and_crossbones:
  • only for FreePBX >= 14
  • only poor English and Italian translations. Contributions welcome for other languages. :speak_no_evil:
  • not signed at the moment. I can sign em if you ask me to do it, but I’m lazy and I’m not doing it until anyone asking it :hear_no_evil:
  • if there is interest in any of them, I’ll ask FreePBX team to put em on FreePBX repos, since I’m lazy, for now you can install them by downloading .tar.gz from github :peace_symbol:
  • Ther’s a lack of documentation. I apologize :raised_hands:
  • PR’s are welcome! :sunflower:

[edit] modules are now signed, links changed to release github page, with signed modules


A “right way” to do this is to sign some paperwork and donate them to the FreePBX project. @tm1000 (IIRC) maintains the “more official than just laying around on the Internet” GitHub archive for these kinds of submitted packages. Someone else was talking day-before-yesterday about the way to donate code to the cause, but I can’t find the link. @PitzKey (I think) found the right Wiki reference, but the process is pretty simple:

  1. Sign the paperwork
  2. Submit the package to the project through a Feature Request.
    It’s kind of a pain, but it’s worth it for code that meets (the least) the occasional need.

In the meantime, while you’re waiting for your module submissions to be dealt with in the Feature Requests queue, you can sign the dev paperwork and just sign your modules directly with Sangoma. Allowing anyone to install them and not have the signature errors.

One guarantees your modules can be used without making people worry about errors right now. The other has to wait for approval and then integration before they even see the light of day for people.

Hi there. They’ve already signed the agreement and they’ve been partners with Sangoma for a couple of years now. They’ve also submitted a few patches as well

You can find their group by searching nethserver


Well then, that makes my previous comment moot. All the work has been done.

Well outside of, go sign your modules man :slight_smile:

1 Like

We maintain those because we need them, they aren’t just laying around. If there is any interest in those, they can be putted on repos, otherwise I 'd continue to maintain those without waste @tm1000 time by checking my PRs :joy:

I’m doing it

done :slight_smile:


Hello Stell0,
I am testing the Blind Transfer Return module and having some issues with it.

I downloaded the tarball (version 1.1.6), installed the local module and enabled it. The version shown in module admin is 1.1.5 and FreePBX is throwing security error that two files of this module have been tampered. I removed and re uploaded the module using the url option, with the same result.

I will be deploying this module on two production servers when I’m finished testing.

Can I recommend using our versioning.

So the module.xml on the google tts says it supports “14” so version 14.0.1 for example. This will allow people to know the minimum version your module will work with,

Note too in 15 we removed the methods backup/restore. More on implementing backup 15
Database management has gotten a bit easier too.

There is a new version (1.1.7) with correct version and signature. This version also include @tm1000 pull request with A LOT(!) of fixes

I have fixed version in module.xml as suggested by @jfinstrom (I’ll do it also to other modules)

I couldn’t remove backup() and restore() because they are declared and needs to be implemented, maybe 14 framework still needs them?

I’ve this error if I try to remove them:

PHP Fatal error:  Class FreePBX\modules\Returnontransfer contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (FreePBX\BMO::backup, FreePBX\BMO::restore) in /var/www/html/freepbx/admin/modules/returnontransfer/Returnontransfer.class.php on line 137
Whoops\Exception\ErrorException: Class FreePBX\modules\Returnontransfer contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (FreePBX\BMO::backup, FreePBX\BMO::restore) in file /var/www/html/freepbx/admin/modules/returnontransfer/Returnontransfer.class.php on line 137
Stack trace:
  1. Whoops\Exception\ErrorException->() /var/www/html/freepbx/admin/modules/returnontransfer/Returnontransfer.class.php:137

Yeah if/when you branch to 15 those go away

1 Like

Hello Stell0

Reinstalled the modules and so far it’s working fine.
Thank you for the module.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.