Skip to content

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.