Create a FreePBX module to create FreePBX modules?

Just wanted to throw this idea around. How about creating a FreePBX module that has the purpose of creating FreePBX modules? This would simplify the basic architectural design of the modules created and leave the function of the “created” module to the author while separating the construct to the FreePBX team. It could tighten up the standards and quality of modules as opposed to those being written from scratch where there is a greater chance of a programming error. The purpose would be to make it easier to create modules. It could incorporate design rules checking, etc…

Thanks, I just wanted to spark interest in this idea and throw it out there.

that’s all good, but what about the crux of what most modules do, generate various bits of dialplan based on configuration information, etc. Or often a bit more complex because them may be ‘splicing’ bits of dialplan into the the dialplan generated by other modules, …

There are clearly things that can be done, and we have been taking steps bit by bit as new releases come out, to improve the internals and make it easier, but in the end, it’s still going to require some level of programming because of how diverse the applications and things that people want to do.

There are probably some internal components such as the various functions that are used to enable the destination and extension registry that could be made into base classes such that a developer could simply extend the class in their own module, supply the needed basic queries to identify their extensions and destinations, but not have to do the rest (which today basically involves copying a function form another module and making those same tweaks). Things like that we have been and continue to do, but again, it all translates into the need to have some programming ability because it really is diverse what module developers want to do.

We’ll continue to look for these opportunities and are open to idea that might facilitate simplifying them, so all ideas are welcome.

an effort to make it easier to create modules is a good idea.

However, I’m a bit at a loss of how you would have a module ‘create’ another module. Maybe I’m missing something???

I was thinking along these lines for the Create a FreePBX module:

  1. Starts off by prompting for Module name, directory, etc… the basic building blocks of a FreePBX module.
  2. Next builds a page by prompting for - fill in spaces, builds pull-down menus, buttons, etc… each can have an action attached and an option to add/build another page.
  3. The actions can be user defined, by accessing Linux command line prompts, asterisk CLI, or user written scripts or what have you.
  4. You can have options for quering the mysql database for extension information and events.

Now not having actually created a FreePBX module myself but wanting to some day, I thought that a Create a FreePBX module would allow more people to participate who may not otherwise.

Because the module creation is controlled by FreePBX itself, strong standards and rule checking can be inforced. I guess this is like a VisualFreePBX module…