Skip to content

FormantIO/session-monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Formant Session Monitor

A Node.js application that monitors active Formant sessions and displays connected devices and users. This tool uses Formant's gRPC and REST APIs to provide real-time information about peer connections in your Formant deployment.

Features

  • Authenticates with Formant using email/password
  • Retrieves all active peer connections
  • Groups connections by session ID
  • Displays detailed information about connected devices and users
  • Shows real names and email addresses of connected users
  • Shows device names and IDs
  • Handles multiple peers per session

Technologies Used

  • Node.js - Runtime environment
  • TypeScript - Programming language
  • gRPC - Remote Procedure Call framework
  • Protocol Buffers - Data serialization format
  • @grpc/grpc-js - gRPC implementation for Node.js
  • dotenv - Environment variable management
  • ts-node - TypeScript execution environment

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn
  • A Formant account with valid credentials
  • Access to Formant devices

Installation

  1. Clone the repository:

    git clone [email protected]:FormantIO/session-monitor.git
    cd formant-session-monitor
  2. Install dependencies:

    npm install
    # or
    yarn install
  3. Create a .env file in the root directory:

    FORMANT_EMAIL=[email protected]
    FORMANT_PASSWORD=your-password

Usage

Run the application:

npm start
# or
yarn start

The application will:

  1. Authenticate with Formant
  2. Retrieve all active peer connections
  3. Group them by session
  4. Display information about each session's connected peers

Example output:

Active Sessions:
---------------
Session: session-id-1
Connected Peers:
  Device: Robot-1 (device-id-123)
  User: John Smith (user-id-456)
---------------
Session: session-id-2
Connected Peers:
  Device: Robot-2 (device-id-789)
  User: Jane Doe (user-id-012)
---------------

Project Structure

  • src/
    • formant-client.ts - Main client implementation for Formant API interactions
    • protos/ - Protocol Buffer definitions
  • app.ts - Application entry point
  • .env - Environment configuration
  • package.json - Project dependencies and scripts

API Integration

The application integrates with multiple Formant APIs:

gRPC Endpoints

  • Signaling service for peer information
  • Real-time session monitoring

REST Endpoints

  • Authentication (/v1/admin/auth/login)
  • Device information (/v1/admin/devices/{id})
  • User information (/v1/admin/users/{id})

Development

Building Protocol Buffers

If you need to rebuild the Protocol Buffer definitions:

npm run build:protos
# or
yarn build:protos

Environment Variables

  • FORMANT_EMAIL - Your Formant account email
  • FORMANT_PASSWORD - Your Formant account password

Troubleshooting

Common issues and solutions:

  1. Authentication Failures

    • Verify credentials in .env file
    • Check account permissions
    • Ensure protos are built
  2. Network Issues

    • Verify internet connectivity
    • Check firewall settings
  3. Missing Information

    • Verify device/user permissions
    • Check API access rights

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published