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 a 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 mln active users. In 2014, the company was acquired by Rakuten for USD 900 mln.
Challenge
While working on the first versions of its mobile app, Viber Media experienced a need in an extremely competent and reliable partner that would help to develop a backend service to process and store PTT messages. This was an important part of the solution since although backend is not visible for end-users, it is highly important to ensure smooth and comfortable app usage.
Solution
ScienceSoft convinced the Viber team in its excellent competences in the VoIP area and was consequently chosen as an application development partner. The scope of work was very ambitious and required participation of the best experts available on the market.
To ensure the app working 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 a faster communication)
- Create monitoring
- Provide a complete unit tests
It was a challenging project for which Viber and ScienceSoft have 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 have created a mechanism that divided each voice message into several chunks (1 chunk = 1 second message). By sending chunk by chunk in keep-alive HTTP connection, the team has managed to ensure faster communication and better user experience.
Results
ScienceSoft succeeded to develop 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.