Creation date 22/01/2019
This module creates a stopwatch for timekeeping on the device screen. clerk.
The following OTRS framework versions are supported:
The following modules are required:
- InBox Core 6.28.7 or superior
- InBox Library 6.5.6 or superior
- Perl module: URI::Encode
The following operating systems are required:
Third Party Software
The following third party software is required:
- Server Socket.io
bin/otrs.Console.pl Admin::Package::Install /path/to/InBox\ TicketTimer 6.6.12.opm
To install or upload the Socket.io server, follow the steps below:
- Install Node.js and npm on the server:
Add NodeSource to yum repository
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
Install Node.js and npm
yum install -y nodejs
- Install required node modules:
Clone the repository and access the server-socket.io folder, or download just the app.js and package.json files to the server.
Access the folder where these files are located and execute the commands below:
Install required node modules
Install module to start server
npm install forever -g
Start server socket.io
forever start app.js
To stop the server run
forever stop http_server.js
Test if the server has the command:
Or accessing in the browser
Set the maximum time for the stopwatch.
Set the option to close the attendant's previous timers when enabling a new timer.
Defines the Socket.io server URL.
Using the Generic Attendant script to update ticket status through the timer.
You can use a Generic Attendant based on the custom script present in the InBox TicketTimer module ticketed “ChangeTicketsStatus”. With it, when starting a ticket timer, all other tickets from the same client will have their states changed as the state configured in the Generic Attendant.
Configuring the generic attendant
Set up a Generic Attendant to run next to the event: TicketDynamicFieldUpdate_TicketTimerSetStatus
Under “Select Tickets”, set the TicketTimerSetStatus field to “Start”.
In “Run custom module”, follow the path: Kernel::System::GenericAgent::ChangeTicketsStatus and set the parameters as follows:
|CurrentStateType||Type of state to change|
“Flag” should contain value 1 for Stopwatch Start, “NextState” will be next ticket state and “CurrentStateType” the type of tickets to change.
Once this is done, you will need to set up a second generic attendant to get back to your previous states. To do this, configure a new generic attendant to run next to the event: TicketDynamicFieldUpdate_TicketTimerSetStatus
Under “Select Tickets”, set the TicketTimerSetStatus field to: “Stop” or to “Pause” depending on your application.
In “Run custom module”, follow the path:Kernel::System::GenericAgent::ChangeTicketsStatus and set the parameters as follows:
|CurrentState||Current state of tickets|
“Flag” should contain a value of 2 for Pause or Stopwatch and “CurrentState” the name of the current state of tickets that were changed when starting the timer.
Using the Generic Attendant to stop the timer when an event is triggered in the ticket.
As an example, an event will be created for when the ticket is changed queue, the stoptimer will be stopped:
In “Execute custom module”, run the path: Kernel::System::GenericAgent::EventStopTimer
If not, add the file inbox-thirdparty/socket.io-client/dist/socket.io.js. Note: The file must be loaded on top of the file Core.Agent.TicketTimer.js.
Click the stopwatch "Start" button on the right side of the ticker screen to make the ticker time count.
Click the stopwatch “Stop” button on the right side of the ticker screen so that the ticker time stops counting.
Checking Time Reports
In order to view the time counted by the attendants through the timer and its state, it is necessary to follow the steps below: Navigate to ‘Administration > Overview’ and choose de File Management Stopwatches':
After that, the timer management screen will be displayed, where you can check the number of tickets the timer is active on, its attendant, the time counted and the status of the timer (Paused or In Progress).