I want to learn asterisk architecture. How does modules and asterisk communicates and how is the flow diagram. Is there any good tutorial or book about this topic?if tutorial or book would explain subjects with diagram or flow charts this it will be better.
This is an end user forum. You need to use developer resources for questions like this.
Modules communicate using functions calls. When a module is loaded, it registers data structures describing the applications, functions, channel methods, etc., etc. that it supports, with the core of Asterisk.
I don’t believe the level of documentation you would like exists, except, possibly for very small areas.
Is there any book or like this document or training video?
There’s nothing like that, Asterisk development is very niche and most people learn by looking at an existing module that does close to what they need and figuring out how it works. There’s also the app_skel.c file in apps which is a skeleton dialplan application, that includes the code to load/unload it.