Skip to content

ogbbc-webmasters/Sermon-Streaming

Repository files navigation

OGBBC Sermon Streaming Experiment

Project Overview

Objective: Replace the Midwest Conference Line with a cost-effective, reliable worship service streaming system for Old German Baptist Brethren Church, New Conference (OGBBC) congregations.

MVP Scope: Single congregation implementation with host-controlled broadcasting and listener call-in functionality.

Usage

Prerequisites

  • Node.js (v14 or higher)
  • SignalWire account with a phone number

Setup

  1. Clone the repository.

  2. Create a .env file in the root directory with your SignalWire credentials:

    SIGNALWIRE_PROJECT_ID=your_project_id_here
    SIGNALWIRE_TOKEN=your_token_here
    SIGNALWIRE_SPACE_URL=your_space_url.signalwire.com
    SIGNALWIRE_PHONE_NUMBER=+1234567890
    HOST_PIN=12345
    PORT=3000
    
  3. Build and run with Docker:

    docker build -t sermon-streaming .
    docker run -p 3000:3000 --env-file .env sermon-streaming
  4. Configure SignalWire:

    • Create a Relay Application in SignalWire dashboard
    • Set the topic to "ogbbc-sermon"
    • Assign this application to your phone number in Phone Numbers > Your number > Settings > "Handle Calls Using" > Select the Relay application.

How to Use

  • Host: Call the SignalWire phone number and enter the host PIN (default: 1234) to start the conference.
  • Listeners: Call the same number to join as muted participants.
  • Recordings are saved locally in the recordings/ directory (created automatically).

Development

  • Run linting: npm run lint
  • Add tests in future phases.

Requirements Analysis

Functional Requirements

  • Host authentication via PIN
  • Host-controlled conference initiation
  • Muting of listeners enforced
  • Live audio broadcasting from host to listeners
  • Automatic recording of services
  • Conference state management
  • Basic administrative dashboard

Technical Requirements

  • Phone line input (landline/cellular)
  • Scalable to multiple concurrent listeners
  • Recording storage and retrieval (local initially, cloud in Phase 2)
  • Simple administration interface
  • Cost-effective operation
  • Secure PIN handling and data encryption

Architecture

Technology Stack

Key Components

  1. Call Handler - Processes incoming calls and routing
  2. Authentication System - PIN-based host verification
  3. Conference Manager - LaML-based conference control
  4. Status Tracker - Real-time conference state management
  5. Admin Dashboard - Web-based monitoring interface

Implementation Phases

Phase 1: MVP Development

Goal: Working single-congregation conference line

Step 1: Core Infrastructure

  • Set up SignalWire account and phone number
  • Implement basic call handling logic
  • Create basic Express server structure
  • Implement call routing logic
  • Build host authentication system
  • Test basic call flow

Step 2: Conference Management

  • Implement conference creation/management
  • Add participant tracking
  • Build recording functionality
  • Create conference state management
  • Test multi-participant scenarios

Step 3: Admin Interface & Testing

  • Build basic admin dashboard
  • Add real-time status updates
  • Unit and integration testing
  • Comprehensive testing with church members
  • Documentation and user guides
  • Production deployment

Phase 2: Production Hardening

Goal: Reliable production system

  • Error handling and logging
  • Environment configuration
  • Migrate recordings to cloud storage
  • Backup/failover procedures
  • Performance monitoring
  • Security hardening
  • Cost analysis and monitoring

Phase 3: Multi-congregation Expansion

Goal: Support multiple OGBBC congregations

  • Multi-tenant architecture
  • congregation-specific configuration
  • Centralized administration
  • Recording organization by congregation
  • Bulk testing across congregations

About

An experiment with sermon streaming

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published