Avaya CPaaS: A Communications Platform for Today and Tomorrow
I’ve looked at clouds from both sides now… —Joni Mitchell
It wasn’t that long ago that ownership was everything. I bought CDs for music and DVDs for movies. I went to bookstores for the hottest summer reading. I filled a filing cabinet drawer with disks to install TurboTax, Photoshop, Windows and Mac operating systems, and numerous utilities and drivers for printers I have long since discarded.
These days, though, I stream my entertainment, download books to my e-reader, and no longer own a PC that has a CD drive. In addition to significantly reducing the clutter around my house, all my so-called possessions have become extremely portable. If I want to watch a movie, I can stream it from wherever I am on whatever device I happen to be using at the time. My CD player gathers dust while my radio sits idle as I tell my smart speakers to “play Minnesota Public Radio.”
The same is true in my work life. So much of the enterprise software that once ran in my company’s server room, now comes to me directly from the cloud. Most I spend more time in my web browser than I do on applications that take up space on my hard drive.
As a software developer, I’ve spent decades writing communications applications that run on personal computers and Unix/Linux servers. To create the experiences I wanted, I utilized local trunks, PBX media servers, and a cadre of other enterprise-resident services and APIs (Application Programming Interfaces). My software worked well when its users were inside the realm of the enterprise, but things quickly became complicated outside those walls.
Enter the world of platform as a service. Now, instead of being tied to locally owned resources, I can write software that takes advantage of 100% cloud-based hardware and software. Additionally, I can suddenly create applications that are universally available. Regardless of where I am or how I get to them, these applications can be as ubiquitous as Google or Facebook.
My programming world was radically disrupted in early 2016 when Avaya announced their Cloud Platform as a Service (Avaya CPaaS) platform, formerly known as Zang. While I wasn’t completely new to cloud programming, for the first time ever, Avaya CPaaS and its drag-and-drop Workflow Designer gave me access to a complete, cloud-based communications platform that could process telephone calls, send and receive SMS texts, initiate emails, invoke web services, query carrier databases, and provide media services to incoming and outgoing voice calls. It was like having my very own Avaya or Cisco system without having to worry about space, cooling, power, maintenance, or onsite technicians.
My first Zang applications were primarily designed to kick the tires. I began by writing software to route incoming calls based on information about the caller. For example, I would process cellular calls differently than those from landlines. From there I experimented with media services to play announcements to callers and collect their responses.
Next, I moved on to SMS text messages. I will admit that these workflows were a lot more fun than plain old telephone calls and I enjoyed writing applications that did text blasts for emergencies situations, and believe it or not, a golf tournament. One of my more interesting Avaya CPaaS workflows launched on an incoming text message, converted that text’s message body to audio, made a voice call, and ultimately played the audio to the called party. The use case was a hospital that required that certain text messages be heard rather than read.
It Keeps Getting Better
While using Avaya CPaaS out of the-box allows me to write quite a few powerful applications with a minimum amount of effort, I soon began wishing it did just a little bit more. For instance, Avaya CPaaS workflows can read from a spreadsheet, but they can’t access a database. Avaya CPaaS also lacks integration with some of the more cutting edge technologies such as the Internet of Things (IoT) and artificial intelligence (AI).
Thankfully, Avaya CPaaS has recently allowed developers like me to augment its Workflow Designer with their own tasks and programming widgets. These tasks, written in the Java programming language, fit seamlessly into the Avaya CPaaS platform and can do anything that the designer codes them to do.
By following a set of programming guidelines created by Avaya, a task becomes part of a self-contained bundle of code and resources (e.g. graphics, help files, etc.) that get loaded into the Avaya CPaaS cloud. The developer has the ability to make his or her tasks visible to one account or the entire Avaya CPaaS ecosphere. This gives a developer complete control over the scope and reach of the tasks.
To get the ball rolling, I took the Avaya Breeze work I did for IoT, ServiceNow, and IBM Watson AI, and with a few relatively minor code changes, ported those tasks to Avaya CPaaS. This supercharged my ability to create incredibly cool workflows that combined the communications platform power of Avaya CPaaS with some of the most exciting technology out there today.
Next, I moved over my Avaya Breeze work with restdb. Restdb is a cloud-based, no-SQL database that is wrapped with an extremely powerful set of Restful APIs. This allows me to execute database reads, writes, and updates inside my workflows. The addition of full featured database exponentially expands the kinds of solutions I can create with Avaya CPaaS. Where once I was forced to statically encode data into my workflows, I now have the ability to make that data completely dynamic and runtime changeable.
Of course, the beauty of this isn’t just in the doing. It’s in making these workflows universally available. Now, when I or someone else creates an application that uses anomaly data from an IoT sensor to open a ServiceNow trouble ticket, that solution can be utilized by anyone in the world regardless of their existing on premise communications platform. In other words, it doesn’t matter if your communications system comes from Avaya, Cisco, Microsoft, NEC, Mitel, or any other vendor you can possibly imagine. The Avaya CPaaS solution rides above all of them to provide over-the-top functionality.
There are still times when it makes sense to create on premise solutions, but more and more I am finding that it makes even more sense to move those applications to the cloud. Whether it’s for the reasons of cost, flexibility, application scope, or ease of development, Avaya CPaaS is a platform that not only delivers a feature-rich communications platform, but allows developers to customize it to their heart’s content. To me, that’s an architecture where I can be productive today, tomorrow, and well into the future.