Describe system architecture

This commit is contained in:
clerie 2022-09-01 13:33:27 +02:00
parent 9a84809984
commit 557ed051d6

View File

@ -7,6 +7,10 @@ A simple to use, good enough phone system for medium sized DECT networks.
FieldPOC requires a Mitel SIP DECT phone system, i.e. RFP L43 WLAN. FieldPOC requires a Mitel SIP DECT phone system, i.e. RFP L43 WLAN.
Make sure you have the equipment, else this software is quit useless. Make sure you have the equipment, else this software is quit useless.
This is more a sample setup.
Everything described here can be done on multiple different ways.
We just try to document a way that is proven to work.
Get a computer, i.e. an APU Board, and install Archlinux on it. Get a computer, i.e. an APU Board, and install Archlinux on it.
This can be a VM too, but you have to adapt stuff. This can be a VM too, but you have to adapt stuff.
@ -417,3 +421,43 @@ List some options:
``` ```
python -m fieldpoc.run --help python -m fieldpoc.run --help
``` ```
## Architecture
FieldPOC is daemon that takes a defined state and makes all connected services fit that state.
Each connected service is observed by a dedicated class executed in a seperate thread.
There exist some more classes and threads to just glue everything together.
### `extensions.json`
The `extensions.json` file is the core of the whole setup and defines the state.
It contains which extensions exist and for what they should be used.
### `fieldpoc.py`
This file containes the main class `FieldPOC`.
It spawns the mentioned threads, initializes other classes and provices communication queues between the threads/classes.
### `config.py`
This manages FieldPOCs configuration.
### `controller.py`
The controller provices an interactive interface to manage and debug FieldPOC.
### `run.py`
This is a thin wrapper to start FieldPOC.
### `dect.py`
This deals with the Mitel OMM and configures all phones based on the current state.
### `routing.py`
This part sets up Yate using Ywsd, registers all extensions and configures routing.
### `ywsd.py`
This starts Ywsd with FieldPOC so you don't have to start it seperately.