Only kamctl and kamcli overlap in what they try to be. Maybe at some point one will become more popular and the other can be obsoleted. kamctl tries to have dependencies only among core utils of a unix/linux system, but then it has the limitations of a shell script.


kamcmd is just a binrpc client and can be used inside kamctl if wanted to send rpc commands via binrpc. In the past (ser/openser times) we had a unix socket client app written in c and installed. If kamcmd is going to be obsoleted, the ctl module makes no sense anymore. binrpc is an alternative to jsonrpc and xmlrpc, just that for these two curl app can be used as client.


Cheers,
Daniel


On 16.10.18 21:18, Samuel F. wrote:
Alright, I was more thinking about it from a newcomer perspective. When one is evaluating Kamailio, it will be difficult to understand what to use. Documentations and tutorials everywhere will be messy since all of them will use different tools. 

Also, from a development perspective, is it not a lot to maintain 3 CLI tools?

If one could replace the other two, from my limited understanding, I think it would be great to consider deprecating the older ones when/if kamcli has full feature parity with the others.

Cheers, Samuel

From: Daniel-Constantin Mierla <miconda@gmail.com>
Sent: Tuesday, October 16, 2018 19:43
To: Samuel F.; Kamailio (SER) - Users Mailing List
Subject: Re: [SR-Users] kamcli v1.1.0 released
 

None of them is deprecated at this moment.


Both kamctl and kamcli can execute rpc commands, but over jsonrpc (relying on jsonrpcs module), not over binrpc (which relies on ctl module) like kamcmd. The features in kamcmd not existing in the other are tab completion for rpc command names and session like connection (can keep the history of rpc commands in the same session).

Not sure, not being a Python developer, but for kamcli it might be easy to add tab completion for rpc command names, they can be retrieved via rpc command system.listMethods. Even more, kamcli relies on Python's Click framework and I read that it should be easy to add support for bash/shell completion of its arguments.

For the moment, I would say that kamctl/kamdbctl are enough if you work with a pretty standard kamailio deployment. Kamcli would be more useful if you need to extend the control tool with some customized functionality.

Cheers,
Daniel

On 16.10.18 19:17, Samuel F. wrote:
Thank you for the clarifications. It would be great to add that to the wiki.

It would also be nice to have a recommendation to users what tool should be used by newcomers, ie. what is currently the tool under development / not being deprecated.

From: Daniel-Constantin Mierla <miconda@gmail.com>
Sent: Tuesday, October 16, 2018 16:10
To: Samuel F.; Kamailio (SER) - Users Mailing List
Subject: Re: [SR-Users] kamcli v1.1.0 released
 

Probably we should put this information somewhere in the wiki, for now here is sort of short presentation for each:


1) kamctl and kamdbctl are related, both being shell scripts (developed over the time from the old serctl/openserctl), the first is for interacting with a kamailio instances, the second is only for creating (and managing) the database structure needed by kamailio


2) kamcmd is practically only a binary rpc client that interacts with ctl module from kamailio -- this was developed by SER project during 2005-2008 (when we were separately)


3) kamcli is written in Python and aims to become a (better) alternative to kamctl (and kamdbctl), with a plugin like architecture to extend it with new subcommands, more flexibility (e.g., modules/libs from python that can be used) and better error handling


For example, adding a new subcommand for kamcli means adding a python script inside commands folder. This comes handy if you have a kamailio installation using a custom database table that you access via sqlops -- with few lines of python script you can add a subcommand to manage its records (add/remove/update), doing validation of the values with python expressions to avoid inserting invalid records...


Another nice feature of kamcli vs kamctl is the ability to choose the format for output -- e.g., jsonrpc response can be presented in a compact form as yaml instead of json.


Overall, kamctl and kamdbctl are part of kamailio source tree and packaged inside kamailio debs/rpms, likely to stay so, no plans to replace/remove them, at least in the near future.


