Am I on the right path

I am going to be developing an * based solution and I am just wondering if I am on the right path as to what components I should be using.

I want offload all control and logic to an external server. I believe the AMI will work for this. From what I have read I can have a TCP connection to my * server and I will receive events when they are generated on the channels.

I am looking to receive events such as:
– new inbound call
– result of an outbound dial request
– termination of session

I am looking to issue commands (actions) such as:
– play audio file to a specific channel
– initiate an outbound call
– create a meetme conference
– terminate a session

Will the AMI allow me to do this type of stuff, or do I need a combination of AMI and AGI?

Thanks in advance!

p.s. I have already read through the AMI info on the WiKi. I did NOT see anything that would lead me to believe that I can control playing audio or creating meetme conferences via that interface… hence my question here.