Push-to-Talk Feature for Viber Messenger
Client
Viber is an extremely popular Internet messaging and calling service. The application became popular right after its launch and was immediately named Skype killer.
Initially, the Viber app was aimed at mobile platforms including iOS, Android and Windows Phone. Soon enough, the company realized that a desktop version would be a great addition to what they had already done.
Viber now has over 900 million active users. In 2014, the company was acquired by Rakuten for $900 million.
Challenge
While working on the first versions of its mobile app, Viber Media experienced a need for an extremely competent and reliable partner that would help develop a backend service to process and store PTT messages. This was an important part of the solution, since although the backend is not visible to the end users, it is highly important to ensure smooth and comfortable app usage.
Solution
ScienceSoft convinced the Viber team of its excellent competencies in the VoIP area and was consequently chosen as an application development partner. The scope of work was very ambitious and required the participation of the best experts available on the market.
To ensure the app works flawlessly, ScienceSoft needed to do the following:
- Create an upload and download service
- Create a background processing service
- Implement deployment scripts with separate configuration files for each environment
- Implement a real-time behavior (partial voice message sending for faster communication)
- Create monitoring
- Provide complete unit testing
It was a challenging project for which Viber and ScienceSoft decided to use Amazon cloud solutions – Simple Queue Service (SQS), Simple Storage Service (S3) and AWS PHP library.
Naturally, ScienceSoft needed to create a temporary storage for which Couchbase was selected – a NoSQL database that managed to cover all of the requirements.
Since voice messaging was a key part of the app, the team working on the project needed to ensure the fastest possible data transfer. For that, we created a mechanism that divided each voice message into several chunks (1 chunk = 1 second message). By sending chunk by chunk in a keep-alive HTTP connection, the team managed to ensure faster communication and a better user experience.
Results
ScienceSoft succeeded in developing a high-grade backend for the Viber application, which contributed to the overall product success.
Technologies and Tools
PHP, Couchbase, SQS, S3, Linux daemons, Zabbix, PHP Unit.