kamcli is a separate repository (https://github.com/kamailio/kamcli) and it is going to have its own deb/rpm file (actually Victor already built the deb package, available via deb.kamailio.org repositories).


Cheers,
Daniel


On 16.10.18 15:41, Samuel F. wrote:
Great and thank you!

Is there a writeup on how these tools differ and what one should use?

kamcmd
kamcli
kamctl
kamdbctl


From: sr-users <sr-users-bounces@lists.kamailio.org> on behalf of Daniel-Constantin Mierla <miconda@gmail.com>
Sent: Tuesday, October 16, 2018 10:03
To: Kamailio (SER) - Devel Mailing List; Kamailio (SER) - Users Mailing List; business@lists.kamailio.org
Subject: [SR-Users] kamcli v1.1.0 released
 
Hello,

kamcli tool just got its first official release, a step forward in the
process of packaging it.

It is a command line tool that aims to be a modern alternative to the
venerable kamctl, being written in Python and having already a large set
of implemented sub-commands, such as:

  * subscriber – manage SIP subscribers
  * ul – manage user location records
  * address – manage permissions address records
  * aliasdb – manage database aliases
  * db – manage kamailio database content
  * dialog – manage active calls (dialog)
  * dialplan – manage dialplan records
  * dispatcher – manage load balancer (dispatcher)
  * group – manage group membership records (acl)
  * moni – continuous refresh of the values for a list of statistics
  * mtree – manage memory trees (mtree)
  * ps – print the details for kamailio running processes
  * rpc – interact with kamailio via jsonrpc control commands (alias of
jsonrpc)
  * rpcmethods – return the list of available RPC methods (commands)
  * speeddial – manage speed dial records
  * srv – server management commands (sockets, aliases, …)
  * stats – get kamailio internal statistics
  * tls – management commands for TLS profiles and connections
  * uptime – print the uptime for kamailio instance

The news article for this release is available at:

  * https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.kamailio.org%2Fw%2F2018%2F10%2Fkamcli-v1-1-0-released%2F&amp;data=02%7C01%7C%7Cfed7a25d71b24b0796fe08d6333e2a8d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636752739421479581&amp;sdata=e%2B3CSXIFa1ka08nYWWm%2FhI9Jwu4QBOmZbyu3KQ5m64s%3D&amp;reserved=0

The corresponding tag in the github repository being:

  * https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fkamailio%2Fkamcli%2Freleases%2Ftag%2Fv1.1.0&amp;data=02%7C01%7C%7Cfed7a25d71b24b0796fe08d6333e2a8d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636752739421479581&amp;sdata=pJsL8bSsrFoOiOXhBH1RVtySl03Oa958ErORwhfGXbU%3D&amp;reserved=0

How to install kamcli and examples of usage can be found at:

  * https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fkamailio%2Fkamcli%2Fblob%2Fv1.1%2FREADME.md&amp;data=02%7C01%7C%7Cfed7a25d71b24b0796fe08d6333e2a8d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636752739421479581&amp;sdata=C5O%2FD7ahjlVmoNexzZ0yziOhSwR%2BNzP7UHeoSMZUtF0%3D&amp;reserved=0

Cheers,
Daniel

--
Daniel-Constantin Mierla -- https://eur04.safelinks.protection.outlook.com/?url=www.asipto.com&amp;data=02%7C01%7C%7Cfed7a25d71b24b0796fe08d6333e2a8d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636752739421479581&amp;sdata=EV9GFvqdMpagr6xmbVexTWRP2PtLBA3FIwsoIBbNV9M%3D&amp;reserved=0
https://eur04.safelinks.protection.outlook.com/?url=www.twitter.com%2Fmiconda&amp;data=02%7C01%7C%7Cfed7a25d71b24b0796fe08d6333e2a8d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636752739421479581&amp;sdata=3nDVe8jZ9QYeNqVjj07CuIA2qkyzfoQtP8GPc8VwATY%3D&amp;reserved=0 -- https://eur04.safelinks.protection.outlook.com/?url=www.linkedin.com%2Fin%2Fmiconda&amp;data=02%7C01%7C%7Cfed7a25d71b24b0796fe08d6333e2a8d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636752739421479581&amp;sdata=E%2F7Hxus5XiJJySRmORIGM0ZUyexzK7FNwgnzUkCbLRo%3D&amp;reserved=0
Kamailio World Conference -- https://eur04.safelinks.protection.outlook.com/?url=www.kamailioworld.com&amp;data=02%7C01%7C%7Cfed7a25d71b24b0796fe08d6333e2a8d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636752739421479581&amp;sdata=nSzkZakzIo%2FoFXCPvV%2FqUCdXn90WAGlFmB%2B3lsh9Tlo%3D&amp;reserved=0
Kamailio Advanced Training, Nov 12-14, 2018, in Berlin -- https://eur04.safelinks.protection.outlook.com/?url=www.asipto.com&amp;data=02%7C01%7C%7Cfed7a25d71b24b0796fe08d6333e2a8d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636752739421479581&amp;sdata=EV9GFvqdMpagr6xmbVexTWRP2PtLBA3FIwsoIBbNV9M%3D&amp;reserved=0


_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.kamailio.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fsr-users&amp;data=02%7C01%7C%7Cfed7a25d71b24b0796fe08d6333e2a8d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636752739421479581&amp;sdata=ZIVuOB2ncShUziDuIh%2BoalsUNMLOl86ZyC6w%2F4Ip%2FSQ%3D&amp;reserved=0

-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference -- www.kamailioworld.com
Kamailio Advanced Training, Nov 12-14, 2018, in Berlin -- www.asipto.com

-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference -- www.kamailioworld.com
Kamailio Advanced Training, Nov 12-14, 2018, in Berlin -- www.asipto.com

-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference -- www.kamailioworld.com
Kamailio Advanced Training, Nov 12-14, 2018, in Berlin -- www.asipto.com