- 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 calledextra_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 constantAdhearsion::Call::ExpiredError
in injectedAdhearsion::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 ofArgumentError
- API Breakage: Setting queue agent return method to an invalid value will now raise an
ElectricSlide::CallQueue::InvalidRequeueMethod
exception instead ofArgumentError
- API Breakage: Setting queue connection type to an invalid value will now raise an
- 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
- ¯\(ツ)/¯