MuditaOS call library that is able to perform:
The call logic is one of oldest functionalities in the OS, which was being changed mulitiple times in the past. Therefore it has multiple visible (mis)conceptions. Curent aproach we want to keep is:
NOTE: Historically lots of state keeping was done in application call, while quite a bit of logic was glued in ServiceCellular - this is wrong way to go.
This library's goal is to encapsulate the whole call flow/flows we can have. It's end goal is to provide: actions and guards to write call state machine to asure full control over call processing.
Public api headers should be placed in include/call/ catalog - these are exported in cmake to include paths for related libraries
All other headers should not be placed there. These are private internals of the library
CellularCall.hpp is written such as:
api catalog
State machine is written using boost::stm
NOTE API catalog should and can be further split into api header and platform implementation.
Call state machine can be generated with:
ninja call_uml
call_uml > call.puml
Latest generated UML:
NOTE:* The UML is generated automatically, for better readability please change lambdas to functions