A session is the full verbal exchange between the platform and the user to determine an intent.
This figure shows how a classical session happened:
An event starts the session, typically it can be when the hotword is detected, or a button is pressed and the client sends the
startSession message on the MQTT bus.
The Dialogue Manager will keep the session alive and ask for missing slots until the user provides them or cancels the order.
Finally the complete intent is sent to the handler code
The session can also be started by the client code itself, as shown in the first step of Figure 2. The client code can also end the session with the
endSession message immediately after getting its expected intent. If it doesn’t send such end message, the Dialogue Manager will end the session automatically after a timeout of few seconds (the duration of this timeout can be configured in the config file).