adroste / freepbx-realtime-calls-contacts-panel

Modern Realtime Calls & Contacts Panel for FreePBX with beautiful UI, better caller id lookup, better contact management, phonebook generation etc.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FreePBX Realtime Calls & Contacts Panel

This is a module for FreePBX. It is a realtime panel to view and manage calls and contacts.

Suited for use at Home and Small Businesses.

Compatible and tested on FreePBX version: 16.0.x

Written in NodeJS, React and PHP (only glue).

Features

  • Realtime Call Monitoring
    • View Active Calls (Incoming/Outgoing)
    • View Call Logs
  • Better CallerID Lookup
    • CallerID for Incoming and Outgoing Calls
    • Integrates with CallerID Lookup Module
      • Custom Lookup Rest Endpoint
      • Can match Numbers with and without custom area codes
  • Better Contact Management
    • Integrates with FreePBX ContactManager
    • Create/Update/Delete Contacts with beautiful UI
    • Save unknown Numbers from Call Logs directly as new Contacts
    • Add unknown Numbers from Calls Logs directly to already existing Contacts (via a Search feature)
  • Start Calls directly from the browser from any extension (or ring group) to any number
  • Beautiful UI (React + NodeJS)
  • Multi-Language Support
    • supported Languages (yet): English πŸ‡ΊπŸ‡ΈπŸ‡¬πŸ‡§, German (Deutsch) πŸ‡©πŸ‡ͺ
    • new languages can be added easily
  • Automatic Phonebook Generation
    • generates IP phone compatible phonebooks (including multiple saved phone numbers per contact)
    • supported manufacturers (yet): yealink, fanvil
  • FreePBX Module Wrapper
    • Easy install via FreePBX Module Admin
    • Uses PM2 Module to run the backend service
    • Administration View in FreePBX to configure the panel

Screenshots

Install

  1. Go to FreePBX -> Admin -> Module Admin -> Upload Modules
  2. Upload the latest version of the module (tar.gz)
    1. link to latest version: https://github.com/adroste/freepbx-realtime-calls-contacts-panel/archive/main.tar.gz
  3. Install it and reload FreePBX (Apply Config)
  4. Go to FreePBX -> Admin -> Calls + Contacts Panel

Advanced Usage

  • Phonebook URLs:
  • Caller ID Lookup:
    • You can add custom area codes to the configuration to improve lookup of numbers.
      • Go to FreePBX -> Admin -> Calls + Contacts Panel -> Caller ID Prefixes and add your area codes like "+491234,01234".
      • E.g. if you saved a number without the area code and the incoming caller id includes it, it will match and if you saved a number with area code and the incoming caller id does not include it, it will also match.
    • Create a CallerID Lookup Source like:



Development hints

Project structure

.                                  --- FreePBX Module Wrapper (Root Dir + Files)
β”œβ”€β”€ Callpanel.class.php
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
β”œβ”€β”€ calls-contacts-panel        --- Backend / Service (The Real App)
β”‚   β”œβ”€β”€ LICENSE
β”‚   β”œβ”€β”€ build
β”‚   β”œβ”€β”€ config.default.json
β”‚   β”œβ”€β”€ config.dev.json
β”‚   β”œβ”€β”€ config.local.json
β”‚   β”œβ”€β”€ dev-resources
β”‚   β”œβ”€β”€ frontend               --- Frontend (React Panel)
β”‚   β”œβ”€β”€ jest.config.js        
β”‚   β”œβ”€β”€ node_modules          
β”‚   β”œβ”€β”€ package-lock.json     
β”‚   β”œβ”€β”€ package.json          
β”‚   β”œβ”€β”€ src                   
β”‚   β”œβ”€β”€ tsconfig.eslint.json  
β”‚   └── tsconfig.json         
β”œβ”€β”€ install.php
β”œβ”€β”€ module.xml
β”œβ”€β”€ page.callpanel.php
β”œβ”€β”€ uninstall.php
└── views
    └── main.php

Adding a Language

  • Go to calls-contacts-panel/frontend/public/locales
  • Create a new folder with the desired language tag, e.g. de, en, fr etc.
  • Copy the en/translation.json to the new folder and translate the values
  • Rebuild the app and test the translation.
  • Make a pull request so that I can add the language to this repo.

Dev Environment

Backend

  • Forward ports 3306 (MySQL) and 5038 (AMI: Asterisk Manager Interface) to your dev machine, e.g. using ssh:
ssh -L 3306:127.0.0.1:3306 \
  -L 5038:127.0.0.1:5038 \
  root@yourFreePBXInstance
  • Open the calls-contacts-panel folder as workspace in VS Code.
  • Create a dev-resources folder and copy the files /etc/freepbx.conf and /etc/asterisk/manager.conf from your FreePBX instance into it.
  • Install deps with npm install
  • Start service via npm run dev:service (ts-node), alternatively you can use npm run build:watch and npm run dev:service:build

Frontend

  • Open the calls-contacts-panel/frontend folder as workspace in VS Code.
  • Install deps with npm install
  • Start react-scripts with npm run start

About

Modern Realtime Calls & Contacts Panel for FreePBX with beautiful UI, better caller id lookup, better contact management, phonebook generation etc.

License:GNU Affero General Public License v3.0


Languages

Language:TypeScript 86.4%Language:PHP 10.7%Language:JavaScript 1.9%Language:HTML 0.8%Language:CSS 0.2%