A French Initiative for Digital Resiliency — Breaking vendor lock-in. Protecting data privacy. Empowering organizations.

PRD-002: Multi-Platform Meeting Support

Document Information

| Field | Value | |——-|——-| | PRD ID | PRD-002 | | Title | Multi-Platform Meeting Support | | Author | Engineering Team | | Created | 2025-12-15 | | Status | Draft | | Priority | P0 - Critical | | Target Phase | Phase 1 |


1. Overview

1.1 Problem Statement

Croom currently only supports Google Meet, limiting its adoption in enterprises that use:

Organizations often use multiple platforms, requiring rooms to support all of them.

1.2 Solution

Implement a modular meeting platform architecture that allows Croom to join meetings on any major video conferencing platform automatically.

1.3 Success Metrics


2. Supported Platforms

2.1 Priority Matrix

Platform Market Share Priority Implementation
Google Meet 25% P0 (Current) Chrome Extension
Microsoft Teams 40% P0 Browser-based
Zoom 30% P1 Browser-based
Webex 5% P2 Browser-based
BlueJeans <5% P3 Browser-based

2.2 Platform-Specific Requirements

Google Meet (Current)

Microsoft Teams

Zoom

Webex


3. Architecture

3.1 Modular Platform Architecture

┌─────────────────────────────────────────────────────────────────┐
│                    Meeting Orchestrator                          │
│  - Calendar Integration                                         │
│  - Platform Detection                                           │
│  - Meeting State Management                                     │
└─────────────────────────────────────────────────────────────────┘
                               │
                               ▼
┌─────────────────────────────────────────────────────────────────┐
│                    Platform Router                               │
│  - URL Pattern Matching                                         │
│  - Platform Selection                                           │
│  - Fallback Handling                                            │
└─────────────────────────────────────────────────────────────────┘
                               │
         ┌─────────────────────┼─────────────────────┐
         │                     │                     │
         ▼                     ▼                     ▼
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│   Google Meet    │ │ Microsoft Teams  │ │      Zoom        │
│    Provider      │ │    Provider      │ │    Provider      │
└──────────────────┘ └──────────────────┘ └──────────────────┘
         │                     │                     │
         ▼                     ▼                     ▼
┌─────────────────────────────────────────────────────────────────┐
│                    Chrome Browser                                │
│  - Hardware Acceleration                                        │
│  - Audio/Video Devices                                          │
│  - Extension Management                                         │
└─────────────────────────────────────────────────────────────────┘

3.2 Platform Provider Interface

Each platform implements a common interface:

interface MeetingPlatformProvider {
  // Platform identification
  name: string;
  urlPatterns: RegExp[];

  // Authentication
  authenticate(credentials: Credentials): Promise<AuthResult>;
  isAuthenticated(): boolean;

  // Meeting lifecycle
  joinMeeting(meetingInfo: MeetingInfo): Promise<JoinResult>;
  leaveMeeting(): Promise<void>;

  // Meeting controls
  muteAudio(): void;
  unmuteAudio(): void;
  muteVideo(): void;
  unmuteVideo(): void;

  // Status
  getMeetingStatus(): MeetingStatus;
  getParticipantCount(): number;

  // Events
  onMeetingStarted: Event;
  onMeetingEnded: Event;
  onError: Event;
}

3.3 Calendar Integration

Support multiple calendar sources:

┌─────────────────────────────────────────────────────────────────┐
│                   Calendar Aggregator                            │
└─────────────────────────────────────────────────────────────────┘
                               │
         ┌─────────────────────┼─────────────────────┐
         │                     │                     │
         ▼                     ▼                     ▼
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Google Calendar  │ │  Microsoft 365   │ │   Exchange/EWS   │
│      API         │ │   Graph API      │ │                  │
└──────────────────┘ └──────────────────┘ └──────────────────┘

4. Features & Requirements

4.1 Platform Detection (P0)

User Story: As a Croom device, I need to automatically detect which platform a meeting is on.

Detection Methods:

  1. Calendar event body parsing
    • Meet: meet.google.com/xxx-xxxx-xxx
    • Teams: teams.microsoft.com/l/meetup-join/...
    • Zoom: zoom.us/j/xxxxxxxxx
    • Webex: *.webex.com/meet/...
  2. URL pattern matching
  3. Room preference fallback

Requirements:

4.2 Authentication Management (P0)

User Story: As an IT admin, I want to configure credentials for each platform.

Requirements:

