Stage Collaboration Features - tsgrp/HPI GitHub Wiki
ACA allows users to collaborate within the interface by utilizing tools like zoom and teams. You can configure these integrations so that users are able to start a teams or zoom call from within the stage view.
The stage collaboration features are configured in the ACA admin.
Under the Application configuration, find the Collaboration Setting section:
Here you will have the option to turn on zoom or teams integrations, or both.
This area holds the high level configurations for these integrations.
-
Set the collaboration url. These collaboration features require the AEV socket server to be installed. If you installed the defaults according to the installation guide then the socket server will be running on port 3000. Update the url to have the correct host and port. ex: https://edge2.tsgrp.com:3000 or http://localhost:3000
-
Enable Zoom integration if desired by toggling the switch to on
- Once toggled on you will be prompted for a Client Id and authentication endpoint
- For the client Id, if you already have a zoom account setup with your application registered then go ahead and add the clientId and auth url from that account. If you need to set it up still, see the Zoom Setup via Zoom MarketPlace section below.
- Enable Teams integration if desired by toggling the switch to on
- Once toggled on you will be prompted for a Client Id and authentication endpoint
- For the client Id, if you already have an azure account setup with your application registered then go ahead and add the clientId and auth url from that account. If you need to set it up still, see the Teams Setup via Azure section below.
Now that the collaboration connection details are configured, we need to enable it for the individual stage configurations.
To do so, in the ACA admin interface, navigate to the Stage configuration you wish to enable collaboration for. Select the Stage Info section of the config in the dropdown. Then navigate to the Collaboration Settings section of this config. Flip the switch to enable overall collaboration then choose to enable zoom, teams, or both via the individual toggles.
The final piece is to configure the teams integration information that Open Content requires. To do so, add the following properties to your opencontent-override-placeholders.properties
Required by both zoom and teams collaborations
annotation.collabEndpoint= {endpoint to the collaboration server ex: http://localhost:3000}
Required by teams collaboration
teams.redirectURL= {opencontent endpoint to redirect teams to ex: http://localhost:8080/alfresco/OpenContent/annotation/teamsAuth}
teams.clientId= {client id from teams marketplace}
teams.clientSecret= {client secret from teams marketplace}
Required by zoom collaboration
zoom.redirectURL= {opencontent endpoint to redirect teams to ex: http://localhost:8080/alfresco/OpenContent/annotation/zoomAuth}
zoom.clientID= {client id from zoom marketplace}
zoom.clientKey= {client secret from zoom marketplace}
zoom.jwtTokenExpiration= {The time in seconds until the jwtToken expires}
zoom.recordMeetings=false
zoom.createMeetingRecordingObject=false
- Sign in to the Azure Portal
- If your account gives you access to more than one tenant, select your account in the upper right hand corner. Set your portal session to the Azure AD tenant that you want.
- Search for and select Azure Active Directory. Under Manage, select App Registrations and then click New registration.
- When the Register an application page appears, enter your application’s registration information:
- Name: any name you want
- Supported Account Types: Select Accounts in any organizational directory
-
Redirect URI: Choose Web and fill out the url of the path to your OpenContent plus the Teams endpoint name.
ex: http://localhost:8080/alfresco/OpenContent/annotation/teamsAuth
- When finished, click Register and you will be taken to the Overview display. Copy and save the Application (client) ID so you can use it in the ACA configuration.
- Go to Certificates & secrets and create a new client secret. Copy and save this secret because you will need it to use as an injectable in OC.
- Go to API Permissions
- You should already have the User.Read permission. Keep it.
- Select Add a permission.
- Navigate to Microsoft Graph -> Delegated Permissions -> OnlineMeetings -> Select and add the OnlineMeetings.ReadWrite permission
NOTE: For clients, the app must be made by the zoom owner that has all the users added to their zoom account. For local development you may just create one on your zoom account
Creating a Zoom Application
Here we are creating a zoom app that will allow us to access their APIs as well as interact with users zoom accounts
- Create an application in the zoom marketplace: https://marketplace.zoom.us/
- Pull open the dropdown that says Develop and click build app - select the OAuth for the app type
- Name it whatever you would like, make it an account-level app and do not publish to the Marketplace
- Now your app has been created. A few items to note here on the first page:
- You will need the clientID and Client Secret Key to use as injectables in OC and to fill in the application config in ACA.
- Then you will also need to fill out the redirect URL and whitelist URL with the url of the path to the your OpenContent plus the zoom endpoint name.
Ex: http://localhost:8080/alfresco/OpenContent/annotation/zoomAuth
- Under the scopes section of the app setup, you will want to add the following scopes:
- meeting:write:admin
- user:read:admin
Adding roles for users
Here we are adding users to a role, so they have permission to interact with the zoom application and start calls from Alfresco Enterprise Viewer
- Log in as the zoom owner
- Head to the role management section: https://zoom.us/role
- Add a role called developer
- Go to the Role Settings section for the developer role we created in step 3 as we will need to set a few of the roles:
- Under User and Permission Management - check view for Users(View user information)
- Under Dashboard - check view for Meetings(View detail information of real-time and past zoom meetings and relevant participants)
- Under Advanced Features - check edit for Zoom for Developers, Integration, and Marketplace
What to do if my collaboration endpoint is on https
You will need to import the SSL certificate into the truststore of the Java that is running OpenContent
- Get your SSL certificate
- The is the same certificate you have pointed your Collaboration Server at in the collaborationConfig.js file
- Find the Java home for the Java which is running OpenContent
- Find the truststore for this Java
- If this is a JDK the default should be at
{JAVA_HOME}/jre/lib/security/cacerts
, if it is a JRE the default should be at{JAVA_HOME}/lib/security/cacerts
- If this is a JDK the default should be at
- Import the certficate into the truststore using the java keytool command line tool
{JAVA_HOME}/bin/keytool -import -trustcacerts -alias collaborationServerCertificate -file {THE_CERTIFICATE}.cer -keystore {TRUSTSTORE_LOCATION}
- The default password for the truststore should be
changeit