The LTI Delivery extension allows test-takers to take a delivery (delivered test) via LTI
The endpoint for this service to proctor a specific delivery is:
https://YOUR_DOMAIN/ltiDeliveryProvider/DeliveryTool/launch?delivery=YOUR_DELIVERY_URI
or
https://YOUR_DOMAIN/ltiDeliveryProvider/DeliveryTool/{"delivery":"YOUR_URI"}(base64 encoded)
This link can retrieved using the LTI button in the deliveries section in the TAO admin user interface.
Alternatively a configurable link can be used by omitting the delivery parameter
https://YOUR_DOMAIN/ltiDeliveryProvider/DeliveryTool/launch
In this scenario the instructor would need to call the LTI service first, and will be presented with a list of deliveries. Once he has chosen one of these deliveries it can no longer be changed. Test-takers subsequently clicking on the same link (as identified by Resource ID) will start the delivery chosen by the instructor.
The expected roles are:
Learner
for people taking a testInstructor
for people configuring a link
Custom parameters:
max_attempts
Overrides the number of executions allowed on the delivery. Expects a positive integer value or 0 for unlimited attempts. Attempts on LTI calls are calculated perresource_link_id
instead of per delivery.
Return Values:
log message
will contain the status of the delivery execution- 100 for an active delivery
- 101 for a paused delivery
- 200 for a finished delivery
- 201 for a terminated delivery
These instructions assume that you have already a TAO installation on your system. If you don't, go to package/tao and follow the installation instructions.
If you installed your TAO instance through package/tao,
oat-sa/extension-tao-ltideliveryprovider
is very likely already installed. You can verify this under Settings -> Extension
manager, where it would appear on the left hand side as ltiDeliveryProvider
. Alternatively you would find it in
the code at /config/generis/installation.conf.php
.
Note, that you have to be logged in as System Administrator to do this.
Add the extension to your TAO composer and to the autoloader:
composer require oat-sa/extension-tao-ltideliveryprovider
Install the extension on the CLI from the project root:
Linux:
sudo php tao/scripts/installExtension oat-sa/extension-tao-ltideliveryprovider
Windows:
php tao\scripts\installExtension oat-sa/extension-tao-ltideliveryprovider
As a system administrator you also install it through the TAO Extension Manager:
- Settings (the gears on the right hand side of the menu) -> Extension manager
- Select ltiDeliveryProvider on the right hand side, check the box and hit install
A bool
-typed environment variable, controlling whether AGS score should be resent if it fails to be sent.
"false"
– the application won't try to resend another request when it fails. Default behavior."true"
– the application will try to resend requests until the number of max retries is reached.
Description: specifies time (in seconds) for a test taker to wait before the page is reloaded when waiting in LTI queue
Possible values:
- Any numerical value (> 0)
Description: specifies time (in seconds) to pick a random amount of seconds between 0 and relaunchIntervalDeviation
, then the random result is randomly added to or subtracted from relaunchInterval for each time the queue page is being reloaded.
The goal of this option is to prevent knocking the backend simultaneously by multiple clients.
Possible values:
- Any numerical value between 0 and
relaunchInterval
Description: a persistence that LTI delivery execution service should work based on. Should be a persistence name that's registered in generis/persistences.conf.php
Value example:
default
cache
Description: whether the 'thank you' screen should be shown once a test is passed through LTI.
It only takes effect if the custom_skip_thankyou
LTI parameter is omitted. Otherwise, it's only depends on the LTI parameter.
Possible values:
true
false
Description: if enabled, the deliveryExecutionStatus
return parameter will be included in a consumer return URL.
This parameter will always be set to a delivery execution state label.
Possible values:
true
: include the parameter in consumer return URLsfalse
: omit the parameter
Description: a factory for producing LTI messages
Possible values:
- an instance of any class that has the
getLtiMessage
method
Value example:
new oat\ltiDeliveryProvider\model\navigation\DefaultMessageFactory()
Description: a persistence that LTI result aliases should be stored in. Should be a persistence name that's registered in generis/persistences.conf.php
Value example:
default
cache
You can find the extension wiki here.