Merge branch 'release/2.5.2' into develop
avoid the translator to crash
added spec for dtmf recognizer dead error
added an explanation comment
removed redundant begin block
[CS] We don't care about line length
Merge pull request #221 from comparaonline/feature/handle_dtmf_error

[BUGFIX] Avoid the translator to crash due to Celluloid::DeadActorError
[CS] Cleaner error
Changelog entry
[BUGFIX] Be more intelligent about only stripping true file extensions off filenames for playback on Asterisk 

Fixes adhearsion/adhearsion#482
[BUGFIX] RubySpeech::NLSML documents are built as a structured object now

See https://github.com/benlangfeld/ruby_speech/issues/22
Add Inch CI badge

Doc ratings
Fix the build

Something in the switch to expect() syntax has caused #should not to be defined on all objects, leaving this to be called as a method on the actor. Once these call actors are dead, however, they can't respond to this. We need to explicitly look at #alive?

Also see https://github.com/adhearsion/adhearsion/commit/11346121832ce2b3d92fb41784bbc5baaa01418a

This is pending an upgrade to RSpec 3.x
Convert specs to RSpec 2.14.8 syntax with Transpec

This conversion is done by Transpec 2.3.6 with the following command:
    transpec

* 768 conversions
    from: obj.should
      to: expect(obj).to

* 542 conversions
    from: obj.should_receive(:message)
      to: expect(obj).to receive(:message)

* 440 conversions
    from: == expected
      to: eq(expected)

* 391 conversions
    from: its(:attr) { }
      to: describe '#attr' do subject { super().attr }; it { } end

* 41 conversions
    from: lambda { }.should
      to: expect { }.to

* 40 conversions
    from: obj.stub(:message)
      to: allow(obj).to receive(:message)

* 34 conversions
    from: obj.should_not
      to: expect(obj).not_to

* 7 conversions
    from: obj.should_receive(:message).and_return { value }
      to: obj.should_receive(:message) { value }

* 4 conversions
    from: lambda { }.should_not
      to: expect { }.not_to

* 2 conversions
    from: Klass.any_instance.should_receive(:message)
      to: expect_any_instance_of(Klass).to receive(:message)

* 1 conversion
    from: collection.should have(n).items
      to: expect(collection.size).to eq(n)

* 1 conversion
    from: expect { }.not_to raise_error(SpecificErrorClass)
      to: expect { }.not_to raise_error

For more details: https://github.com/yujinakayama/transpec#supported-conversions
It's 2014 peoplez
Handle a corner case with recognition better

If we run a series of recognition requests and answer one correctly, and then hang up in the middle of the second (or otherwise cause the recognition to return in the 'INTERRUPTED' state) the complete method reads the old value for RECOG_COMPLETION_CAUSE and attempts to parse an empty string, throwing an exception. Handle a message coming back from a recognition request that is in the 'INTERRUPTED' state in a manner that doesn't cause an unchecked exception to be thrown (thus crashing the call and preventing any post-call actions from occurring)

Add changelog entry

Refactor for style guidelines
Merge pull request #230 from runningferret/feature/handle_interrupted_recog_take2

Handle a corner case with recognition better
Pin to Celluloid 0.15.x due to possible incompatibility with Celluloid 0.16

Pending investigation
[BUGFIX] Fix possible infinite blocking

Avoid cases where executing AGI commands (reported as sending SIP messages) might block indefinitely due to a race condition in fetching their response value.

Requires a fix to Celluloid: https://github.com/celluloid/celluloid/issues/456
Merge branch 'feature/reliable-agi-response-wait' into develop