Port Jason's T2S work into trunk when stable. Jason? Allow setting of CallerID names in dial(). This is seemingly Asterisk version dependent. :( Port in new Micromenus browser GUI Support ITAD routing using ENUM lookups. Major file structure refactoring! Port in RAI's AMI work. Support a way of playing digits Implement the notifications DSL using OpenWFEru as a base. Add the ability to auto-require gems when Adhearsion boots by specifying them in adhearsion.yml. Implement PBX[] access to the Asterisk database. In an AGI session this should use DATABASE PUT/GET while elsewhere it should use AMI if a connection exists. Here are some examples: - PBX['SIP']['Registry'].each { |user| p user } - PBX['foo'] = Time.now # => Should use Marshal.dump - PBX['foo'].delete! Implement an AMI client in Erlang that Ruby can talk to and dispatch/queue events. Allow setting autohangups after a certain duration (SET AUTOHANGUP seconds) Create more framework hooks! Need some especially for after_helpers_load() Support logging to the Asterisk console with the use of the VERBOSE AGI command. Support calling normal Asterisk AGI scripts from Adhearsion. Create a CommandFactory module which takes the same arguments as all dialplan methods, but returns the String that should be sent to Asterisk. This would be really helpful for compiling commands for use elsewhere. This would greatly clean up the Asterisk module. Port in RAI's Rails app initialization and routing integration. Develop a reasonable RSpec testing framework for Adhearsion. Have AGI server optionally powered by Mongrel's C-based TCP server. Port Micromenus server over to Camping Port the Perl Least Cost Routing Engine (Asterisk::LCR) to Adhearsion. http://search.cpan.org/~jhiver/Asterisk-LCR-0.08/lib/Asterisk/LCR.pm Make ActiveRecord::Migration's create_table() syntax sexier by wrapping a method_missing around calls to TableDefinition#column. See http://errtheblog.com/post/2381. Below is an example: create table :users do foreign_key :group string :name timestamps! end Support storing call caches with memcached if available. Have Adhearsion's migrations use a version system. Instead of having just one migration.rb file, migrations should be kept with different versions and a schema which specifies the version. Adhearsion CLI. Should use the 'breakpoint' library's DRb extension to run an irb session in an external Ruby interpreter (Adhearsion's) Allow config files to use ERb Let record() take a block of functionality to record. This feature will probably only be available when an AMI connection is present. Build in hunt-group support into dial(). Basically, traverse a list of people to dial and checking for timeouts. When a timeout occurs, try the next person. Can optionally loop. Allow the multi_messenger.rb helper's event handlers to be declared somewhere other than the file itself (e.g. config/helpers/ directory) Package standard ActiveRecord with KirbyBase for extremely portable development databases. Use Piston with svn:externals to keep third-party libraries up to date in the repository When "ahn" is ran, it should check for whether the current directory is actually an Adhearsion app before trying to intialize. At the moment it says it can't find the adhearsion.log file. This is probably pretty strange when first encountered. If no Adhearsion app is found, it should simply print out the usage information.