SR&ED Tax Claims: Web-Based Real-Time Video and Chat Platform
Developing an enterprise-grade communications platform as a service (cPaaS) with real-time audio/video capabilities, designed for multi-tenant environments and third-party integration.
August 2019: Began development of a highly scalable cPaaS platform for integration with multiple vertical applications
2
Core Challenges
Addressing real-world NAT and firewall issues for N-N multi-party calls while maintaining performance
3
Integration Complexity
Designing architecture to fit with independent legacy systems in a sandboxed multi-tenant environment
4
Project Completion
July 2020: Delivered enterprise-ready communication platform with open API capabilities
Technology Stack Investigation
WebRTC Framework
Cross-browser support with native media streaming capabilities
Signaling Services
Custom protocols for control management and messaging
Native Integration
Android and Web implementation for optimal performance
Communication Systems
Proprietary chat and pub/sub architecture
Our investigation required evaluating multiple technology stacks to create an enterprise-grade communication platform. After exploring traditional RTP streaming and XMPP, we determined WebRTC offered the most promising foundation while still requiring significant custom development for signaling, authorization, and microservices.
Systematic Investigation Process
Initial RTSP/RTP Exploration
Prototyped unencrypted RTSP/RTP with promising jitter and latency results but identified limitations in P2P network scenarios
WebRTC Adoption
Evaluated multi-party conferencing technologies (Mesh, SFU, MCU) and selected Kurento for maturity and feature set
NAT/Firewall Solutions
Implemented Coturn with enhanced security mechanisms and ephemeral key exchange for UDP hole punching
Custom Protocol Development
Created proprietary messaging system for signaling control, chat, and pub/sub functionality
Technical Implementation Challenges
Cross-Platform Development
Implemented C# .NET core for signaling server, JavaScript for browser clients, and Kotlin/Java for Android components to ensure optimal performance across platforms
Security Enhancement
Upgraded default configurations with ephemeral key exchange and TTL configuration on TURN ports binding to address security vulnerabilities
Load Balancing Complexities
Discovered limitations in native DNS balancing support by Android WebRTC engine, requiring custom solutions for effective load distribution
SDK Architecture
Developed component-based SDK model to ensure code reuse and extensibility while maintaining comprehensive test coverage
Technological Advancements Achieved
Real-Time Streaming
Demonstrated unidirectional streaming with jitter under 200ms in closed network systems
Multi-Party Conferencing
Achieved stable N-N video conferencing with automatic quality scaling
Immersive Experience
Implemented PIP interfaces and automatic reconnects across platforms
Automated Testing
Employed KITE 2.0 for comprehensive UAT and build validation
Performance Benchmarks and Optimization
Our performance testing revealed significant advantages in using WebRTC with Selective Forwarding Unit (SFU) architecture for enterprise deployments. While Mesh topology offered slightly lower latency, the SFU approach provided superior bandwidth efficiency for multi-party calls, a critical factor for scalability in corporate environments.
Integration with Enterprise Systems
API Security Implementation
Developed robust authentication and authorization mechanisms to ensure secure integration with existing enterprise applications while maintaining data isolation between tenants.
Workflow Integration
Created flexible workflow adapters to connect the communication platform with vertical applications, allowing for customized business processes without compromising the core functionality.
Multi-Tenant Architecture
Implemented sandboxed environments for each tenant with dedicated resources and isolated data storage while maintaining centralized management capabilities.
Future Development Roadmap
Ongoing work includes enhancing integration schemes, expanding API capabilities, and optimizing resource utilization for large-scale deployments.