I want to create an GUI application, that would communicate with Asterisk server and provide functions, such as call forwarding, originating calls, etc.  
I wanted to use Kivy (Python GUI framework), but there here is so many different tools (AGI, AMI, FastAGI) and libraries (Pyst2, StarPy, etc.) to manage asterisk, that i don't even know where to start.  
I have already written some code (using Pyst2 asterisk manager) but I have a feeling, that this is not the best solution, as said application should be able to have multiple instances open simultaneously and AMI would be too messy for that purpose.  
Could someone give me some advice or suggestions what tools would be best to use in this case?
You can start from nice book, like ORelly "The future of telephony".
There is no way do something really valuable without know of asterisk dialplan. All that technology used for different things.
Creating touch GUI application for communication with Asterisk