Code Monkey home page Code Monkey logo

freepbx-realtime-calls-contacts-panel's Introduction

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

freepbx-realtime-calls-contacts-panel's People

Contributors

adroste avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

freepbx-realtime-calls-contacts-panel's Issues

error on install

Hi , i have a fresh install of freepbx 16 from there iso .
I have an error on install , my node version is 8.16 , and can't update it (sangoma release)
How i can update it for install you're module please .

Regards ,

Error before install

hi
I got this error when I upland module in my asterisk module Admin Panel

" File must be in tar or tar+gzip (.tar, .tgz or .tar.gz) format "

What should I do?

Error after install

I installed your module but I got the following error:

Would you help me ?

[ERROR] Error: [Database] freepbx config does not include all required values: AMPDBUSER, AMPDBPASS, AMPDBHOST, AMPDBPORT, AMPDBNAME at parseFreepbxConf (/var/www/html/admin/modules/callpanel/calls-contacts-panel/src/database.ts:31:11) at /var/www/html/admin/modules/callpanel/calls-contacts-panel/src/database.ts:50:21 at Generator.next (<anonymous>) at fulfilled (/var/www/html/admin/modules/callpanel/calls-contacts-panel/node_modules/tslib/tslib.js:114:62) [15.07.2022 16:21.23.405] [ERROR] Error: [Database] freepbx config does not include all required values: AMPDBUSER, AMPDBPASS, AMPDBHOST, AMPDBPORT, AMPDBNAME at parseFreepbxConf (/var/www/html/admin/modules/callpanel/calls-contacts-panel/src/database.ts:31:11) at /var/www/html/admin/modules/callpanel/calls-contacts-panel/src/database.ts:50:21 at Generator.next (<anonymous>) at fulfilled (/var/www/html/admin/modules/callpanel/calls-contacts-panel/node_modules/tslib/tslib.js:114:62)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.