Over the weekend I thought it would be a nice challenge to see what would be possible with the Cisco Meeting Server (CMS) API. I came to the conclusion that a simple meeting manager would be a small but ample weekend challenge and so the No-frills Meeting Manager (NFMM for short) was born!
No-frills Meeting Manager for CMS utilises Python 3, Flask, and the Bootstrap framework to provide a no-frills web interface for viewing active calls and basic conference control for a single or cluster of Cisco Meeting Servers (CMS). It also utilises my orchestratevc module (still under development) to provide the required Python methods for interacting with the CMS API. Note, this article isn't to discuss the code specifically but just an overview of what is achievable with the CMS API and some willpower! I have not released the NFMM code yet, but if anyone is interested please reach out to me via the contact page and I'd be happy to send over a copy.
After starting up the NFMM Flask app, active calls on any of the populated Cisco Meeting Servers provided via configuration file will be displayed.
Clicking on any of the displayed hyperlinked ID's will take you to a screen showing all the participating calls (callLegs) in the space. This includes calls distributed over CMS cluster peers.
I've added several available interactions on the screen.
- Add Participant - enables the user to create a new outbound call (callLeg)
- Enable Presenter Mode - a somewhat niche function. The ID of the desired participant that will be the 'presenter' is entered and upon clicking submit, will cause the layout for all participants to switch to speakerOnly, and everyone but the presenter to be put on audio mute
- Disable Presenter Mode - reverts presenter mode, resetting the layout and removing the audio mute for all participants
- Layout - switches the layout for the participant. Only a subset is added but this could easily include all possible layout options
- Mute - self-explanatory mute controls
- Disconnect Call - self-explanatory
Clicking on one of the participant IDs will take the user to a screen showing details specific to the participant in question.
The current NFMM hardly touches the surface of what tools can be built around the Cisco Meeting Server product using its rich API set. Using Python I was able to pull this together in a very short period of time, although I did already have a good foundation in the orchestratevc module which enabled me to rapidly create NFMM.