Kamailio Command Line Interface Control Tool
Kamcli is using the following Python frameworks:
Kamcli prototype is:
kamcli <command> [params]
Each command is implemented as a plugin, its code residing in a single Python file located in kamcli/commands/. The filename is prefixed by cmd_, followed by command name and then the extension .py.
Development of kamcli has its starting point in the complex example of Click:
Other examples provided by Click are good source of inspiration:
In short, the steps for adding a new command (refered also as plugin or module):
Once implemented, the new command should be immediately available as:
kamcli newcommand ...
The commands dispatcher (kamcli/commands/cmd_dispatcher.py) or address (kamcli/commands/cmd_address.py) can be a good reference to look at and reuse for implementing new commands.
If the new command is executing MI or JSONRPC commands to kamailio, add the appropriate mapping inside the kamcli/iorpc.py file to the variable COMMAND_NAMES. The recommendation is to use the RPC command as the common name and then map the MI variant - MI is obsoleted and scheduled to be removed.