phonebox-plugin


Namephonebox-plugin JSON
Version 0.0.10 PyPI version JSON
download
home_pagehttps://github.com/iDebugAll/phonebox-plugin.git
SummaryA phone numbers management plugin for NetBox.
upload_time2024-09-23 17:25:36
maintainerNone
docs_urlNone
authorIgor Korotchenkov
requires_pythonNone
licenseMIT
keywords netbox netbox-plugin plugin
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PhoneBox Plugin

A Telephone Number Management Plugin for [NetBox](https://github.com/netbox-community/netbox) and 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+ versions

I described some general considerations behind the plugin development and future plans in my [blog post](https://idebugall.github.io/phonebox-init/).

### Preview

![](docs/media/preview_01.png)


# Supported Features and Models

### Numbers

The plugin currently implements a Number abstraction representing a single telephone number of an arbitrary format.<br/>
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#.<br/>
Numbers are stored without delimiters. They will be implemented as an additional formatting function.<br/>
Number values can be not unique.
Tenant is a mandatory option representing a number partition. Number and Tenant are globally unique.<br/>
A Number can optionally be assigned with Provider and Region relations.<br/>
A Number can contain an optional Description.<br/>
A Number can optionally be tagged with Tags.<br/>
<br/>
The plugin supports Bulk Edit and Delete operations for Numbers.

### Voice Circuits

Voice 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 API

The plugin introduces a NetBox REST API extension `/api/plugins/phonebox/`.<br/>
It currently supports all create, read, update, and delete operations for Numbers via `/api/plugins/phonebox/numbers/`.<br/>
The API is compatible with [pynetbox](https://github.com/digitalocean/pynetbox):
```
>>> nb.plugins.phonebox.numbers.get(7)
2000
>>> 
```

# Installation

General installation steps and considerations follow the [official guidelines](https://netbox.readthedocs.io/en/stable/plugins/).

### Package Installation from PyPi

Assuming you use a Virtual Environment for Netbox:
```
$ source /opt/netbox/venv/bin/activate
(venv) $ pip3 install phonebox-plugin
```

### Package Installation from Source Code
The source code is available on [GitHub](https://github.com/iDebugAll/phonebox_plugin).<br/>
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 named `local_requirements.txt` (if not already existing) in the NetBox root directory (alongside `requirements.txt`) and list the `phonebox_plugin` package:

```no-highlight
# echo phonebox_plugin >> local_requirements.txt
```

### Enable the Plugin
In a global Netbox **configuration.py** configuration file, update or add PLUGINS parameter:
```python
PLUGINS = [
    'phonebox_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](https://github.com/netbox-community/netbox-docker) extension. Latest-LDAP version is used by default as a source.<br/>
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 in **docker-compose.yml** in a Netbox Community Docker project root:
```yaml
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.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/iDebugAll/phonebox-plugin.git",
    "name": "phonebox-plugin",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "netbox, netbox-plugin, plugin",
    "author": "Igor Korotchenkov",
    "author_email": "iDebugAll@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/6d/94/19e8d0e0f4dc7e675a2ad2b4fdd1cd9dc5393df556ce804b6d2a35dcec81/phonebox_plugin-0.0.10.tar.gz",
    "platform": null,
    "description": "# PhoneBox Plugin\n\nA Telephone Number Management Plugin for [NetBox](https://github.com/netbox-community/netbox) and more.\n\n>The plugin versions 0.0.1b1-0.0.1b4 support NetBox 2.10.x versions.\n>\n>Latest plugin version 0.0.1b5 supports NetBox 2.11.0+ versions\n\nI described some general considerations behind the plugin development and future plans in my [blog post](https://idebugall.github.io/phonebox-init/).\n\n### Preview\n\n![](docs/media/preview_01.png)\n\n\n# Supported Features and Models\n\n### Numbers\n\nThe plugin currently implements a Number abstraction representing a single telephone number of an arbitrary format.<br/>\nA Number can consist of valid DTMF characters and leading plus sign for E.164 support:\n  - leading plus (\"+\") sign (optional)\n  - digits 0-9\n  - characters A, B, C, D\n  - pound sign (\"#\")\n  - asterisk sign (\"*\")\n\nSample valid numbers: +12341234567, 1000, 123#2341234567, *100#.<br/>\nNumbers are stored without delimiters. They will be implemented as an additional formatting function.<br/>\nNumber values can be not unique.\nTenant is a mandatory option representing a number partition. Number and Tenant are globally unique.<br/>\nA Number can optionally be assigned with Provider and Region relations.<br/>\nA Number can contain an optional Description.<br/>\nA Number can optionally be tagged with Tags.<br/>\n<br/>\nThe plugin supports Bulk Edit and Delete operations for Numbers.\n\n### Voice Circuits\n\nVoice Circuit is an entity on a voice-enabled device representing a physical or virtual connection to another voice-enabled device.\nThe plugin supports the following voice circuit types:\n- SIP Trunk.\n- Digital Voice Circuit (PRI/BRI/etc).\n- Analog Voice Circuit (CO lines/etc).\n\nA Voice Circuit must be assigned to an interface of a Device or Virtual Machine.\n\n### Plugin API\n\nThe plugin introduces a NetBox REST API extension `/api/plugins/phonebox/`.<br/>\nIt currently supports all create, read, update, and delete operations for Numbers via `/api/plugins/phonebox/numbers/`.<br/>\nThe API is compatible with [pynetbox](https://github.com/digitalocean/pynetbox):\n```\n>>> nb.plugins.phonebox.numbers.get(7)\n2000\n>>> \n```\n\n# Installation\n\nGeneral installation steps and considerations follow the [official guidelines](https://netbox.readthedocs.io/en/stable/plugins/).\n\n### Package Installation from PyPi\n\nAssuming you use a Virtual Environment for Netbox:\n```\n$ source /opt/netbox/venv/bin/activate\n(venv) $ pip3 install phonebox-plugin\n```\n\n### Package Installation from Source Code\nThe source code is available on [GitHub](https://github.com/iDebugAll/phonebox_plugin).<br/>\nDownload and install the package. Assuming you use a Virtual Environment for Netbox:\n```\n$ git clone https://github.com/iDebugAll/phonebox_plugin\n$ cd phonebox_plugin\n$ source /opt/netbox/venv/bin/activate\n(venv) $ pip3 install .\n```\n\nTo 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 `phonebox_plugin` package:\n\n```no-highlight\n# echo phonebox_plugin >> local_requirements.txt\n```\n\n### Enable the Plugin\nIn a global Netbox **configuration.py** configuration file, update or add PLUGINS parameter:\n```python\nPLUGINS = [\n    'phonebox_plugin',\n]\n```\n\n### Collect Static Files\nThe 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:\n```\n(venv) $ cd /opt/netbox/netbox/\n(venv) $ python3 manage.py collectstatic\n```\n\n### Apply Database Migrations\n\nApply database migrations with Django `manage.py`:\n```\n(venv) $ python3 manage.py migrate\n```\n\n### Restart Netbox\nRestart the WSGI service to apply changes:\n```\nsudo systemctl restart netbox\n```\n\n# Installation with Docker\nThe Plugin may be installed in a Netbox Docker deployment. \nThe package contains a Dockerfile for [Netbox-Community Docker](https://github.com/netbox-community/netbox-docker) extension. Latest-LDAP version is used by default as a source.<br/>\nDownload the Plugin and build from source:\n```\n$ git clone https://github.com/iDebugAll/phonebox_plugin\n$ cd phonebox_plugin\n$ docker build -t netbox-custom .\n```\nUpdate a netbox image name in **docker-compose.yml** in a Netbox Community Docker project root:\n```yaml\nservices:\n  netbox: &netbox\n    image: netbox-custom:latest\n```\nUpdate a **configuration.py**. It is stored in netbox-docker/configuration/ by default. Update or add PLUGINS parameter and PLUGINS_CONFIG parameter as described above.\n\nRebuild the running docker containers:\n```\n$ cd netbox-docker\n$ docker-compose down\n$ docker-compose up -d\n```\nNetbox Community Docker setup performs static files collection on every startup. No manual actions required.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A phone numbers management plugin for NetBox.",
    "version": "0.0.10",
    "project_urls": {
        "Download": "https://github.com/iDebugAll/phonebox-plugin/archive/v0.0.10.tar.gz",
        "Homepage": "https://github.com/iDebugAll/phonebox-plugin.git"
    },
    "split_keywords": [
        "netbox",
        " netbox-plugin",
        " plugin"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6d9419e8d0e0f4dc7e675a2ad2b4fdd1cd9dc5393df556ce804b6d2a35dcec81",
                "md5": "414c17f3e8d21a93ddc6dd7a5fc13e99",
                "sha256": "9e1537c8915bd605354379c9f27359330dd95038630cef182e073454c2df9b71"
            },
            "downloads": -1,
            "filename": "phonebox_plugin-0.0.10.tar.gz",
            "has_sig": false,
            "md5_digest": "414c17f3e8d21a93ddc6dd7a5fc13e99",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 19719,
            "upload_time": "2024-09-23T17:25:36",
            "upload_time_iso_8601": "2024-09-23T17:25:36.711791Z",
            "url": "https://files.pythonhosted.org/packages/6d/94/19e8d0e0f4dc7e675a2ad2b4fdd1cd9dc5393df556ce804b6d2a35dcec81/phonebox_plugin-0.0.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-23 17:25:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "iDebugAll",
    "github_project": "phonebox-plugin",
    "github_not_found": true,
    "lcname": "phonebox-plugin"
}
        
Elapsed time: 0.69998s