Skip to content

Meetings Getting Started

Rajesh Kumar edited this page Sep 10, 2023 · 27 revisions

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.

Meetings overview

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

Oauth

Client app creation and initialize the Webex SDK

Meetings

  1. Create a USM meeting
{
        "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.
  • Talk about meetings API, ad-hoc meetings, and scheduled meetings in a space to get back meeting information.

    1. 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.

  1. creating a plain Webex meeting
image
  • 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

image

  • there's an access token for the user, and this user is of machine type, which is a machine account.
  1. 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"
}

Clone this wiki locally