-
Notifications
You must be signed in to change notification settings - Fork 344
Migration to Unified Space Meetings
- Introduction
- Pre-Migration Checklist
- What is USM (Unified Space Meeting)?
- Migrating from Spark/Space meeting to USM
- Migration Steps
- Troubleshooting
- Conclusion
This guide provides an overview of the USM (also known as Unified Space Meetings) and outlines the impacted areas, along with the necessary adjustments in these areas for the adoption of the USM. The goal of these improved meetings in a space is to provide a unified experience which is a superset of Webex Meetings and Space Meetings. The meeting experience would be the same regardless of how the meeting is joined or where it is scheduled.
Please ensure the SDK version is [email protected] or above.
USM is the combined experience of Webex Meetings (Scheduled Webex Meetings, PMR) and Space Meetings (Scheduled Space Meetings, Instant Space Meetings).
Thus, it offers the following features:
- Allows to schedule a meeting where all the members of the space will have the meeting information and the same meeting could be sent to other invitees as well.
- A meeting could be instantly started in a space without pre-scheduling it.
Please read through this comprehensive guide to learn more about USM.
Earlier in the case of spark/space meeting, not every user was required to have a license to create a meeting, instead when a user without the license would create a meeting the meeting would be created on behalf of the licensed user who created the space.
For USM meetings every user needs to have a license to create a meeting. In the case of guest users, a Service App (Machine account) will create the meeting for guests to join.
Therefore, the initial stage of transitioning from space to USM involves the management of user licenses:
- Create a Webex site and re-distribute the licenses among users.
- Create a Service App for end-to-end provisioning of users and other features.
- As part of USM, creating a guest user through Guest Issuer is being deprecated. Now the way to create a guest user would be through a Service App tied to a guest site.
Users with a Webex account can acquire their access token from the developer portal by logging in with their authentication details (username/password).
For guest users, the access token can be obtained via the Service App.
Please adhere to the guidelines below to transition from utilizing roomId/spaceId
to meetingId/sipUrl
within the SDK.
The support for direct use of roomId/spaceId
is being deprecated in webex-js-sdk and Meeting Widgets to create or join a meeting in favor of utilizing Meetings APIs to start an ad-hoc meeting. The Meetings APIs provide additional flexibility to developers. Once the meeting has been created using a licensed user/service-app, the Webex JS SDK can be utilized to join the meeting.
Before
The following code demonstrates how to create a Webex meeting using a specified room ID or space ID:
webex.meetings.create('room-id-or-space-id').then((meeting) => {
console.log(meeting);
});
After
Step-1
Create a meeting by calling the API https://webexapis.com/v1/meetings and obtain a meetingId
or sipUrl
.
- Find the full details of the API here
- Read through Integrations and Service Apps to use appropriate access tokens.
Step-2
- Check if USM is enabled -
webex.meetings.config.experimental.enableUnifiedMeetings
- Toggle to USM by calling
webex.meetings._toggleUnifiedMeetings()
if not already enabled
Step-3
The code snippet below illustrates the process of creating a Webex meeting using either a meeting ID or a SIP URL:
webex.meetings.create('meeting-id or sipUrl').then((meeting) => {
console.log(meeting);
});
If a roomId/spaceId
is specified as the meeting destination, the SDK will generate an error with the subsequent code and message:
Error Code - 30105
Error Message - 'Using the space ID as a destination is no longer supported. Please refer to the migration guide to migrate to use the meeting ID or SIP address.'
Note: Using personId to create a meeting is still supported. Please use the type as 'PERSON_ID'.
If the user is not part of the space where the meeting is created then the user will be prompted for the password. On entering an incorrect password a few times, captcha information is provided along with the appropriate error code.
Implementing Password and Captcha flows
A new API is added for refreshing the meeting captcha code if present.
Meeting refresh captcha As a result, the meeting will have a new captcha ID, image and audio. If the refresh operation fails, the meeting remains with the old captcha properties.
A participant can be made a host using the below API. Only a host can make another participant host.
A participant can be invited to the meeting using the below API. Only a host can invite another participant. Participants can be invited using an email address.
Please adhere to the guidelines below to transition from utilizing roomId/spaceId
to meetingId/sipUrl
within the Meetings Widget.
Before
The following code demonstrates how to create a Webex meeting using a specified room ID or space ID:
import { WebexMeetingsWidget } from '@webex/widgets';
import '@webex/widgets/dist/css/webex-widgets.css';
export default function App() {
return (
<WebexMeetingsWidget
style={{ width: '1000px', height: '500px' }} // Substitute with any arbitrary size or use `className`
accessToken='<ACCESS_TOKEN>'
meetingDestination='<ROOM_ID>' // NOTICE THIS LINE
/>
);
}
After
Step-1
Use step-1 from SDK Changes to obtain meetingId
or sipUrl
.
Step-2
The code snippet below illustrates the process of creating a Webex meeting using either a meeting ID or a SIP URL:
import { WebexMeetingsWidget } from '@webex/widgets';
import '@webex/widgets/dist/css/webex-widgets.css';
export default function App() {
return (
<WebexMeetingsWidget
style={{ width: '1000px', height: '500px' }} // Substitute with any arbitrary size or use `className`
accessToken='<ACCESS_TOKEN>'
meetingDestination='<MEETING_ID OR SIP_URL>' // NOTICE THIS LINE
/>
);
}
Note: If spaceId
is passed for meetingDestination
the widget will throw an error.
In this context, you lack the ability to choose the ID for creating or joining a meeting, so we won't be addressing the deprecation of the roomId
.
Given that USM mandates a license for each user to participate in meetings, the meet button will be rendered inactive for users without a valid license.
Please read through step 1 from SDK Changes to distribute licenses among users.
- JoinLink for guest users asks for meeting credentials to allow joining. This is a feature gap between converged and non-converged sites. It will be fixed in Jan '24
-
Limitation of consumer org user. In the new space, new Gmail users can initiate scheduled or instant meetings, while in the old space, neither new nor old Gmail users can start scheduled or instant meetings.
-
Limitation in the Webex App, individuals not listed as invitees will be placed in the lobby and require admission (admit).
This wiki summarizes the migration process and highlights actions or considerations.
Caution
- Introducing the Webex Web Calling SDK
- Core Concepts
- Quickstart guide
- Authorization
- Basic Features
- Advanced Features
- Introduction
- Quickstart Guide
- Basic Features
- Advanced Features
- Multistream
- Migrating SDK version 1 or 2 to version 3