Webex
Attendee bots can join Webex meetings. A Webex bot joins as a guest of your Webex organization, using Cisco's official Webex Browser SDK.
Setup
Every project that launches Webex bots needs a Webex Service App. You need a Webex organization on a paid plan to create a Service App.
1. Create a Service App
- Sign in to the Webex Developer Portal and go to My Webex Apps, then Create a New App, then Service App.
- Give it a name and description, and select the
guest-issuer:readandguest-issuer:writescopes. - Once it is created, note its Client ID, Client Secret and Service App ID, and your Webex Organization ID.
2. Have an admin authorize it
A full admin of your Webex organization has to authorize the Service App in Control Hub: Apps, then Service Apps, then select the app, Authorize and Save.
3. Add it to Attendee
- In Attendee, go to Settings → Credentials and find the Webex Service App card.
- Click Add Service App and enter the Client ID, Client Secret, Service App ID and Organization ID.
- Click Authorize with Webex, and sign in to Webex as the user who created the Service App.
The card then shows the Service App as authorized, and you can launch Webex bots. Attendee keeps the Service App's tokens fresh by itself.
If Webex bots ever fail to connect because the authorization expired or was revoked, click Authorize with Webex again.
Launching a bot
Create the bot with the meeting's URL. Currently, two kinds of Webex URL are supported:
| URL | Example |
|---|---|
| Personal room | https://acme.my.webex.com/meet/jane.doe |
| Meeting invitation link | https://acme.my.webex.com/acme.my/j.php?MTID=m0123456789abcdef0123456789abcdef |
Additional setup for self-hosting
If you run your own Attendee instance, it needs a Webex Integration to authorize your projects' Service Apps. You set this up once per Attendee instance.
- In the Webex Developer Portal, go to My Webex Apps, then Create a New App, then Integration.
- Set the redirect URI to
https://<your Attendee domain>/projects/webex-service-app/oauth-callback/(usehttp://forlocalhost). - Select only the
spark:applications_tokenscope. - Set these environment variables to the Integration's credentials:
| Variable | Value |
|---|---|
WEBEX_INTEGRATION_CLIENT_ID |
The Integration's Client ID |
WEBEX_INTEGRATION_CLIENT_SECRET |
The Integration's Client Secret |
Also, Attendee refreshes each Service App's tokens weekly from the scheduler (python manage.py run_scheduler), so the scheduler needs to be running. A Webex refresh token expires if it goes unused for 90 days.
Limitations compared to the other bots
The Webex bot is newly released and has a few limitations compared to the other bots.
- No chat. Webex doesn't give guests access to the meeting chat, so the bot can't read or send chat messages.
- No ability to set caption language. Only the meeting host can set the language of Webex captions, so the bot cannot set the language.
- Only personal room and invitation links. Joining by meeting number, and meetings on Webex's government or regional clouds, are not supported.
- No per participant video streaming. Recording video works, but
websocket_settings.per_participant_videois not supported for Webex. - Per participant audio for up to 8 recent speakers. Webex sends the audio of the 8 most recent speakers separately, so per participant audio and transcription stay accurate when people talk over each other. In meetings where more than 8 people take turns, someone who starts talking after a while may have the first second or so of their speech attributed to someone else.
- Delayed speech events. Speech start and stop events arrive about a second late, because that is how quickly Webex reports who is speaking.