Skip to content

Latest commit

 

History

History
44 lines (37 loc) · 3.81 KB

CHANGELOG.md

File metadata and controls

44 lines (37 loc) · 3.81 KB
  • Bugfix: Conditionally clear agent's call object if the current call is the same as the previous call so that call object information is not lost when the call goes from queued to connected
  • Added ElectricSlide::CallQueue#update_agent to safely update a queued agent object's attributes
  • Added ElectricSlide::Agent#update to update an agent object's attributes
  • Added ElectricSlide::Agent#callable? to check if an agent can be called
  • API Breakage: Fixed priority strategy now ensures that the same agent cannot be in multiple priorities
  • Bugfix: FixedPriority now correctly checks out agents in priority order.
  • Bugfix: Don't hand out internal CallQueue references to Agents - thread-safety
  • Change ElectricSlide::Agent #presence= method name to #update_presence. It will also accept one more parameter called extra_params, a hash that holds application specific parameters that are passed to the presence change callback.
  • ElectricSlide::CallQueue#add_agent will no longer wait for a connection attempt to complete before returning
  • Trigger an agent "presence change" callback when the agent is removed from the queue
  • Bugfix: Fix NameError exception when referencing namespaced constant Adhearsion::Call::ExpiredError in injected Adhearsion::Call#active? method
  • Provide Electric Slide with a way to check if a queue with a given set of attributes is valid/can be instantiated before Electric Slide adds it to the supervision group. The supervisor will crash if its attempt to create the queue raises an exception.
  • Add support for changing queue attributes
    • API Breakage: Setting queue connection type to an invalid value will now raise an ElectricSlide::CallQueue::InvalidConnectionType exception instead of ArgumentError
    • API Breakage: Setting queue agent return method to an invalid value will now raise an ElectricSlide::CallQueue::InvalidRequeueMethod exception instead of ArgumentError
  • List created queues by name via ElectricSlide.queues_by_name
  • Set :agent call variable on queued call when connecting calls
  • API Breakage: Queues must now be Celluloid actors responding to the standard actor API. ElectricSlide::CallQueue.work is removed in favour of .new.
  • API Breakage: Prevent an unqueued agent from being returned to the queue - this avoids calls after logging out
  • API Breakage: An agent's presence should be :after_call if they are not automatically returned to being available
  • API Breakage: Store queued/connected timestamps on calls
  • API Breakage: Remove abandoned calls from the queue
  • Set agent #call attribute to outbound call made to agent in :call mode
  • Prevent an agent from being added to the queue more than once
  • Added Travis CI configuration
  • Lots more test coverage - still bad
  • ¯\(ツ)