The Kaltura Application Framework (KAF) for LTI-supported LMSs adds several modules and course tools to your LMS environment.
Prerequisites
- A Kaltura account
- Partner id (“pid”), e.g., 12345678
- Admin secret, e.g., f79359d3227f45be73c181489888afc5
- A Kaltura Application Framework instance URL, for example, 12345678.kaf.kaltura.com
- LTI compliant LMS (1.x)
External Tool Integration
Please refer to your LMS knowledge base for information on how to configure an external tool on your LMS environment. It is commonly required to provide the tool URL, consumer key and secret.
The consumer key for KAF is your partner ID (e.g. 12345678). The secret is your Kaltura account Admin Secret (e.g. f79359d3227f45be73c181489888afc5).
The URL depends on the specific tool you want to set up.
My Media
The Tool URL for My Media is your KAF instance URL with URI of /hosted/index/my-media.
For example: http(s)://12345678.kaf.kaltura.com/hosted/index/my-media
Use HTTP or HTTPS to match the protocol your users are browsing to your LMS.
Media Gallery
The Tool URL for the Media Gallery is your KAF instance URL with URI of /hosted/index/course-gallery.
For example: http(s)://12345678.kaf.kaltura.com/hosted/index/course-gallery
Use HTTP or HTTPS to match the protocol your users are browsing to your LMS.
Rich Text Editor Integration
The Browse, Search and Embed module is a KAF module that integrates with the Rich-text editor and allows you to embed Kaltura content in various areas of your LMS.
To integrate with the Browse, Search and Embed (BSE) module, the LMS needs to store a unique reference for the selected item.
Content-Item-Message
If your LMS supports content-item-message (or you choose to develop the support for it in favor of the KAF integration) all you have to do is configure the external tool that is launched with a message type of ContentItemSelectionRequest.
The URL for the tool is your KAF instance URL with URI of /browseandembed/index/browseandembed.
For example: http(s)://12345678.kaf.kaltura.com/browseandembed/index/browseandembed
The consumer key for KAF, is your partner ID (e.g. 12345678) . The secret is your Kaltura account Admin Secret (e.g. f79359d3227f45be73c181489888afc5)..
After you select the content-item, KAF performs a POST form submit to the return URL that is specified in the LTI launch with a content-item-message data structure. The LMS is expected to use that data to update the content (in rich text editor, for example).
The “return_type” of the content-item-message is configurable in the “Hosted” module which basically should be one of the return types defined by the content-item-message specification, In fact, the correct value for KAF should be LtiLink as the returned content must be viewed via an LTI launch.
Custom Integration
If your LMS does not support content-item-message, please contact Kaltura Customer Care to assist you with the KAF LTI Integration.
Publish Plugin (Optional)
The Publish Plugin enables users to publish items directly from My Media to Course Galleries they have access to. If you do not integrate the Publish Plugin, you can alternatively use the Add Media option to publish items to course gallery you are in.
Since passing the Publish Plugin information is not part of LTI specification, Kaltura has defined a generic process where KAF can get this information from an LMS.
The LMS should expose a web service that KAF calls in HTTP.
Web Service Definition
You must create a web service that is called by KAF to integrate with the publish plugin, The following table describes the Web service components that should be exposed by the LMS.
Component | Description |
URL | Should be configured in the ‘ltigeneric’ tab. The configured URL is appended to the user ID value. For example, if you configured the URL to https://mylms.univ.edu/custom/kaltura-service/ and the user ID is “student1”, the actual URL that will be requested would be: https://mylms.univ.edu/custom/kaltura-service/student1 |
Authentication | The Web service should expect an access token in a custom HTTP header named “auth_code”. The value of the custom HTTP header is a value generated by the LMS, which is sent in every LTI launch to KAF in a custom LTI parameter named “custom_auth_code”. |
Output | The web service should return the membership data of the user in the following JSON format: "id":"admin", // internal user ID "eid":"admin", // external user ID, if applicable
// array of memberships "memberships":[ { "context_id":"873b4b81-09b5-46ed-a14e-14dd6f6ec8e1", "context_title":"Biology 101", "ltiRoles":"Instructor," }, { "context_id":"873b4b81-09b5-46ed-a14e-14dd6f6ec8e2", "context_title":"Advanced Physics", "ltiRoles":"Instructor,Learner" } ] } See User Membership Data Parameters for a description of these fields. |
User Membership Data Parameters
The following table describes the user membership properties in JSON and their LTI Launch equivalents.
Property in JSON | Value Description | LTI Launch Equivalent Parameter |
Id | Internal user ID in the LMS | user_id |
Eid | External user ID in the LMS, if such is applicable. | - |
memberships | Array of course enrolments | - |
context_id | course ID | context_id |
context_title | course title/name | context_title |
ltiRoles | comma separated values of the user’s LTI roles | roles |
If you have a web-service that already answers these specifications, or have the ability to develop one, you can configure KAF accordingly, to allow KAF to pull this information and use and enable the user to publish into different Course Galleries from My Media.