A few months back I had been working on network automation and APIs via DevNet for different technologies and getting certified. I was spending some time exploring Webex Teams, bots, and thinking of use cases for integration. There are some really cool items that can be done for integrations and I began working on some of my custom home monitoring tools, like my garage opener. A Great benefit of using Webex Teams for this was that I didn’t need a separate app on my phone for this.
Then the pandemic happened and life changed – constant news reinforcing our primal fear instincts; groceries in scant supply; schooling issues for our children. I wanted to do something for our team to help keep spirits high.
Using the Webex teams SDK
You may like: Microsoft Teams and Cisco Webex: The Best of Both Worlds. 4 – Host Webex meetings in Microsoft Teams. For users that prefer Microsoft Teams for messaging and collaboration, but must use Cisco Webex for meetings, there is the Cisco Webex Meeting app. This is perfect for running Cisco Webex meetings direct from Microsoft Teams.
Cisco Webex Teams Apps
The Webex APIs implement the RFC5988 (Web Linking) standard for pagination. When requesting a list of resources the response may contain a Link header containing the URLs to the first, next, and previous page. For example, requesting GET /people?displayName=Harold may return a link header like this one. Cloud Access Security Brokers (CASB), DLP ISVs, and Cisco CloudLock ® have integrated with Webex Teams and Webex Meetings via the Webex Events API to offer turnkey DLP capabilities for Webex Platform. They check for policy violations and take action to remediate them.
I realized it would be really easy to create a very simple bot that had a very simple purpose, one positive message for people, every day. It was to be a Webex Teams space without a lot of discussion, just a positive message every day. Using the Webex Teams SDK and a handy Raspberry Pi, this was very easy to get going.
I quickly set up a Webex Teams bot on that Raspberry Pi, created a space, and told a few people about it. A few people invited some other people. Pretty soon we had 50 people and it was officially a “thing”. So I had to take my minimum viable project and improve some of the quotes in the list, which had been scraped from a repository on Github, and was… a good start. It had some cleanup to be done.
Or, “API Basics for Powershelling Windows Admins” My team has begun rolling out Cisco’s Webex Teams collaboration platform to our internal users. As is often the case, the IT department is the first customer, kicking the tires and exploring different use cases. Initially we have deployed our MARS Agent Greeting solution for their Cisco Jabber Client. Now customer also wants same solution for their Cisco WebEx Teams Client which is registered with Enterprise CUCM for voice calling. AFAIK Cisco WebEx Teams Client don't have Built-In Bridge so JTAPI Agent Greeting API will not work.
Cisco Webex Teams App For Iphone
This portion of theDailyPositive bot was beneficial to me. While it was a personal project that I did in off hours, picking out good, uplifiting quotes was really positive for keeping mental sanity during this time.
Over the course of four months this slowly expanded, reaching about 180 employees as of August 2020. But I had begun to experience a few operational challenges in sustaining this on my Raspberry Pi, notably a few hangs (likely due to a few other things I had running on it), and during some network upgrades (to support my new office layouts with kids at home), the Raspberry Pi had a few days where it was down. So whether the Pi just got tired, or had lost connection, there were a few times that the daily positive just did not run. I wasn’t feeling so positive about that.
Time to migrate this to the cloud
As I was doing some side integration work with creating some cloud capabilities for Webex Teams use cases, I had already poked in AWS to get some Teams messaging working. I decided for this project to use Google cloud platform so that I could gain exposure to that platform, for which I had another use case (involving Webex Teams).
The 2 key GCP functions to bring this to fruition were the Cloud Scheduler (for Cron like scheduling), and cloud functions. Tying these two items together allowed the function to run on a scheduled basis, similar to how my existing setup worked.
While the migration was pretty straight forward, as with everything, there were some challenges. These were initially ported into a cloud function in GCP. Some of the initial work done on the raspberry Pi included using the requests library and the Webex teams SDK. These weren’t available in GCP (at the time of writing), so I had to use standard HTTP posts using http library. This was not difficult to do, but required some thought. In addition, the cloud scheduler needed some IAM privileges to access the function. After working through those two items, I had a development room where I validated functionality, and after a few days migrated it to production.
The updated repo for the daily positive is here, containing both the Raspberry Pi code, and the gcp software. https://github.com/will0129/thedailypositive
Cisco Webex Teams Developer Api
A nice aspect of this, is the function is extremely lightweight and, with it only running once a day, doesn’t even scratch the surface on pricing. So this makes this migration a very affordable way to ensure that the daily positive can bring a bit of good news … daily … regardless of the state of my Raspberry Pi.