Skip to content
Newer
Older
100644 242 lines (197 sloc) 12.5 KB
9568830 @benlangfeld Begin to bring the changelog up to date with progress on Adhearsion 2.0
benlangfeld authored
1 # develop (2.0.0.head)
4ad7b4e @benlangfeld [CS] Fix changelog formatting
benlangfeld authored
2
3 ## Major architectural changes
4 * Adhearsion is no longer a framework for creating Asterisk applications, and it does not know anything about the specifics of Asterisk. Adhearsion now makes use of the Punchblock library which abstracts features from common telephony engines. Supported engines are now:
5 * Asterisk 1.8+
6 * Voxeo Prism 11 w/ rayo-server
7 * Adhearsion now makes use of libraries for advanced concurrency primitives such as Actors, meaning Adhearsion is no longer compatible with Ruby 1.8. Officially supported Ruby platforms are:
8 * Ruby 1.9.2+ (YARV)
9 * JRuby 1.6.5+ (in 1.9 mode)
10 * Rubinius 2.0 (on release, in 1.9 mode)
11 * The old components architecture has been deprecated in favour of Adhearsion::Plugin (further details below).
12 * Theatre has been replaced in favour of a girl_friday and has-guarded-handlers based event queueing/handling system (further details below).
13
14 ## Plugin system
15 * Translate STOMP gateway component to a plugin and remove the component generators entirely
16 * Move ami_remote component to ahn-asterisk plugin
17 * Remove XMPP gateway component
18 * Translate simon_game component to plugin
19 * added support to create a new Adhearsion::Console method via plugin
20 * Update generated app Gemfile for components -> plugins, remove gem component loading config, stop including components in generated app, remove component create/enable/disable CLI commands, fix some component related documentation
21 * Remove the component spec framework (unused)
22 * delete initializer for components. This should be done by ahn-components
23 * update method name. components dialplans now are loaded in the ahn-components plugin
24 * moved deprecate Adhearsion::Components to the dedicated gem ahn-components
25 * FEATURE Adhearsion plugins first commit
26
27 ## Dialplan changes
28
e485747 @benlangfeld [CS] Further fixes to CHANGELOG formatting
benlangfeld authored
29 ### Media output
30 * Output functions reworked to to take advantage of Punchblock features, though method signatures have been kept similar.
31 * Output now allows for usage of String, Numeric, Time/Date, files on disk, files served via HTTP, and direct SSML. All non-file types are played via TTS.
32 * Output types are automatically detected and played accordingly
4ad7b4e @benlangfeld [CS] Fix changelog formatting
benlangfeld authored
33
e485747 @benlangfeld [CS] Further fixes to CHANGELOG formatting
benlangfeld authored
34 ### Input (DTMF and ASR)
35 * The same output types and recognition are now used in the input prompts too
36 * Input currently is DTMF-only using the #input, #wait_for_digit and #stream_file methods compatibly with preceding versions
4ad7b4e @benlangfeld [CS] Fix changelog formatting
benlangfeld authored
37
e485747 @benlangfeld [CS] Further fixes to CHANGELOG formatting
benlangfeld authored
38 ### Menu system
4ad7b4e @benlangfeld [CS] Fix changelog formatting
benlangfeld authored
39
40
e485747 @benlangfeld [CS] Further fixes to CHANGELOG formatting
benlangfeld authored
41 ### Recording
4ad7b4e @benlangfeld [CS] Fix changelog formatting
benlangfeld authored
42
43
e485747 @benlangfeld [CS] Further fixes to CHANGELOG formatting
benlangfeld authored
44 ### Conferencing
4ad7b4e @benlangfeld [CS] Fix changelog formatting
benlangfeld authored
45
46
e485747 @benlangfeld [CS] Further fixes to CHANGELOG formatting
benlangfeld authored
47 ### Bridging
4ad7b4e @benlangfeld [CS] Fix changelog formatting
benlangfeld authored
48
e485747 @benlangfeld [CS] Further fixes to CHANGELOG formatting
benlangfeld authored
49
50 ### Call routing
4ad7b4e @benlangfeld [CS] Fix changelog formatting
benlangfeld authored
51
52
53 ## Eventing system
54 * Removed Theatre
55 * Event namespaces no longer need to be registered, and events with any name may be triggered and handled.
56 * The DSL has been simplified. For example, AMI events may now be handled like:
57
58 asterisk_manager_interface do |event|
59 ...
60 end
61
62 asterisk_manager_interface :name => /NewChannel/ do |event|
63 ...
64 end
65
66 ## Logging
67 * MINOR added call_id to call logs
68 * MINOR added trace level
69 * MINOR logging config outside initializer
70 * MINOR use a predefined logger method name. This must be done in a config initializer once we are using plugins
71 * [FEATURE] switch logging mechanism from log4r to logging
72
73 ## Removal of non-core-critical functionality
74 * Removed all asterisk specific functionality
75 FIXME: What functionality?
76 * ConfirmationManager
77 * Asterisk AGI/AMI connection/protocol related code
78 * Asterisk `h` extension handling
79 * Removed LDAP, XMPP, Rails, ActiveRecord and DRb functionality and replaced them with plugins.
80 * Extracted some generic code to dependencies:
81 * future-resource
82
83 ## Miscelaneous
84 * automatically_answer_incoming_calls has been replaced with automatically_accept_incoming_calls, which when set to true (as is the default), will automatically indicate call progress to the 3rd party, causing ringing. `answer` must now be used explicitly in the dialplan.
85 * Removed a lot of unused or unecessary code, including:
86 * Call routing DSL
87 * FreeSWITCH support. This will be added to Punchblock at a later date).
88 * TODO: Defined an Adhearsion code style guide and implemented it across the codebase (see http://adhearsion.com/style-guide).
89 * TODO: Defined some project management guidelines for Adhearsion core (see http://adhearsion.com/contribute).
90 * TODO: Transferred copyright in the Adhearsion codebase from individual contributors to Adhearsion Foundation Inc, the non-profit organisation responsible for supporting the Adhearsion project.
91 * TODO: Dual-licensed as LGPL and MIT.
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
92
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
93 # 1.2.1 - 2011-09-21
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
94 * Removed the restful_rpc component since it is now in a gem.
95 * Allow overriding the path to a component in the testing framework so as to support new style components (lib/)
96 * Added a GUID to the default recording filename to ensure uniqueness
97 * ECONNRESET exceptions are now handled as a call hangup
98 * Fixed escaping of TTS strings containing commas when used with Cepstral via #speak
99 * Made logging exceptions the responsibility of the framework rather than the app, so that this may not be disabled
100
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
101 # 1.2.0 - 2011-08-14
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
102 * New method: #play_or_speak allows playback of an audio file with TTS fallback
103 * #input now takes :speak as a hash for TTS prompt or fallback
104 * New method: #speak provides abstracted TTS rendering for UniMRCP and Cepstral
105 * Allow leading "+" in Caller ID (E.164 format)
106 * Allow using --pid-file without "daemon" for JRuby
107 * Allow passing a block to #input to enable caller to detect when enough digits are collected.
108 * Fix some issues with starting apps outside of their directory, generally related to Bundler/gem environments
109 * Allow configuration of logging outputters/formatters
110 * Using ahn_log in a dialplan context or on a call object logs to the call's context, named after its unique identifier
111 * New method: #record_to_file with more useful return values
112
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
113 # 1.1.1 - 2011-06-13
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
114 * Command#play now returns false if audio failed to play
115 * Added new commands (#play!, #interruptible_play!, #input!) which raise PlaybackError if audio fails to play
116
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
117 # 1.1.0 - 2011-05-29
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
118 * Added interactive call control console: ahn start console <path>
119 * Added centralized exception handler through eventing system
120 * Support for using ahn_hoptoad to send Adhearsion exceptions to Hoptoad
121 * Adhearsion.active_calls can now use hash syntax to find calls by ID
122 * Added Adhearsion::Calls#to_h
123 * Add a Monitor to synchronize access to an AGI connection
124
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
125 # 1.0.3 - 2011-05-05
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
126 * Fix the play() command regression when passing an array of strings. This was breaking the SimonGame
127 * Deprecate ManagerInterface#send_action_asynchronously
128
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
129 # 1.0.2 - 2011-04-09
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
130 * Fix rcov Rake task
131 * Add Ben Langfeld as an author (Thanks, Ben!)
132 * Add "rake" as a runtime dependency
133 * Remove usage of BEGIN blocks (for Rubinius; CS)
134
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
135 # 1.0.1 - 2010-02-22
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
136 NOTE for Ruby 1.9 users: The behavior of Ruby 1.9 and case statements has changed
137 in a way that renders NumericalString objects incompatible with
138 case statements. The suggested workaround is to cast the NumericalString
139 to a string and then compare. Example:
140
141 obj = NumericalString.new("0987")
142 case obj.to_s
143 when "0987" then true
144 else false
145 end
146
147 Or, if you need to ignore the leading zero:
148 case obj.to_i
149 when 987 then true
150 else false
151 end
152
153 See https://adhearsion.lighthouseapp.com/projects/5871/tickets/127-ruby-19-and-numericalstring-comparisons-in-case-statements
154 * Add say_chars command.
155 * Add say_phonetic command.
156 * Update play_time to accept format and timezone paramenters. This allows you to read back any particular section of the Time object. (i.e. Using format => 'IMp' would result in "eleven twenty-three" being said.)
157 * Update play_time to allow using Date objects.
158 * QueueAgentsListProxy#new now returns an AgentProxy instance if the agent was added successfully.
159 * Add state_interface parameter to QueueAgentsListProxy#new. This allows you to specify a separate interface to watch for state changes on. (i.e. Your agents log in with Local channel extensions, but you want to check their direct SIP exten for state.)
160 * Fixed issue with Queue#join! that would raise a QueueDoesNotExist error if the call was completed successfully.
161 * Add support for AGI script parameter to Queue#join!
162 * Migrate unit tests to RSpec 2
163 * New components now include RubyGems skeleton files
164 * Fix support for setting Caller ID name on AGI dial() command
165 * Generate new apps with Bundler support, including auto-requiring of all gems
166 * Update component testing framework to RSpec 2.x and mock with rspec
167
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
168 # 1.0.0 - 2010-10-28
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
169 * Fall back to using Asterisk's context if the AGI URI context is not found
170 * Enable configuration of :auto_reconnect parameter for AMI
171 * Replace all uses of Object#returning with Object#tap
172 * Add support for loading Adhearsion components from RubyGems
173 * Fix long-running AMI session parser failure bug (#72)
174 * Support for Rails 3 (and ActiveSupport 3.0)
175
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
176 # 0.8.6 - 2010-09-03
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
177 * Fix packaging problem so all files are publicly readable
178 * Improve AMI reconnecting logic; add "connection refused" retry timer
179 * AGI protocol improvements: parse the status code and response text
180
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
181 # 0.8.5 - 2010-08-24
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
182 NOTE: If you are upgrading an Adhearsion application to 0.8.5, note the change
183 to how request URIs are handled. With 0.8.4, the context name in Asterisk was
184 required to match the Adhearsion context in dialplan.rb. Starting in 0.8.5 if
185 an application path is passed in on the AGI URI, it will be preferred over the
186 context name. For example:
187
188 [stuff]
189 exten => _X.,1,AGI(agi://localhost/myapp)
190
191 AHN 0.8.4- will execute the "stuff" context in dialplan.rb
192 AHN 0.8.5+ will execute the "myapp" context in dialplan.rb
193
194 If you followed the documentation and did not specify an application path in
195 the URI (eg. agi://localhost) you will not be impacted by this change.
196
197 Other changes:
198 * Added XMPP module and sample component. This allows you to easily write components which utilise a persistent XMPP connection maintained by Adhearsion
199 * Prefer finding the dialplan.rb entry point by the AGI request URI instead of the calling context
200 * Added :use_static_conf option for "meetme" to allow the use of disk-file-managed conferences
201 * Logging object now shared with ActiveRecord and Blather
202 * Fixed a longstanding bug where newlines were not sent after each AGI command
203 * Fixed parsing of DBGet AMI command/response
204 * Better shutdown handling/cleanup
205 * Attempt to allow the AMI socket to reconnect if connection is lost
206 * Improved support for Ruby 1.9
207 * Numerous smaller bugs fixed. See: https://adhearsion.lighthouseapp.com/projects/5871-adhearsion/milestones/76510-085
208
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
209 # 0.8.4 - 2010-06-24
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
210 * Add configurable argument delimiter for talking to Asterisk. This enables Adhearsion to support Asterisk versions 1.4 (and prior) as well as 1.6 (and later).
211 * Fixed using ActiveRecord in Adhearsion components
212 * Daemonizing no longer truncates the Adhearsion log file
213 * Add support for using ActiveLdap
214 * Misc improvements to support Asterisk 1.6 changes
215 * Escape commands sent to Asterisk via AGI
216 * Manager Events now work when daemonized
217
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
218 # 0.8.3 -
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
219 * The "uniqueid" call channel variable available in dialplan.rb is now *always* a String
220 * Renamed interruptable_play to interruptible_play and made interruptible_play() public instead of protected.
221 * Fixed an Asterisk Manager Interface parsing issue in which colons sometimes got stuck into the key name.
222 * AGI "request" variable coercer will not blow up if no request is given. (Helps in testing with netcat/telnet)
223
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
224 # 0.8.2 -
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
225 * When a call hangs up, Adhearsion will no longer show random exceptions (that were okay) and instead allows the user to rescue a Hangup exception.
226 * ManagerInterfaceResponse now include()s DRbUndumped, allowing send_action() to be called directly over DRb.
227 * Fixes an inconsequential bug when CTL-C'ing Adhearsion.
228
36f5135 @benlangfeld Add release dates to changelog where known
benlangfeld authored
229 # 0.8.1 - 2009-01-29
513f9fa @benlangfeld Nicely formatted markdown changelog
benlangfeld authored
230 * The sandbox component now comes
231 * Minor bug fixes
232
233 # 0.8.0 rev 2
234 * Added a few non-critical files to the .gemspec. They were ignored
235
236 # Notes from before 0.8.0:
237 * (NOTE: This is obviously not a comprehensive list of pre-0.8.0 work. 0.8.0 was a complete rewrite of the previous version)
238 * Adding a deprecation warning about Fixnum#digit and Fixnum#digits
239 * Removed the AMI class and replaced it with the ManagerInterface class.
240 * The old AMI high-level instance methods are available in the new ManagerInterface class, but a deprecation warning will be logged each time they're used. When the SuperManager class is implemented, they'll be removed entirely.
241 * Moved Theatre into Adhearsion's lib folder.
Something went wrong with that request. Please try again.