==Site Administration Settings== Communication Providers in Moodle LMS are currently “experimental” and must be enabled in the experimental settings. To Enable communication providers: *Navigate to ''Site administration > Development > Experimental > Experimental settings.'' *Check the checkbox “Enable communication providers” (enablecommunicationsubsystem) *Click the Save changes button Once the communication providers experimental setting is enabled they can be configured. * Admins will then have a new section, Communication, from ''Site administration > Plugins''. From the page Manage communication providers, administrators can configure the installed communication provider plugins server for the site if desired and disable/enable the option for teachers to add custom links to messaging rooms in their courses. The currently supported communications providers are: *Custom link - Allows communication providers only requiring a URL (like Google Meet) to be linked to a Moodle LMS course *Matrix - Allows for pairing a Matrix Element room to a Moodle course, including user management. ===Matrix=== The “Matrix” communication provider allows Moodle LMS courses to have an associated room in a [https://element.io/ Matrix Element] instance, and can provide adding and removing of participants in a course to a Matrix Element room. Currently the integration supports the [https://github.com/matrix-org/synapse Synapse] Matrix homeserver. To configure your Moodle LMS instance to connect to a Synapse server you will need the URL of the homeserver, and an API Access token for a Synapse Admin user. You will also need the URL of an Element web server to use. To configure your Moodle LMS instance to use the Matrix provider: *Enter the URL of your Synapse server in the “Homeserver URL” (matrixhomeserverurl) field *Enter the Synapse server API Access token in the “Access token” (matrixaccesstoken) field *Enter the URL of the Element web server in the “Element web URL” (matrixelementurl) field *Click “Save changes” ===Synapse API Access Token Generation=== To generate an API Access Token for Moodle LMS, you need access to a terminal and an existing username and password for and administrator of your Synapse server instance. To generate an access token to be used with Moodle LMS, enter the following into a terminal: {{{ curl -XPOST -d '{"type":"m.login.password", "user":"@admin:synapse", "password":"secretpass"}' "https://synapse:8008/_matrix/client/r0/login" }}} *Where the username is: {{{ @: *Password is the admin user's regular password. }}} The returned value will look something like: {{{ {"user_id":"@admin:synapse","access_token":"syt_YWRtaW4_OQNsHwWoObhseRAWmUCs_2T29if","home_server":"synapse","device_id":"JPAIBCQCSB"} }}} The “access_token” field is the API token to use in the Moodle LMS Matrix communication provider settings. ===Course Defaults=== Moodle LMS administrators can configure the default behaviour for communications providers in their courses. *For new courses, admins can define the default provider - or specify 'none' - from ''Site administration > Courses > Default settings > Course default settings.'' If a Matrix server is set up and used on the site and the course default settings specify Matrix as the provider, Moodle will automatically create Matrix rooms for new courses and automatically create user accounts for the existing course participants when they enter the rooms. Teachers who enter the room will have moderator rights.