In the past, i used to be a devote of GUI (Elastix.Freepbx, Ect). But i stopped to use those products for several reasons like :
You are tied to do what the GUI allow you do to.
Very difficult to debug the any dial plan issue.
If the system start fail unexpectedly, you will have a hard time debuging your problem.
Things that are pretty simple to archived in plain Asterisk are a big headache to archived in those GUI.
and the biggest reason you never will learn how Asterisk works, until you start to write your own dial plan and configs.