The main purpose of video conferencing is to help people connect, regardless of where they're located. Let's delve into the challenges we faced during the integration of video conferencing features into Android and iOS applications that we did for one of our clients.
With our client's application, users get a seamless and consolidated platform that enables them to effortlessly conduct video conferences, make calls, and send messages, all within a single, user-friendly interface. The app is a vital product from a cloud communications company that focuses on providing comprehensive unified communications and contact center services tailored for small and mid-sized businesses.
The objective of this case study was to enhance the functionality of mobile applications to support direct one-on-one video calls and conferencing with screen sharing.
Conference Call Management:
- Implement participant approval functionality for joining conference calls.
- Enable muting and removing participants from the conference.
- Ensure real-time delivery of participant events (mute, unmute, join, remove) to all conference attendees securely.
Conference Call Features:
- Incorporate chat functionality for seamless communication among conference participants.
- Implement predefined reactions to enhance user interaction during conference calls.
- Retain conference call history for convenient access to past call details.
Conference Call Recordings:
- Enable call recording with recordings accessible in the conference call history.
Screen Sharing Optimization:
- Prioritize screen sharing by maximizing the display of the screen-sharing video feed.
- Ensure screen sharing is displayed prominently on the first page in multi-page layouts.
- Enable mobile applications to support unique URLs for both one-on-one calls and conferences.
- Implement deep-linking functionality to seamlessly open the specified URLs within the application.
Active Speaker Indicator:
- Implement an active speaker indicator in conference calls to highlight the current speaker.
- Offer the option to PIN-protect calls and conferences for real-time access and when accessing meeting recordings.
To leverage the client's existing investment in conferencing solutions built on the Twilio Video SDK for web, we extended our efforts to incorporate video conferencing capabilities into mobile applications. This involved utilizing the Twilio Video SDK for iOS and Android platforms.
The integration process was streamlined, thanks to the comprehensive documentation and helpful SDK samples provided by Twilio. This ensured a smooth integration experience without encountering any unexpected challenges.
When utilizing the Twilio SDK's pre-built video feed widgets, we developed a custom video feed layout manager. This manager efficiently handled individual video feeds, organized them into pages, adjusted feeds upon device rotation, and maximized the display of screen-sharing feeds. Additionally, we utilized Twilio SDK's audio output chooser feature with minimal customizations.
Implementing the active speaker feature was a straightforward process, as we monitored participants' audio track levels using the Twilio SDK APIs.
For conference recording, we implemented server-side functionality that generated password-protected URLs, granting participants access to recorded conferences.
To deliver real-time conferencing events across web and mobile platforms, we initially considered building upon the WebSocket API. However, upon careful evaluation of time and budget constraints, we opted for an off-the-shelf solution, the Pusher Channels SDK. This allowed us to efficiently deliver real-time conferencing events without compromising project timelines.
By leveraging the Twilio Video SDK and integrating with Pusher Channels, we successfully implemented video conferencing capabilities in the mobile applications, aligning them with the existing conferencing solutions built for the web.
We achieved a successful implementation of fully functional video conferencing with advanced features, such as real-time events and conference chats, within the allocated budget and timeline. The launch of the conferencing solution in production resulted in widespread adoption, with teams across the organization utilizing it for their meetings.
By seamlessly aligning the mobile applications with existing web-based conferencing solutions, we delivered a unified experience, enhancing communication capabilities and maximizing the client's investment. Notably, the inclusion of video conferencing in mobile apps proved invaluable for clients with a remote workforce.
Overall, our implementation of mobile video conferencing has greatly improved communication and collaboration, delivering efficient and seamless experiences for both the client and their partner organizations.
Working with the Twilio SDK for video conferencing was a positive experience, making it our preferred choice for future implementations. However, we identified the need to consider implementing real-time event delivery using the WebSocket API instead of relying on third-party solutions. This approach would reduce dependencies and maintenance costs, providing greater control and flexibility. To provide a practical example, a Pusher SDK update once disrupted real-time events due to token corruption. This issue was identified and resolved during the early stages of development, but it had the potential to cause significant problems had it reached production.
Evaluating all options and prioritizing self-managed solutions is crucial for successful video conferencing projects.