Design of bootstrap and module to asterisk linkage

I’m trying to mkake sure that I understand the design of bootstrap, and the design framework for modules as best I can before I make any other comments or suggestions for improvements.

I have probably missed it, but I can’t find anything on the website explaining the overall design linking the various blocks fit together:

Asterisk (runtime)
Databse for storing configuration information
How a module interfaces with freepbx for configuration
How a module interfaces with asterisk when being run during a call (solely AGI I assume)

I have had a go a drawing this which I’m happy to post for correction, but if there is a design doc out there, I’d really appreciate a chance to read it.


No such thing exists. Besides the wiki (which you read I assume right?). It’s mainly in our heads. Not saying that’s a good thing. Just the way it is.

That said. Please post what/how you think it all works here.

Continuing the discussion from Design of bootstrap and module to asterisk linkage:

Here’s my best attempt to date:

I’m pretty sure the arrows are incomplete, but I wondered what other major blocks are missing, and how they relate?

1 Like

That is correct…

That’s pretty good! It seems about right to me, but I’d split MySQL off into a separate box.

I think that you mean that the ‘(inc DB)’ should be a separate box?

So, am I correct in thinking that, when executed during a call, a module only needs to access:

  • agi
  • config information via freepbx->db


Depends on what the module needs to do. It could be anything.

So, could you give me an example of a module which, when used during a callm needs to access freepbx (any part) which isn’t covered by AGI and DB access? I’d appreciate a chance to look at the code for such a module so that I can understand he framework better.