-
Notifications
You must be signed in to change notification settings - Fork 354
Meetings Getting Started
This document provides a comprehensive guide to help you get started with meetings. It covers various aspects such as understanding Unified Space Meetings (USM) and ad-hoc meetings, creating meetings, utilizing the /meetings API, and outlining the process of creating integrations.
Additionally, the document includes step-by-step instructions for creating a guest issuer, as well as creating and authorizing a service app.
You can find the meeting overview here. Let's create a meeting in the developer portal.
-
Make sure you're signed in to the Developer Portal.
-
Generate the access token from here
-
Space creation from the dev portal using hydra room ID - rooms API
-
Let's create a meeting. Below we created an ad-hoc meeting with the roomId, the prerequisite is roomId cannot be empty for an ad-hoc meeting.
-
Every room/space is associated with a room ID
Below is the request & response payload looks like.
Request Payload -
{
"adhoc": true,
"enabledAutoRecordMeeting": false,
"allowAnyUserToBeCoHost": false,
"enabledJoinBeforeHost": false,
"enableConnectAudioBeforeHost": false,
"excludePassword": false,
"publicMeeting": false,
"enabledWebcastView": false,
"enableAutomaticLock": false,
"allowFirstUserToBeCoHost": false,
"allowAuthenticatedDevices": false,
"sendEmail": true,
"requireAttendeeLogin": false,
"restrictToInvitees": false,
"title": "Meeting with Rakshita",
"start": "2023-07-31T12:00",
"end": "2023-07-31T12:15",
"hostEmail": "[email protected]",
"invitees": [
{
"email": "[email protected]"
}
],
"roomId": "Y2lzY29zcGFyazovL3VzL1JPT00vYjI3NTJkNzAtMTEyNS0xMWVlLWIwMzgtYjk5MTMxZmZkMmU2"
}
Response Payload -
{
"id": "5690ba99fdf4401790d0f331c86212bd",
"meetingNumber": "20047636725",
"title": "Meeting with Rakshita",
"password": "6qTQ8HFphv4",
"phoneAndVideoSystemPassword": "67878437",
"meetingType": "meetingSeries",
"state": "active",
"adhoc": true,
"timezone": "UTC",
"start": "2023-07-31T06:41:00Z",
"end": "2023-07-31T06:56:00Z",
"hostUserId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS81ZGJiMmRiNy1iMmMyLTQwMmItYTViOC03MWNkMzU3MDEwMjM",
"hostDisplayName": "Neeraj Swarnkar",
"hostEmail": "[email protected]",
"hostKey": "304003",
"siteUrl": "co.webex.com",
"webLink": "https://co.webex.com/co/j.php?MTID=m8e166e118bdf7db35333cb0fd5b033a5",
"sipAddress": "[email protected]",
"dialInIpAddress": "173.243.2.69",
"roomId": "Y2lzY29zcGFyazovL3VzL1JPT00vYjI3NTJkNzAtMTEyNS0xMWVlLWIwMzgtYjk5MTMxZmZkMmU2",
"enabledAutoRecordMeeting": false,
"allowAnyUserToBeCoHost": true,
"allowFirstUserToBeCoHost": false,
"allowAuthenticatedDevices": false,
"enabledJoinBeforeHost": true,
"joinBeforeHostMinutes": 5,
"enableConnectAudioBeforeHost": true,
"excludePassword": false,
"publicMeeting": false,
"enableAutomaticLock": false,
"unlockedMeetingJoinSecurity": "allowJoinWithLobby",
"telephony": {
"accessCode": "20047636725",
"callInNumbers": [
{
"label": "US Toll",
"callInNumber": "",
"tollType": "toll"
}
],
"links": [
{
"rel": "globalCallinNumbers",
"href": "/v1/meetings/5690ba99fdf4401790d0f331c86212bd/globalCallinNumbers",
"method": "GET"
}
]
},
"meetingOptions": {
"enabledChat": true,
"enabledVideo": true,
"enabledNote": true,
"noteType": "allowAll",
"enabledFileTransfer": true,
"enabledUCFRichMedia": true
},
"attendeePrivileges": {
"enabledShareContent": true,
"enabledSaveDocument": true,
"enabledPrintDocument": true,
"enabledAnnotate": true,
"enabledViewParticipantList": true,
"enabledViewThumbnails": true,
"enabledRemoteControl": true,
"enabledViewAnyDocument": true,
"enabledViewAnyPage": true,
"enabledContactOperatorPrivately": false,
"enabledChatHost": true,
"enabledChatPresenter": true,
"enabledChatOtherParticipants": true
},
"sessionTypeId": 3,
"scheduledType": "meeting",
"simultaneousInterpretation": {
"enabled": false
},
"enabledBreakoutSessions": false,
"audioConnectionOptions": {
"audioConnectionType": "webexAudio",
"enabledTollFreeCallIn": false,
"enabledGlobalCallIn": true,
"enabledAudienceCallBack": false,
"entryAndExitTone": "noTone",
"allowHostToUnmuteParticipants": false,
"allowAttendeeToUnmuteSelf": true,
"muteAttendeeUponEntry": false
}
}
Dev portal - how to create integration
- Integrations are how you request permission to invoke the Webex REST API on behalf of another Webex user.
- Go to the Webex Developer Portal.
- This step requires a developer to create a developer account. This step is necessary to create an application with a specific scope, and in return, you get back ClientID and ClientSecret.
- For more information, visit Webex Integrations Documentation.
- Create a new integration here.
Guest issues app creation
- Go to the Webex Developer Portal.
- Create a new guest issuer.
Oauth
- For information on getting an access token, refer this documentation.
Client app creation and initialize the Webex SDK
- Create the app or web page and follow the Webex Web SDK Importing and Initializing Guide.
- Create a USM meeting
- Read what is USM meeting
- Generate the access token from here
- Make sure you're signed in to the Developer Portal.
- Create a Webex space and invite people - Rooms API Documentation
- Every room/space is associated with a room ID:
{
"id": "Y2lzY29zcGFyazovL3VzL1JPT00vYzVlNjgxODAtMDkxMy0xMWVkLWFmZjQtYTc5YzYwNWU1MEKl",
"title": "Ask Web SDK",
"type": "group",
"isLocked": false,
"lastActivity": "2022-08-25T07:30:18.466Z",
"creatorId": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS8zNDRlYTE4My05ZDVkLTRlNzctYWVkMi1jNGYwMDRhZmR6NUV",
"created": "2022-07-21T16:40:04.760Z",
"ownerId": "Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi8xZWI2NWZkZi05NjQzLTQxN2YtOTk3NC1hZDcyY2FlMGVyNHZ",
"isPublic": false
}
-
In this, the id field is the Room ID / Hydra ID. This room ID can be used to create a meeting as mentioned below.
-
how the license works for space meeting or Webex meeting.
-
There are two possibilities here.
- The integration is scheduling the meeting using the user's token directly. In this case, we don't need to specify the
hostEmail
since the token will have those details. - The service app is using an access_token that has required admin scopes authorized by the org admin. In this case, we need to specify the
hostEmail
.
- The integration is scheduling the meeting using the user's token directly. In this case, we don't need to specify the
-
Talk about meetings API, ad-hoc meetings, and scheduled meetings in a space to get back meeting information.
- If using guest to guest, please call the service app before making /meetings API call.
-
Guests who are joining after the meeting starts in a space.
-
Go to step 3.
- creating a plain Webex meeting
- Link to the Webex meeting intro and license.
- Service app creation
- Go to the https://developer.webex.com/my-apps
- Create a new service app - https://developer.webex.com/my-apps/new/service-app
- Provide name, description, scopes and all the required options and submit -
- The developer will get the client ID and secrets.
- Authorize service app - by org admin You need to get the service app approved from admin.cisco.com (once app is approved, we got the machine account)
- For more information, visit Webex Service App Documentation.
- generate access token - In the org authorization copy the secret and generate the access token
- there's an access token for the user, and this user is of machine type, which is a machine account.
- How to use the /meetings API Meetings Overview
- creating a meeting using the meeting id/sipaddress, meeting link etc.
https://developer.webex.com/docs/api/v1/meetings/join-a-meeting
Request Payload
{
"joinDirectly": false,
"webLink": "https://co.webex.com/co/j.php?MTID=m9435adcc2ab16c489d539243b293b322",
"email": "[email protected]",
"displayName": "Neeraj"
}
Response Payload
{
"startLink": "https://co.webex.com/wbxmjs/joinservice/sites/co/meeting/download/6dfe7998249042e7acf101481b7ccf16?siteurl=co&integrationJoinToken=QUhTSwAAAAnjCRKZhKSFdWZOd103790DyfDAGstjaH6kKTBcsaWWfGZIGO55hrX9a9Dr0BKAPIScjzDxrUq1PAbhRIlijun5U%2Ba6q69RSE8bTl8dkjkMfzIZGSXR%2BfmJnHOdDL4tQpUsgT3BF%2Blm2B5H41KUbMOzCnZSU9UN8VTtPsE5Se0PeaTE%2BH4iaB9jU%2FSsiiKJyHJQIbRLHFh6whK7Y8A4xDDASGBqovX0rSOlUWtlEiikQOqRvLi8wmrqNVkYsplILi0QhhfXio%2BogzIPB1%2BJNR0Da9YO5mkfQTJClmKxXv7c7tGtvFv3shMm6V7pvBynAkQ%3D&displayname=Neeraj&email=nswarnka%40cisco.com&principal=QUhTSwAAAAmH8hHCMnExxWUaVkBtb4n2q2EaWo9rQSGcfEtpvdi3Am2tskHMRRcISSGwNvUd9C%2FcTkLvll5PEUfd0PmwgBDsoNbRyDiiW8NC9fb29vQXS6ulATPztxCofNzLr6EJV9c%3D&integrationEndUrl=https%3A%2F%2Fco.webex.com%2Fmc3300%2Fmeetingcenter%2Fmeetingend%2Fmeetingend.do%3Fsiteurl%3Dco%26from%3Dmeeting%26backurl%3D",
"joinLink": "https://co.webex.com/wbxmjs/joinservice/sites/co/meeting/download/6dfe7998249042e7acf101481b7ccf16?siteurl=co&integrationJoinToken=QUhTSwAAAAnjCRKZhKSFdWZOd103790DyfDAGstjaH6kKTBcsaWWfGZIGO55hrX9a9Dr0BKAPIScjzDxrUq1PAbhRIlijun5U%2Ba6q69RSE8bTl8dkjkMfzIZGSXR%2BfmJnHOdDL4tQpUsgT3BF%2Blm2B5H41KUbMOzCnZSU9UN8VTtPsE5Se0PeaTE%2BH4iaB9jU%2FSsiiKJyHJQIbRLHFh6whK7Y8A4xDDASGBqovX0rSOlUWtlEiikQOqRvLi8wmrqNVkYsplILi0QhhfXio%2BogzIPB1%2BJNR0Da9YO5mkfQTJClmKxXv7c7tGtvFv3shMm6V7pvBynAkQ%3D&displayname=Neeraj&email=nswarnka%40cisco.com&principal=QUhTSwAAAAmH8hHCMnExxWUaVkBtb4n2q2EaWo9rQSGcfEtpvdi3Am2tskHMRRcISSGwNvUd9C%2FcTkLvll5PEUfd0PmwgBDsoNbRyDiiW8NC9fb29vQXS6ulATPztxCofNzLr6EJV9c%3D&integrationEndUrl=https%3A%2F%2Fco.webex.com%2Fmc3300%2Fmeetingcenter%2Fmeetingend%2Fmeetingend.do%3Fsiteurl%3Dco%26from%3Dmeeting%26backurl%3D",
"expiration": "2023-08-03T07:54:04Z"
}
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