Recently we were in search for a best video chat solution for a Telemedicine mobile and web application. For both iOS and Android platform. There are several players out there in the market who having robust offerings of their solutions. We have checked Amazon Kinesis (https://aws.amazon.com/kinesis), Wowza (https://www.wowza.com), IBM Watson Media (https://video.ibm.com/live-broadcasting-apps-and-hardware), Contus VPlay (https://www.contus.com/video-on-demand-solution.php) etc.
All the above services having their Pros and Cons. They will provide you their services, SDKs, deployment environment, Free usage, Documentation, demo code. But the most important thing is you need to do the things from scratch. Then suddenly we thought about WebRTC (https://webrtc.org) as a solution for our video communication. WebRTC can be a good fit for us. Our main purpose is to initiating Video Chat between doctors and patient, recording the entire communication and prescription writing while chat by minimizing the video call. The entire thing should work on iOS, Android and Web. It should be cost effective solution and should work on low bandwidth also.
There are 3 ways we could have achieved our goal-
- Creating a video chat platform from scratch using WebRTC. In this case, we’ll need to create all the required things, like- STUN, TURN and Signaling with our own code. Here’s a great discussion on that- https://www.html5rocks.com/en/tutorials/webrtc/infrastructure
- Purchase and Installing a third party WebRTC solution from Amazon Marketplace. As the back-end was in Amazon Cloud. There are few solutions out there. ElasticRTC (https://aws.amazon.com/marketplace/pp/B01HD8W9CS) and FlashPhoner (https://aws.amazon.com/marketplace/pp/B01D1L5EAK) are among the widely used ones.
- Opting a third party PAAS solution. We can use their Infrastructure and services to fulfill our needs. They provide APIs and SDKs, which we can use to build our solution.
Tokbox (https://tokbox.com/platform) and Twilio (https://www.twilio.com/video) are two such platform where we can bank on. Twilio is my personal favorite.
Now consider these 2 articles. They are written by real time communication veterans.
and
https://www.chriskranky.com/amazon-web-services-for-webrtc-yn
Here’s an excerpts from one of the article-
“As a product owner or developer, your main goal is to create a great product that will delight users and (in many cases) reduce time to revenue. Hosting your platform on AWS will help provide a firm backbone for your WebRTC backend services if you keep these points in mind, but a DIY build-out can be costly and time-consuming. To accelerate your time to market, and retain product focus, consider utilizing a third-party PaaS provider. A PaaS provider will remove the daunting challenge of building and maintaining a real-time communications component. It’s less risky, and it will shorten your time to market.”
We totally agreed with the above quote. Instead of re-inventing the wheel, let’s concentrate on the main objective of the app. We need to put emphasis on the application performance and other core elements Instead of creating another video chat application. Dr. On Demand is a successful Android and iOS app and dealing with Telemedicine (https://play.google.com/store/apps/details?id=com.doctorondemand.android.patient&hl=en_IN).
They are using Twillio to fulfill their requirement of Doctor-Patient communication. Twilio having the option to record the entire conversation over the cloud. With iOS, Android, JS SDK and dev support, we doesn’t need to think about any hurdles during development. The price is also descent. $0.0015 per minute per participant (https://www.twilio.com/video/pricing).
So, we zeroed on using Twillio as our preferred solution and it’s worked perfectly. Asking all veterans and expert in this domain to please come up with your opinion and suggestions.