module Sessions class Pause def initialize(session) @session = session end def call cancel_timeout_job @session.pause! if @session.may_pause? # Slate giĆ  su path (create_path + alwaysAvailable): stop RTMP basta, senza patch API. log_event("paused") SessionChannel.broadcast_message(@session, { type: "command", action: "pause_stream" }) SessionChannel.broadcast_message(@session, { type: "stream_event", event: "paused" }) Streams::Overlay::Refresh.call(@session) @session end private def cancel_timeout_job return if @session.timeout_job_id.blank? Sidekiq::ScheduledSet.new.find_job(@session.timeout_job_id)&.delete @session.update!(timeout_job_id: nil) end def log_event(type) @session.stream_events.create!(event_type: type, occurred_at: Time.current, metadata: {}) end end end