What can EAGI do?

I’m confused about EAGI. I have read many postings and am not sure what its actual capabilities are. Some posts claim that it only allows you to read incoming audio from the channel and not to transmit your own audio back; others report it can.

I’m very good with PHP scripting but not yet good with Perl and definitely nowhere with C. I have some ideas for Asterisk applications - some just for fun, others more practical - that could make direct use of BOTH audio channels.

For me the Asterisk dialplan language has proved quite limiting and frustrating. For one thing it does not offer seeking in files except with ControlPlayback nor does it allow starting playback of a file at a given position; its control structure logic is limited to say the least, and it’s simply not advanced enough to handle elaborate IVR systems and custom apps.

One thing I’d like to do is write a far more advanced voicemail system that would use MySQL as a backend and allow users to make custom folders with voice tags, manage their voicemails from the Web, do wake-up calls, call you at another number to remind you of excessive voicemail counts, command the system by email to send you individual voicemails, and all sorts of other tricks. Much of this I could probably accomplish with standard AGI and Call Origination via Manager or .call files but I would still like access to the audio channel for other reasons as you’ll see below.

I also want to do some fun toy apps, like a kind of on-line Nokia composer setup where we synthesize tunes, play them back, and at the option send them to an E-mail address. I have some other silly ideas like this that I’d like to mess with. Obviously for something like the synth app I’d need access to the output channel, as synthesizing to a file, streaming then deleting becomes inefficient not to mention the delay during the file’s preparation.

How about a Podcasts-by-Phone or similar type of solution? It could download podcasts, queue them and play them. Here though we’d want a bookmarking system so that the file could be started and stopped at different locations. Asterisk’s dialplan language doesn’t let you specify where to begin playing the file. How about saving index marks in the file? Dialplan has no way to retrieve the current playback position of the file. I could handle all of this myself using PHP if I had access to the audio channel. This also holds bearing on my voicemail system - I’d like to integrate a more comprehensive dictation and message storage solution in which index marks could be placed in files. Again, not possible with dialplan language.

Some of you may be thinking, wow, useless ideas. Maybe so. But hey, that’s what open apps are about. Pushing computers to do things not thought before possible. Allowing open development. Isn’t it? Just because some find it useless doesn’t mean I don’t want to try it. :smile:

So, to sum all of it up, what can I do with EAGI? I have very little C experience beyond Hello World but I can do a LOT with PHP. Any advice, anyone, for making my dreams of VOIP applications become real with Asterisk?