Session Controller
The SessionController service allows for creating, listing and removing openOBD sessions. It is the service implementation for managing Sessions.
Services
Below, the available services for the SessionController are listed. They include a brief description describing the goal of each service and their relation with each other. The figure below gives a brief overview of the required steps to start a session using SessionController services.
sequenceDiagram
Client->>Server: getSessionControllerToken(Authenticate)
Server->>Client: SessionControllerToken
Client->>Server: startSessionOnTicket(TicketId)
Server->>Client: SessionInfo
Note over Client,Server: openOBD session
Pre-requisites
Before starting an openOBD session, the client is required to prove that it is authenticated to the SessionController.
This is done using the getSessionControllerToken service. The client is required to send their Partner API credentials in the form of the
Authenticate message. When valid the credentials are valid the SessionController sends a
SessionControllerToken message as response confirming the client credentials and letting the client know that it is
authenticated to the SessionController.
Starting a session
The startSessionOnTicket service is used to start an openOBD session on a ticket. It is the primary method of starting an
openOBD session. After the creation of a session all available service offered by openOBD can be using to perform the desired diagnostic procedure.
For development purposes the service startSessionOnConnector is used. This service should NOT be used for performing diagnostic
services commercially since using this service an openOBD session can be started without a ticket. This means that the performed service will not be charged.
Stopping a session
To stop a currently active or available openOBD session the service interruptSession. This service is meant to be used to
abruptly stop a session. In situations where the client wants to stop a session irrespective of whether the desired diagnostic service was successfully carried
out or not.
Note
The service interruptSession should NOT be used to be normally stop a session since it does not indicate that the performed
diagnostic service during session was successfully carried out or not.
Managing sessions
As an openOBD user it should be possible to manage current sessions via the client implementation. The services getSession
and getSessionList allow for this possibility. The former allows for retrieving a single openOBD session on the basis of the
requested SessionId. The latter allows the client implementation to retrieve all existing openOBD sessions.