Fetching contributors…
Cannot retrieve contributors at this time
61 lines (49 sloc) 2.55 KB

Tropo AGItate - Release Notes


  • Make AGItate compatible with Ruby 1.9


  • Fix bug where dials with an empty duration string would result in a 0-second call (thanks John Dyer for finding/fixing this)


  • Ask now handles the options hash propery respecting symbols as keys


  • Allow application arguments to be quoted as a single string like: "arg1,arg2,arg3". This is allowed by Asterisk and is generated by Asterisk.NET.
  • Since the above change breaks using Playback for TTS strings, introduce a Tropo-specific "Say" application: EXEC Say {"prompt": "Hello, LSRC!"}


  • Add unit tests to cover all AGI primitives documented here:
  • Overhaul the options parsing to be more exactly in line with Asterisk
  • Unify error handling and protocol response messages
  • Add lots of unit tests to emulate behavior seen from various AGI clients
  • Return sane error messages for applications that do not make sense on Tropo: DATABASE GET/PUT, SET CONTEXT/EXTENSION/PRIORITY, TDD MODE, SEND IMAGE/TEXT, RECEIVE TEXT/CHAR etc.
  • Add support for most remaining AGI primitives (exceptions: The SPEECH primitives, SAY ALPHA/DATE/DATETIME etc. are not yet implemented)


  • Make unit tests more idempotent
  • Make unit tests less magical
  • Add support for Flexmock
  • Rudimentary answering machine detection


  • Add unit test for outbound callerID functionality
  • Provide has_key? method to ensure proper handling
  • Make sure header keys are strings
  • No need to work with a copy of the channel vars now
  • Make sure to encode as JSON in case we hit a nested channel variable
  • Avoid exception if no input is received
  • Work around Tropo Ruby shim bug with _parseTime
  • Better backtrace logging


  • Add framework for "magic" channel variables. This supports things like CALLERID(all) vs. CALLERID(name) vs. CALLERID(num) that all have overlap in Asterisk. We now try to do the right thing when setting or reading each variation. More special variables can be easily added.
  • Enhanced Dial compatibility: Allow setting the CallerID on outbound calls, set DIALSTATUS based on Tropo response and clean up parsing of dial string
  • Set the default AGI port if unspecified in the YAML
  • Update to RSpec 2
  • Allow detecting the Tropo dialed number for incoming calls (agi_dnid)
  • Fix fatal missing error on SIP failover failure
  • Update unit tests for new functionality; fix broken unit tests
  • Rspec tests now require JRuby v1.5.x or better