WEBEX Module
What is WEBEX?
Cisco WEBEX is a cloud service that provides best in class Collaboration capabilities like calling, meetings and messaging, Webex was founded in 1995 and aquired by Cisco in 2007. It has been a leader in the market of online meetings for the last few years now, since the acquisition Cisco has spent development efforts on integrating calling and messaging capabilities into the platform and recently adding voice assistant capabilities. Some key differentiators are, it’s Cloud Scale and presence, the integration of Cloud Calling services with meetings and messaging all on the same platform. For more visit http://www.webex.com
WEBEX Module Overview
WEBEX Cloud has several capabilities, however this module only use the ability to cloud manage Video conference units. These intelligent video collaboration systems bring your meeting rooms to life, WEBEX devices are equipped with integrated analytics that enables them to become sensors inside every meeting room. This module will use the xAPI interface of WEBEX Devices to retrieve information like number of people inside the room, light and sound conditions.
Webex Module is one of the 4 Modules of Office Dashboard APP. It is written in python and it is responsible for collecting data from WEBEX cloud service. We decided to connect to WEBEX cloud xAPI broker service instead of connecting straight to the devices, to simplify inventory and authentication to devices. As some of the other modules, you can run this module as a standalone module, I will detail how in a second. There is no difference in capabilites running it as a standalone or via dashboard APP.
Above you can see the detailed diagram of all functions inside the module. This module has 2 major layers (Collection and Translation), within the same function, let’s understand what each layer/function does:
- Data Collection layer: Responsible for handling communication to the cloud and processing the data collected. Important function within this layer is:
- get_webex_device_details(): This function is responsible to collect a list of all registered devices then get statistics and configuration from each device.
- Data Translation layer: Responsible for manipulating and reformatting the JSON data so it can be sent to the data retention module. Important functions within this layer are:
- get_webex_device_details(): This function is responsible to built a flat json with all the collected information of each device .
Configuring WEBEX Module
Now that we understand the code and steps performed by it, let’s understand what needs to be configured. Here are the steps of what needs to be configured.
- WEBEX Hub account: You will need to have an valid account with WEBEX Hub admin portal. If you don’t have please talk to your WEBEX Contract Administrator.
- Registered Webex Room Device: Under Devices section, you will need to have a registered online device. This device will need to be associated with a workspace, refer to this link for steps on how to setup a workspace and associate a device.
- Webex Bot Access Token: You will need to create a WEBEX Bot and save its access token, it will be needed for credentials file. See instruction in this link to create a BOT. (Make sure you log in with your Webex HUB account.)
Now that you have a registered device associated to a workspace and a BOT you just need to add permissions for that BOT to be able to collect the information needed via the WEBEX Cloud xAPI broker.
- Workspace with API access: You will need log in to your WEBEX Hub account, select Workspaces on the left menu. Select the Workspace that your device is associated to and then click “Edit API Access”. On the new menu you will add the BOT created on a previous stepS. Use Full Access as the access level.
Using Webex Module
Using this module is very straight forward. As you probably understand by now there are 2 ways of running the module. One is by running OFFICE-DASHBOARD app and let the Flask scheduler do the job and the second which we will use for now (We need all modules configured for the APP to run). So make sure you have the app installed in your linux machine, for that follow this instructions (https://github.com/diegogsoares/OFFICE-DASHBOARD#how-to-install-office-dashboard).
Once the app is installed the next step (step 5 in the link above) is to configure/update the credentials.py file with the information you got while configuring the APP. You will need:
- WEBEX Bot API Access Token
Now that everything is installed and configured the last step is to test that everything is working, for that use this instructions https://github.com/diegogsoares/OFFICE-DASHBOARD#testing-webex-module
(venv)$ python3 modules/webex.py
approximated expected output:
(venv) Linux:OFFICE-DASHBOARD$ python3 modules/webex.py
[
{
"deviceId": "XXXXXXXXXXXXXXXXXXXXXXXX",
"connectionStatus": "connected",
"Network[1].IPv4.Address": "10.10.10.10",
"Audio.Volume": 50,
"SystemUnit.State.NumberOfActiveCalls": 0,
"SystemUnit.State.NumberOfInProgressCalls": 0,
"Cameras.Camera[1].LightingConditions": "Good",
"RoomAnalytics.AmbientNoise.Level.A": 73,
"RoomAnalytics.PeopleCount.Current": 0,
"RoomAnalytics.PeoplePresence": "No",
"RoomAnalytics.Sound.Level.A": 75,
"Standby.State": "Halfwake",
"SystemUnit.Hardware.Monitoring.Temperature.Status": "Normal"
}
]
(venv) Linux:OFFICE-DASHBOARD$
Related Resources
- GITHUB Repository
- Here you will find the source code for OFFICE-DASHBOARD APP
- Setting up Office Dashboard VM
- Here you will find how to build your Linux VM to host OFFICE-DASHBOARD
- Setting up Meraki Module
- Here you will find how to setup Meraki Module
- Setting up DNA Spaces Module
- Here you will find how to setup DNA Spaces Module
- Setting up Data Visualization with TIG Stack
- Here you will find how to setup Data Visualization Module