From 557ed051d692251d349d14fd76940829a19a1e43 Mon Sep 17 00:00:00 2001 From: clerie Date: Thu, 1 Sep 2022 13:33:27 +0200 Subject: [PATCH] Describe system architecture --- README.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/README.md b/README.md index 658f2e7..c9a2ff8 100644 --- a/README.md +++ b/README.md @@ -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. 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. This can be a VM too, but you have to adapt stuff. @@ -417,3 +421,43 @@ List some options: ``` 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.