CMI5 is the new generation of SCORM. It defines:
So CMI5 involves 3 components which need to communicate with each other during all the launching process. A soon as a learner tries to open an elearning content on the LMS:
If you are in the processes of developing a CMI5 compliant LMS, you have a few options to implement the launch mechanism:
All these options have their own benefits and drawbacks which we are not going to detail here. This documentation page focuses on the 3rd option, showing how you can make a custom integration between your LMS and TRAX LRS to support CMI5. Indeed, TRAX LRS provides all you need for make this kind of integration:
In order to allow the LMS to communicate with TRAX LRS, you must create a client in TRAX LRS
and give it the xapi/all
and cmi5/tokens
permissions.
Then, the LMS can use the CMI5 Token Delivery API to request a CMI5 token.
CMI5 tokens should be automatically deleted at the end of CMI5 sessions.
However, this would suppose that elearning contents always send a terminated
statement at the end of their session,
which is clearly not a reliable assumption as terminated
statements are frequently blocked by browsers.
So in order to remove expired tokens, you must configure a CMI5 Tokens Deletion job in TRAX LRS:
Access > API Consumers > CMI5 Tokens Deletion
page.[+Job]
button.Tokens created until
(e.g. One hour ago
).Scheduling
(e.g. Every minute
).[Save]
button.Be sure that a CRON job is configured for your LRS in order to run the scheduled tasks. Check-out the installation page if you don't know how to to configure it.
TRAX LRS provides CMI5 specific endpoints with a set of additional security rules.
403 error
.403 error
.403 error
.403 error
.403 error
.403 error
.At any time, your LMS may need to know the status for a given learner and CMI5 content.
You can achieve this with a GET
request on the standard Statements API
and the following parameters:
Parameter | Description |
---|---|
agent | The agent having launched the CMI5 activity (JSON encoded). |
activity | The ID of the CMI5 activity (IRI). |
registration | The registration ID (UUID). |
If you want to build some reporting features in your LMS, you need to get CMI5 data in a more efficient way.
For example, you could get all the statements of the last CMI5 sessions on a regular basis in order to maintain a CMI5 status on the LMS database.
You can achieve this with a GET
request on the standard Statements API
and the following parameters:
Parameter | Description |
---|---|
activity | Use https://w3id.org/xapi/cmi5/context/categories/cmi5 to target the CMI5 statements. |
related_activities | Use true because the above activity is in the context of the statements. |
ascending | Use true to get statements from the older to the newer. |
limit | To limit the number of returned statements. |
The LRS response will include a more
property which can be used to get more paginated statements.