Credential Types: | Platform | Auth Type | Credentials | |———-|———–|————-| | Google Meet | OAuth + Cookie | Google Account | | Teams | OAuth | Microsoft Account | | Zoom | OAuth + API | Zoom Account | | Webex | OAuth | Webex Account |

4.3 Meeting Join Flow (P0)

User Story: As a room user, I want meetings to join automatically without intervention.

Join Flow:

  1. Detect upcoming meeting (5 min before)
  2. Identify platform from meeting URL
  3. Load appropriate provider
  4. Navigate to meeting URL
  5. Handle authentication if needed
  6. Handle lobby/waiting room
  7. Join with audio/video enabled
  8. Monitor meeting status
  9. Leave when meeting ends

Requirements:

4.4 Meeting Controls (P1)

User Story: As a room user, I want consistent controls across all platforms.

Universal Controls: | Control | Google Meet | Teams | Zoom | Webex | |———|————-|——-|——|——-| | Mute/Unmute Audio | ✓ | ✓ | ✓ | ✓ | | Enable/Disable Video | ✓ | ✓ | ✓ | ✓ | | Leave Meeting | ✓ | ✓ | ✓ | ✓ | | Raise Hand | ✓ | ✓ | ✓ | ✓ | | Screen Share | ✓ | ✓ | ✓ | ✓ | | View Participants | ✓ | ✓ | ✓ | ✓ | | Chat (view) | ✓ | ✓ | ✓ | ✓ |

Requirements:

4.5 Quality & Monitoring (P2)

User Story: As an IT admin, I want visibility into meeting quality.

Requirements:


5. Implementation Details

5.1 Google Meet (Enhancement)

Current implementation via Minimeet Chrome extension.

Enhancements:

5.2 Microsoft Teams

Approach: Browser-based (teams.microsoft.com)

Implementation Steps:

  1. Create Teams provider module
  2. Implement OAuth authentication flow
  3. Handle Teams meeting URL parsing
  4. Automate meeting join process
  5. Implement DOM-based controls
  6. Handle Teams-specific UI elements

Challenges:

Solutions:

5.3 Zoom

Approach: Browser-based (zoom.us/wc)

Implementation Steps:

  1. Create Zoom provider module
  2. Implement Zoom OAuth/JWT authentication
  3. Handle meeting ID/password extraction
  4. Automate meeting join process
  5. Handle waiting room
  6. Implement controls

Challenges:

Solutions:

5.4 Webex

Approach: Browser-based (webex.com)

Implementation Steps:

  1. Create Webex provider module
  2. Implement Webex authentication
  3. Handle meeting URL variations
  4. Automate join process
  5. Implement controls

6. Testing Strategy

6.1 Test Matrix

Scenario Meet Teams Zoom Webex
Join scheduled meeting ✓ ✓ ✓ ✓
Join with password N/A N/A ✓ ✓
Handle waiting room ✓ ✓ ✓ ✓
Guest join ✓ ✓ ✓ ✓
Leave meeting ✓ ✓ ✓ ✓
Mute/unmute ✓ ✓ ✓ ✓
Camera on/off ✓ ✓ ✓ ✓
Network reconnect ✓ ✓ ✓ ✓

6.2 Automated Testing


7. Rollout Plan

Phase 1: Teams Support (2 weeks)

Phase 2: Zoom Support (2 weeks)

Phase 3: Webex Support (1 week)

Phase 4: Polish (1 week)


8. Risks & Mitigations

Risk Impact Likelihood Mitigation
Platform UI changes High High Version detection, rapid updates
Auth flow changes High Medium OAuth, monitor announcements
Browser compatibility Medium Low Chrome focus, stable versions
Feature parity gaps Medium Medium Document limitations clearly

9. Success Criteria


10. Appendix

10.1 Meeting URL Patterns

# Google Meet
https?://meet\.google\.com/[a-z]{3}-[a-z]{4}-[a-z]{3}

# Microsoft Teams
https?://teams\.microsoft\.com/l/meetup-join/.*

# Zoom
https?://.*\.?zoom\.us/j/\d+.*

# Webex
https?://.*\.webex\.com/(meet|join)/.*

10.2 Platform Comparison

Feature Meet Teams Zoom Webex
Browser support Excellent Good Fair Good
Guest join Yes Yes Yes Yes
HD Video Yes Yes Yes Yes
Screen share Yes Yes Yes Yes
Recording Host only Host only Host only Host only