Coder Social home page Coder Social logo

jsteinberg1 / cucm-phone-info Goto Github PK

View Code? Open in Web Editor NEW
18.0 1.0 5.0 3.47 MB

DEPRECATED Cisco Communications Manager (CUCM) VOIP Phone Info Web Application Server

License: GNU General Public License v3.0

Dockerfile 0.17% Python 70.42% JavaScript 1.80% HTML 0.34% Vue 27.27%
callmanager cucm cisco axl-api voip-application cisco-unified-communications unified-communications cisco-callmanager deprecated-repository

cucm-phone-info's Introduction

This project is no longer being maintained


Cisco VOIP Phone Info Web Application Server

The VOIP Phone Info server is a application that collects IP phone data from your Cisco VOIP environment.

The key features are:

  • Phone configuration data: Pulls high level configuration data (MAC/Description/Device Pool/etc) from Cisco Unified Communications Manager (CUCM) via AXL
  • Phone registration data: Pulls real-time registration data (IP address, firmware, registration time stamp, EM logins) from CUCM via Serviceability API
  • IP Phone webpage: Collects data (Serial number, CDP/LLDP neighbor info, ITL, Network info) by scraping the IP phone's internal web server
  • Multiple cluster support: supports integration with multiple CUCM clusters
  • Docker: Runs easily in Docker containers

Screenshots

Phone Info Page

Phone Info

Settings Page

Settings

Job Status Page

Job Status

Requirements

Python 3.7+ and/or Docker

CUCM Prerequisites

  • Create a new application user on your CUCM with the following roles:
    • Standard AXL API Access
    • Standard CCM Admin Users
    • Standard CCMAdmin Read Only
    • Standard SERVICEABILITY Read Only

Docker Installation

  • Install docker
  • clone/download CUCM Phone Info from github
  • Edit the Docker environment variables file docker-fastapi-variables.env in the project root folder. Create your own secret key and specify your timezone
  • run command below from terminal/command line
docker-compose up

First time setup info

  • This will start a HTTPS web server on port 8080
  • Login to https://localhost:8080/ with username 'localadmin' and password 'setup'
  • Configure your CUCM clusters on the server. The first CUCM server in the cluster will be used to authenticate future logins to the VOIP Phone Info server.
  • Perform manual sync on the Job Status tab
  • Set the scheduler to define the automatic update schedule
  • All persistent data is stored in the 'data' bind mount. A default self signed certificate is created the first time this application is run. You can replace the files in the 'data/cert' folder with CA signed certificates and then restart the containers.

Known issues & limitations

  • phone scraper script isn't perfect - If you notice some phone models not working, or missing data, please open an issue.
  • ITL status is populated based on the IP Phone webpage's 'status messages' page. Depending on the phone model and circumstances in the network/VOIP system, the phone may not have a ITL status listed on the 'status' page. This could happen if the phone has not downloaded the ITL/trust list in a while (for whatever reason). On initial run of the phonescraper within this application, you may have many phones that have a blank 'ITL' field. This application only updates the status of the 'ITL' field when there is some valid ITL message on the 'status' page. Assuming this application is left to run daily phonescrapes, over time the ITL value should become accurate, as this application will update the ITL field when it catches the phone's webpage reporting an ITL update (good or bad). Alternatively, you could reset all phones from CUCM and then run a phonescrape and it should collect ITL on most phones as they should update their ITL status on their 'status' webpage after reset.
  • testing, has only been tested against CUCM 11.5
  • schema files need to be updated with 12.5
  • no redundancy for CUCM, if the CUCM node in the first cluster is down, logins will fail.
  • The CUCM service account credentials are stored using symmetric encryption. You are responsible for limiting access to the 'data' bind mount directory.

Third-party software credits

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.