“The Screen Popup We’ve All Been Waiting For”
Example working code and instructions are included at the link at the bottom of this post and are ongoing with community added input and example use.
One of the best reasons I can think of for recommending open source solutions for my clients is the ongoing freedom over creativity in the design and implementation of the desired solution that remains with me and my client.
With a great open source solution it’s hard to see the limits of my clients requests. Almost anything can be done with the right imagination, added talent, time, patience, coffee…. It’s easy to get excited over imagining the next big progressive thing when you know you can make it work.
That’s just what I did with the Myles Shephard Real Estate Group in Saginaw, Michigan. I got pretty excited over a hair-brained idea that would help bring the existing communications procedures to a more accountable and reliable result.
Myles’ needed a solution that would help organize his already busy real estate business. His first request was for to lighten his personal responsibility for call load. He wanted the freedom to pick up a call if he was able to (in or out of the office) and feel safe knowing the call would be answered just as quickly by a member of his team who could equally help if he were busy, while remaining sure that he’s always in the loop. I imagined a Facebook application that could send him an attachment of the recorded call and text transcription as soon as the call is completed, all of which accessible in his Facebook Messenger Application.
That’s where I further imagined an RSS like feed of calls and events flowing through a Facebook Messenger conversation.
Essentially using a client app for call center screen pop ups that is already installed on 90% of my clients mobile devices seemed like a pretty big idea.
….and when you appreciate the open source community like I do, you know that idea’s this big should be shared. The community of open source developers can help make this readily available and secure for our own servers without trusting more 3rd party handlers that commercially profit from ideas just like this.
Starting completely in conception and not yet seen for VoIP that I could find, I started by building a Facebook BOT (with the help of this post and some minor changes), on an already deployed open source telecommunications system called Wazo, which is a fork from a prior distribution of an open source asterisk unified communications system called Xivo.
It should be noted that I could have chose to build my Application BOT on another machine (separate from the VoIP instance) and make better use of APIs for communicating to the services, but I was excited to see this connection in action. So this example used many shortcuts and married them very closely.
In just a short day I managed to deliver calls and manipulate call routing and application behavior by the use of monitoring for event actions in a custom built Facebook Messenger BOT and by posting formatted JSON data to Facebook’s servers using the secure authentication token. You can even whitelist your server on your Facebook Application settings for added security.
My first example was an alert for incoming calls in a group, queue or literally anywhere in an asterisk dial plan.
The bot can send formatted quick response buttons for easily reaching multiple agents and finding out which one to send the call to. This message is received before the quality control message is even done playing. Incredible!
Facebook’s API is rich in it’s documentation and allows attaching audio, video, and image attachments, even allowing the reusing of a previously uploaded attachment when sending attachments to multiple users.
New Features Surely Coming Soon to your Open Sourced PBX!
- Instant Fax Delivery – This is going to be an easy one. We find the hooks in our fax process and while we know the location of the fax image we can either post the data directly in a CURL post call or we can specify a temporary URL where the file is available to Facebook. Now we can have instant fax delivery. The possibilities are up to us, do we send just the first page, and allow our bot to ask to send pages x-x ?Bot: You have a new fax from 8881458754 – 3 pages
– Quick Reply Buttons (VIEW PAGE 1) (VIEW ALL) (VIEW SELECT PAGES)
Obviously we can use our bot logic to ask for pages how we determine fit. Right here from this Facebook Message, we could also tell our Bot to print, or email the fax too.
- Voicemail delivery – It’s the voicemail we’ve all been waiting for speech to text transcriptions and nice formatted lists sent right from your communications server.
- SMS messaging – Another solution allowing no additional applications (besides Facebook Messenger) or websites to check in to manage your VoIP sms messages. Messages received in asterisk could be forwarded on to your Facebook BOT and with the right bot logic could allow you to reply directly from Facebook Messenger
Proudly, and with much excitement I posted this conception and working example code in a thread titled “Facebook Messenger Notifications From Wazo Lets Expand” in the Open Open Discussion section of one of my favorite VoIP Forum early Saturday morning on 9/16/2017
I included a poll in my initial post, it carries on today. I ask if others use Facebook Messenger. At this time of writing the votes are 70/30 for Facebook Messenger.
Almost instantly, I was very excited to see the response from the open source community. The thread is still active and is accessible by the original post link, but much work has been done since my working post of conception.
Today (less then a week later) the thread lives on in the Developers Corner section and is simply titled “Facebook Messenger Webhooks” as this is much past conception, and at the speed of our open source community we have brought this to reality to all developers in only days time. Don’t take my word for it. Follow the thread and postings now accessible at – https://pbxinaflash.com/community/threads/facebook-messenger-webhooks.21879/
I simply can’t wait to see how this already operational concept expands. So much has come from it in only a week or less of time.
Appreciatively it caught the attention of Sylvain Boily, CEO of Wazo the open source communications platform that I first exampled this conception. Admittedly, I did it all wrong (although I reasoned I was in a hurry), as Wazo is on the fast track for incorporating a great amount of flexibility over 3rd party API’s in their upcoming release.
When you get a proper understanding of their webhooks and internal API’s, the puzzle comes together quickly. I realized this on my own, as Mr. Boily was kind simply mentioning that the project was interesting and offered his help to integrate it into Wazo. That triggered more research. Mr. Sylvain Boily is giving a presentation at the upcoming Astricon in Orlando. He is speaking Wednesday October 4, 2017 at 11:15 am in an event titled “Using Wazo to develop third applications“.
I’d very much like to find myself in Orlando that week to have the opportunity to meet with Mr. Boily and gain a better understanding of communicating in Wazo among our custom built applications.
I believe with this greater insight, I and other developers through shared examples could more rapidly launch additional open source solutions that easily “plug-in” to our already utilized open source communications platforms, and readily deploy them with code hosting providers like GitHub or integrated into market places.
Those Astricon tickets though. Wheeww.. It’s like $800, there is a Wazo 20% discount that can be applied to provide a full access ticket for around $600. I’ll try to figure something out to make it work. I’ve already got my travels arranged. I’m about to accept donations to pay for the Astricon admission.
For the rest of you Ward Mundy has already followed up supplying some great examples on the Pbxinaflash.com Developers Forum, I proudly look forward to reading his latest Nerd Vittles post on the subject as it’s quickly came to life. 🙂 AND I look forward to sharing more tips and tricks for all of you very soon!
Scott T Tabor
[UPDATE 9/24/2017 ] – Sylvian Boily has already released a plugin on GitHub that promises to integrate into Wazo seamlessly. I can’t wait to give it a closer look.