Package: phonebox-plugin
PhoneBox PluginA Telephone Number Management Plugin forNetBoxand more.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+ versionsI described some general considerations behind the plugin development and future plans in myblog post.PreviewSupported Features and ModelsNumbersThe 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-9characters A, B, C, Dpound 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.Voice CircuitsVoice Circuit is an entity on a voice-enabled device representing a physical or virtual connection to another voice-enabled device.
The plugin supports the following voice circuit types:SIP Trunk.Digital Voice Circuit (PRI/BRI/etc).Analog Voice Circuit (CO lines/etc).A Voice Circuit must be assigned to an interface of a Device or Virtual Machine.Plugin APIThe plugin introduces a NetBox REST API extension/api/plugins/phonebox/.It currently supports all create, read, update, and delete operations for Numbers via/api/plugins/phonebox/numbers/.The API is compatible withpynetbox:>>> nb.plugins.phonebox.numbers.get(7)
2000
>>>InstallationGeneral installation steps and considerations follow theofficial guidelines.Package Installation from PyPiAssuming you use a Virtual Environment for Netbox:$ source /opt/netbox/venv/bin/activate
(venv) $ pip3 install phonebox-pluginPackage Installation from Source CodeThe source code is available onGitHub.Download and install the package. Assuming you use a Virtual Environment for Netbox:$ git clone https://github.com/iDebugAll/phonebox_plugin
$ cd phonebox_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 namedlocal_requirements.txt(if not already existing) in the NetBox root directory (alongsiderequirements.txt) and list thephonebox_pluginpackage:# echo phonebox_plugin >> local_requirements.txtEnable the PluginIn a global Netboxconfiguration.pyconfiguration file, update or add PLUGINS parameter:PLUGINS=['phonebox_plugin',]Collect Static FilesThe 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 collectstaticApply Database MigrationsApply database migrations with Djangomanage.py:(venv) $ python3 manage.py migrateRestart NetboxRestart the WSGI service to apply changes:sudo systemctl restart netboxInstallation with DockerThe Plugin may be installed in a Netbox Docker deployment.
The package contains a Dockerfile forNetbox-Community Dockerextension. Latest-LDAP version is used by default as a source.Download the Plugin and build from source:$ git clone https://github.com/iDebugAll/phonebox_plugin
$ cd phonebox_plugin
$ docker build -t netbox-custom .Update a netbox image name indocker-compose.ymlin a Netbox Community Docker project root:services:netbox:&netboximage:netbox-custom:latestUpdate aconfiguration.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 -dNetbox Community Docker setup performs static files collection on every startup. No manual actions required.