25 May 2020 - DevOps

Online meeting functionality for Hurma

Hurma System is a SaaS solution for recruitment, HR management and OKR performance that enables simple interactions between candidates, employees and recruiters/HR managers. Enabling the candidates to conduct video calls directly from the browser and storing such recordings for later use would be a very beneficial feature for all parties involved.

IT Svit has ample experience with WebRTC implementation and has published the source code for its online conferencing tool prototype — https://github.com/it-svit/ownconf more than 2 years ago. Since then, IT Svit has advanced much in using such technologies, which allowed the team to deliver video call features in a timely manner.

Case info

Location: Kharkiv, Ukraine

Industry: Recruiting, human resources

Partnership period: Dec 2019 – ongoing

Team size: 1 Python developer, 1 DevOps engineer, 1 Web developer

Team location: Kharkiv, Ukraine

Services: Online conferences subsystem development, application containerization, CI/CD and monitoring implementation

Expertise delivered: Requirements analysis, integration with the existing system, performance optimization

Technology stack: WebRTC, Python 3, Docker, Coturn, Vue.js, ffmpeg, AWS S3

Project requirements

The customer had the following project specifications:

  • Online video conferencing should work directly from the browser without any additional software or extensions.
  • The feature should support mobile devices, as well as multiple desktop platforms (Windows/Mac/Linux)
  • Several core features should include screen sharing, chat, audio muting, speaker highlighting
  • The system should provide automatic recovery on disconnection and easily switch between WiFi and 3G/4G/5G/LTE
  • User-friendly interface
  • The feature should enable meeting recording and replayability

Challenges and solutions

We decided to build this application using a peer-to-peer approach when all the call participants have equal rights and share the resource workload, without anybody having to support a dedicated server for video streaming.

The biggest challenge encountered was building a platform for stable connectivity. We developed a specific component for client applications enabling them to switch to alternative Internet access routes with minimum connection disruption. This enabled seamless switching between WiFi and mobile Internet access for mobile devices.

Bad Internet connection was a big issue even for web app performance. On the testing stage, some users experienced connectivity issues during their calls even on desktop devices with landline Internet connections. A built-in WebRTC feature constantly monitors the connection performance and lowers the bitrate of video/audio streams automatically if the connection becomes worse.

It turned out that Safari on iOS does not support RTCDataChannel, so we had to use web socket technology for arbitrary data transfer. This allowed us to enable the system to work even with Safari just as well as with all other browsers.

Results

We integrated video calls into Hurma in a timely manner using our previous developments in this area. The ability to call anyone anytime directly from the browser has significantly simplified communication for recruiters, candidates, employees and HR managers. In addition, the ability to record all the calls (after the explicit consent) enabled the HR/recruiting specialists to replay any call later on. 

Conclusions

The peer-to-peer approach helped us minimize resource consumption, as the main flow of data goes between clients, not from clients to a server. A simple API of the video conferencing system allowed us to easily customize UI to meet customer requirements for various cases.

IT Svit has proven its DevOps, Python development and software integration expertise once more, providing a simple and reliable tool for online communications directly from a browser.

Contact Us




Our website uses cookies to personalise content and to analyse our traffic. Check our privacy policy and cookie policy to learn more on how we process your personal data. By pressing Accept you agree with these terms.