Skip to main content

A unified communications management plugin for NetBox.

Project description

UCBox Plugin

A Unified Communications Management Plugin for NetBox.

The plugin versions 0.0.1b1-0.0.1b4 support NetBox 2.10.x versions.

Latest plugin version 0.0.1b5 supports NetBox 2.11.0+ versions

Preview

Supported Features and Models

Numbers

The plugin currently implements a Number abstraction representing a single telephone number of an arbitrary format.
A Number can consist of valid DTMF characters and leading plus sign for E.164 support:

  • leading plus ("+") sign (optional)
  • digits 0-9
  • characters A, B, C, D
  • pound sign ("#")
  • asterisk sign ("*")

Sample valid numbers: +12341234567, 1000, 123#2341234567, *100#.
Numbers are stored without delimiters. They will be implemented as an additional formatting function.
Number values can be not unique. Tenant is a mandatory option representing a number partition. Number and Tenant are globally unique.
A Number can optionally be assigned with Provider and Region relations.
A Number can contain an optional Description.
A Number can optionally be tagged with Tags.

The plugin supports Bulk Edit and Delete operations for Numbers.

SIP Trunks

A sip trunk has a name, a region, and destination

Plugin API

The plugin introduces a NetBox REST API extension /api/plugins/ucbox/.
It currently supports all create, read, update, and delete operations for Numbers via /api/plugins/ucbox/numbers/.
The API is compatible with pynetbox:

>>> nb.plugins.ucbox.numbers.get(7)
2000
>>> 

Installation

General installation steps and considerations follow the official guidelines.

Package Installation from PyPi

Assuming you use a Virtual Environment for Netbox:

$ source /opt/netbox/venv/bin/activate
(venv) $ pip3 install ucbox_plugin

Package Installation from Source Code

The source code is available on GitHub.
Download and install the package. Assuming you use a Virtual Environment for Netbox:

$ git clone https://github.com/iDebugAll/ucbox_plugin
$ cd ucbox_plugin
$ source /opt/netbox/venv/bin/activate
(venv) $ pip3 install .

To ensure NextBox UI plugin is automatically re-installed during future upgrades, create a file named local_requirements.txt (if not already existing) in the NetBox root directory (alongside requirements.txt) and list the ucbox_plugin package:

# echo ucbox_plugin >> local_requirements.txt

Enable the Plugin

In a global Netbox configuration.py configuration file, update or add PLUGINS parameter:

PLUGINS = [
    'ucbox_plugin',
]

Collect Static Files

The Plugin contains static files for topology visualization. They should be served directly by the HTTP frontend. In order to collect them from the package to the Netbox static root directory use the following command:

(venv) $ cd /opt/netbox/netbox/
(venv) $ python3 manage.py collectstatic

Apply Database Migrations

Apply database migrations with Django manage.py:

(venv) $ python3 manage.py migrate

Restart Netbox

Restart the WSGI service to apply changes:

sudo systemctl restart netbox

Installation with Docker

The Plugin may be installed in a Netbox Docker deployment. The package contains a Dockerfile for Netbox-Community Docker extension. Latest-LDAP version is used by default as a source.
Download the Plugin and build from source:

$ git clone https://github.com/iDebugAll/ucbox_plugin
$ cd ucbox_plugin
$ docker build -t netbox-custom .

Update a netbox image name in docker-compose.yml in a Netbox Community Docker project root:

services:
  netbox: &netbox
    image: netbox-custom:latest

Update a configuration.py. It is stored in netbox-docker/configuration/ by default. Update or add PLUGINS parameter and PLUGINS_CONFIG parameter as described above.

Rebuild the running docker containers:

$ cd netbox-docker
$ docker-compose down
$ docker-compose up -d

Netbox Community Docker setup performs static files collection on every startup. No manual actions required.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ucbox_plugin-0.0.2.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

ucbox_plugin-0.0.2-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file ucbox_plugin-0.0.2.tar.gz.

File metadata

  • Download URL: ucbox_plugin-0.0.2.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.2

File hashes

Hashes for ucbox_plugin-0.0.2.tar.gz
Algorithm Hash digest
SHA256 55a4589d04986db315a922763fb61b427e385b6a558c21da6411f2c8a566220d
MD5 b42f3743ad04578a3da839688c774b5d
BLAKE2b-256 341a8a5e3a3887181f4a563eebfb67a1f3fa1c962f7fc9da0a854e93ac9ac1f9

See more details on using hashes here.

File details

Details for the file ucbox_plugin-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: ucbox_plugin-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.2

File hashes

Hashes for ucbox_plugin-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9c7132b6ff90ab0f7b1d1f64532c85035a2777e40aa6c1bfd399dc049912b9a9
MD5 bff7e57ba2cebb1224fc819f7c65a149
BLAKE2b-256 d4ac68ae0bbe17055f2bed279620785ab4ae8131d89b433730ad51ddfba5d9e7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page