<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>OK, thanks for testing and feedback!<br>
    </p>
    <p>Daniel<br>
    </p>
    <div class="moz-cite-prefix">On 22.04.21 15:46, beer Ll wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAL1qiZBLVv+B1RtYboCpvOu3F1FgsxYkOE5m8aRZhH2eounszA@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Hi</div>
        <div><br>
        </div>
        <div>now it works perfectly.</div>
        <div><br>
        </div>
        <div>Many thanks</div>
        <div><br>
        </div>
        <div><br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Thu, Apr 22, 2021 at 12:04
          PM Daniel-Constantin Mierla <<a
            href="mailto:miconda@gmail.com" moz-do-not-send="true">miconda@gmail.com</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div>
            <p>Hello,</p>
            <p>I pushed a commit to fix it, seems to work with both
              tabulate 0.8.5 and 0.8.9. Try with latest git repo
              version.<br>
            </p>
            <p>I haven't tested with older versions of Python than 3.7,
              though.</p>
            <p>Cheers,<br>
              Daniel<br>
            </p>
            <div>On 22.04.21 10:50, Daniel-Constantin Mierla wrote:<br>
            </div>
            <blockquote type="cite">
              <p>Hello,</p>
              <p>it seems to be problem with tabulate 0.8.9 - I upgraded
                to it and I can reproduce. With tabulate 0.8.5 worked
                fine. I will look into it.</p>
              <p>Cheers,<br>
                Daniel<br>
              </p>
              <div>On 22.04.21 10:25, beer Ll wrote:<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">
                  <div>Hi</div>
                  <div><br>
                  </div>
                  <div>my kamcli.ini is</div>
                  <div><br>
                  </div>
                  <div>(venv) kamailio-BT:/usr/src/kamclienv # cat
                    kamcli.ini.sqlite<br>
                  </div>
                  <div>### main options</div>
                  [main]<br>
                  ; SIP domain to be used when an AoR has no domain<br>
                  domain=<a href="http://sip.test.dev" target="_blank"
                    moz-do-not-send="true">sip.test.dev</a><br>
                  <br>
                  <br>
                  ### database connectivity - URLs are used for SQL
                  Alchemy<br>
                  [db]<br>
                  type=sqlite<br>
                  driver=pysqlite<br>
                  dbpath=/etc/kamailio/kamailio.db<br>
                  ...<br>
                  rwurl=%(type)s+%(driver)s:///%(dbpath)s<br>
                  rourl=%(type)s+%(driver)s:///%(dbpath)s<br>
                  adminurl=%(type)s+%(driver)s:///%(dbpath)s<br>
                  <br>
                  scriptsdirectory=/usr/local/share/kamailio/db_sqlite<br>
                  ; outformat - the format to print database result<br>
                  ; - can be: table, json, yaml, dict or raw<br>
                  outformat=table<br>
                  <br>
                  ; outstyle - the style to print database result with
                  tabulate package<br>
                  ; - default: grid<br>
                  # outstyle=grid<br>
                  ....<br>
                  <div><br>
                  </div>
                  <div><br>
                  </div>
                  <div><br>
                  </div>
                  <div>(venv) kamailio-BT:/usr/src/kamclienv # kamcli -c
                    kamcli.ini.sqlite subscriber show</div>
                  Traceback (most recent call last):<br>
                    File "/usr/src/kamclienv/venv/bin/kamcli", line 33,
                  in <module><br>
                      sys.exit(load_entry_point('kamcli',
                  'console_scripts', 'kamcli')())<br>
                    File
                  "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                  line 829, in __call__<br>
                      return self.main(*args, **kwargs)<br>
                    File
                  "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                  line 782, in main<br>
                      rv = self.invoke(ctx)<br>
                    File
                  "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                  line 1259, in invoke<br>
                      return
                  _process_result(sub_ctx.command.invoke(sub_ctx))<br>
                    File
                  "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                  line 1259, in invoke<br>
                      return
                  _process_result(sub_ctx.command.invoke(sub_ctx))<br>
                    File
                  "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                  line 1066, in invoke<br>
                      return ctx.invoke(self.callback, **ctx.params)<br>
                    File
                  "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                  line 610, in invoke<br>
                      return callback(*args, **kwargs)<br>
                    File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/decorators.py",
                  line 73, in new_func<br>
                      return ctx.invoke(f, obj, *args, **kwargs)<br>
                    File
                  "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                  line 610, in invoke<br>
                      return callback(*args, **kwargs)<br>
                    File
                  "/usr/src/kamclienv/kamcli/kamcli/commands/cmd_subscriber.py",
                  line 235, in subscriber_show<br>
                      ioutils_dbres_print(ctx, oformat, ostyle, res)<br>
                    File "/usr/src/kamclienv/kamcli/kamcli/ioutils.py",
                  line 70, in ioutils_dbres_print<br>
                      gstring = tabulate(allrows, headers=res.keys(),
                  tablefmt=ostyle)<br>
                    File
                  "/usr/src/kamclienv/venv/lib/python3.7/site-packages/tabulate.py",
                  line 1529, in tabulate<br>
                      tabular_data, headers, showindex=showindex<br>
                    File
                  "/usr/src/kamclienv/venv/lib/python3.7/site-packages/tabulate.py",
                  line 1162, in _normalize_tabular_data<br>
                      "headers for a list of dicts is not a dict or a
                  keyword"<br>
                  <div>ValueError: headers for a list of dicts is not a
                    dict or a keyword</div>
                  <br>
                </div>
                <br>
                <div class="gmail_quote">
                  <div dir="ltr" class="gmail_attr">On Thu, Apr 22, 2021
                    at 9:41 AM Daniel-Constantin Mierla <<a
                      href="mailto:miconda@gmail.com" target="_blank"
                      moz-do-not-send="true">miconda@gmail.com</a>>
                    wrote:<br>
                  </div>
                  <blockquote class="gmail_quote" style="margin:0px 0px
                    0px 0.8ex;border-left:1px solid
                    rgb(204,204,204);padding-left:1ex">
                    <div>
                      <p>Hello,</p>
                      <p>The outstyle configuration option is for
                        kamcli, inside kamcli.ini file.<br>
                      </p>
                      <p>I just tested with sqlite and empty subscriber
                        table:</p>
                      <p># kamcli -c ../kamcli-sqlite.ini subscriber
                        show</p>
                      <p><font face="monospace">+------+------------+----------+------------+-------+--------+<br>
                          | id   | username   | domain   | password   |
                          ha1   | ha1b   |<br>
+======+============+==========+============+=======+========+<br>
+------+------------+----------+------------+-------+--------+</font></p>
                      <p>Added a user:</p>
                      <p>kamcli -c ../kamcli-sqlite.ini subscriber add
                        test password</p>
                      <p>Then listed:</p>
                      <p>kamcli -c ../kamcli-sqlite.ini subscriber show</p>
                      <p><font face="monospace">+------+------------+----------+------------+----------------------------------+----------------------------------+<br>
                          |   id | username   | domain   | password   |
                          ha1                              |
                          ha1b                             |<br>
+======+============+==========+============+==================================+==================================+<br>
                          |    1 | test       | <a
                            href="http://test.com" target="_blank"
                            moz-do-not-send="true">test.com</a> |
                          password   | 30e725cfc53ca50516be2e230edf53da
                          | a04fcbbe67702c59dc46fe4779183fe5 |<br>
+------+------------+----------+------------+----------------------------------+----------------------------------+</font><br>
                      </p>
                      <div><br>
                      </div>
                      <div>I have tabulate 0.8.5 running on Debian 10,
                        kamcli in virtual environment.<br>
                      </div>
                      <div><br>
                      </div>
                      <div>Cheers,<br>
                        Daniel</div>
                      <div><br>
                      </div>
                      <div>On 22.04.21 09:25, beer Ll wrote:<br>
                      </div>
                      <blockquote type="cite">
                        <div dir="ltr">
                          <div dir="ltr">
                            <div>Hi Daniel</div>
                            <div><br>
                            </div>
                          </div>
                          <br>
                          <div class="gmail_quote">
                            <div dir="ltr" class="gmail_attr">On Thu,
                              Apr 22, 2021 at 8:57 AM Daniel-Constantin
                              Mierla <<a
                                href="mailto:miconda@gmail.com"
                                target="_blank" moz-do-not-send="true">miconda@gmail.com</a>>
                              wrote:<br>
                            </div>
                            <blockquote class="gmail_quote"
                              style="margin:0px 0px 0px
                              0.8ex;border-left:1px solid
                              rgb(204,204,204);padding-left:1ex">
                              <div>
                                <div>
                                  <p>Hello,</p>
                                  <p>at least some of the new errors are
                                    not the same, they are related to
                                    unique key conflict, see the bottom
                                    of the traces:</p>
                                  <p>sqlite3.IntegrityError: UNIQUE
                                    constraint failed:
                                    subscriber.username,
                                    subscriber.domain</p>
                                  <p>sqlalchemy.exc.IntegrityError:
                                    (sqlite3.IntegrityError) UNIQUE
                                    constraint failed:
                                    subscriber.username,
                                    subscriber.domain<br>
                                    [SQL: insert into subscriber
                                    (username, domain, password, ha1,
                                    ha1b) values ('test', '<a
                                      href="http://sip.test.dev"
                                      target="_blank"
                                      moz-do-not-send="true">sip.test.dev</a>',
                                    'passwordtest',
                                    '96a1efd95bcd6e8e573d07ebdacab623',
                                    '025f1dc363fa8c1ce1d7f2069d94ed0f')]</p>
                                  <p>Regarding the subscriber show
                                    command, do you have any outstyle
                                    configuration option set?</p>
                                  <p>What is the version of your
                                    tabulate package?</p>
                                </div>
                              </div>
                            </blockquote>
                            <br>
                            <div>sqlite> .show<br>
                                      echo: off<br>
                                       eqp: off<br>
                                   explain: auto<br>
                                   headers: off<br>
                                      mode: list<br>
                                 nullvalue: ""<br>
                                    output: stdout<br>
                              colseparator: "|"<br>
                              rowseparator: "\n"<br>
                                     stats: off<br>
                                     width: <br>
                                  filename: /etc/kamailio/kamailio.db<br>
                            </div>
                            <div><br>
                            </div>
                            <div>(venv) kamailio-BT:/usr/src/kamclienv #
                              pip3 show tabulate<br>
                              Name: tabulate<br>
                              Version: 0.8.9<br>
                              Summary: Pretty-print tabular data<br>
                              Home-page: <a
                                href="https://github.com/astanin/python-tabulate"
                                target="_blank" moz-do-not-send="true">https://github.com/astanin/python-tabulate</a><br>
                              Author: Sergey Astanin<br>
                              Author-email: <a
                                href="mailto:s.astanin@gmail.com"
                                target="_blank" moz-do-not-send="true">s.astanin@gmail.com</a><br>
                              License: MIT<br>
                              Location:
                              /usr/src/kamclienv/venv/lib/python3.7/site-packages<br>
                              Requires: <br>
                              Required-by: kamcli</div>
                            <div><br>
                            </div>
                            <div><br>
                            </div>
                            <div>regards<br>
                            </div>
                            <div> </div>
                            <blockquote class="gmail_quote"
                              style="margin:0px 0px 0px
                              0.8ex;border-left:1px solid
                              rgb(204,204,204);padding-left:1ex">
                              <div>
                                <div>
                                  <p>Cheers,<br>
                                    Daniel</p>
                                </div>
                                <div>On 21.04.21 23:24, beer Ll wrote:<br>
                                </div>
                                <blockquote type="cite">
                                  <div dir="ltr">
                                    <div>Hi Daniel <br>
                                    </div>
                                    <div>many thanks for yours commits
                                      in git  kamcli.</div>
                                    <div><br>
                                    </div>
                                    <div>I try the new version but my
                                      errors are the same</div>
                                    <br>
                                    <div>(venv)
                                      kamailio-BT:/usr/src/kamclienv/kamcli
                                      # kamcli -c
                                      /etc/kamcli/kamcli.ini.sqlite
                                      subscriber show </div>
                                    <div><span>Traceback (most recent
                                        call last):<br>
                                      </span>  File
                                      "/usr/src/kamclienv/venv/bin/kamcli",
                                      line 33, in <module><br>
                                         
                                      sys.exit(load_entry_point('kamcli',
                                      'console_scripts', 'kamcli')())<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 829, in __call__<br>
                                          return self.main(*args,
                                      **kwargs)<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 782, in main<br>
                                          rv = self.invoke(ctx)<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 1259, in invoke<br>
                                          return
                                      _process_result(sub_ctx.command.invoke(sub_ctx))<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 1259, in invoke<br>
                                          return
                                      _process_result(sub_ctx.command.invoke(sub_ctx))<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 1066, in invoke<br>
                                          return
                                      ctx.invoke(self.callback,
                                      **ctx.params)<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 610, in invoke<br>
                                          return callback(*args,
                                      **kwargs)<br>
                                        File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/decorators.py",
                                      line 73, in new_func<span><br>
                                            return ctx.invoke(f, obj,
                                        *args, **kwargs)<br>
                                      </span>  File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 610, in invoke<br>
                                          return callback(*args,
                                      **kwargs)<br>
                                        File
                                      "/usr/src/kamclienv/kamcli/kamcli/commands/cmd_subscriber.py",
                                      line 235, in subscriber_show<br>
                                          ioutils_dbres_print(ctx,
                                      oformat, ostyle, res)<br>
                                        File
                                      "/usr/src/kamclienv/kamcli/kamcli/ioutils.py",
                                      line 70, in ioutils_dbres_print<span><br>
                                            gstring = tabulate(allrows,
                                        headers=res.keys(),
                                        tablefmt=ostyle)<br>
                                      </span>  File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/tabulate.py",
                                      line 1529, in tabulate<br>
                                          tabular_data, headers,
                                      showindex=showindex<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/tabulate.py",
                                      line 1162, in
                                      _normalize_tabular_data<span><br>
                                            "headers for a list of dicts
                                        is not a dict or a keyword"<br>
                                        ValueError: headers for a list
                                        of dicts is not a dict or a
                                        keyword<br>
                                      </span>(venv)
                                      kamailio-BT:/usr/src/kamclienv/kamcli
                                      # kamcli -c
                                      /etc/kamcli/kamcli.ini.sqlite
                                      subscriber add test passwordtest<span><br>
                                        Traceback (most recent call
                                        last):<br>
                                      </span>  File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
                                      line 1706, in _execute_context<br>
                                          cursor, statement, parameters,
                                      context<br>
                                        File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/default.py",
                                      line 716, in do_execute<br>
                                          cursor.execute(statement,
                                      parameters)<br>
                                      sqlite3.IntegrityError: UNIQUE
                                      constraint failed:
                                      subscriber.username,
                                      subscriber.domain<span><br>
                                        <br>
                                        The above exception was the
                                        direct cause of the following
                                        exception:<br>
                                        <br>
                                        Traceback (most recent call
                                        last):<br>
                                      </span>  File
                                      "/usr/src/kamclienv/venv/bin/kamcli",
                                      line 33, in <module><br>
                                         
                                      sys.exit(load_entry_point('kamcli',
                                      'console_scripts', 'kamcli')())<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 829, in __call__<br>
                                          return self.main(*args,
                                      **kwargs)<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 782, in main<br>
                                          rv = self.invoke(ctx)<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 1259, in invoke<br>
                                          return
                                      _process_result(sub_ctx.command.invoke(sub_ctx))<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 1259, in invoke<br>
                                          return
                                      _process_result(sub_ctx.command.invoke(sub_ctx))<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 1066, in invoke<br>
                                          return
                                      ctx.invoke(self.callback,
                                      **ctx.params)<br>
                                        File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 610, in invoke<br>
                                          return callback(*args,
                                      **kwargs)<br>
                                        File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/decorators.py",
                                      line 73, in new_func<span><br>
                                            return ctx.invoke(f, obj,
                                        *args, **kwargs)<br>
                                      </span>  File
                                      "/usr/src/kamclienv/venv/lib/python3.7/site-packages/click/core.py",
                                      line 610, in invoke<br>
                                          return callback(*args,
                                      **kwargs)<br>
                                        File
                                      "/usr/src/kamclienv/kamcli/kamcli/commands/cmd_subscriber.py",
                                      line 69, in subscriber_add<br>
                                          ha1b,<span><br>
                                          File "<string>", line 2,
                                        in execute<br>
                                      </span>  File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/util/deprecations.py",
                                      line 390, in warned<br>
                                          return fn(*args, **kwargs)<br>
                                        File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
                                      line 3037, in execute<br>
                                          return
                                      connection.execute(statement,
                                      *multiparams, **params)<br>
                                        File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
                                      line 1190, in execute<br>
                                          future=False,<br>
                                        File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
                                      line 1491, in _exec_driver_sql<br>
                                          distilled_parameters,<br>
                                        File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
                                      line 1749, in _execute_context<span><br>
                                            e, statement, parameters,
                                        cursor, context<br>
                                      </span>  File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
                                      line 1930, in
                                      _handle_dbapi_exception<span><br>
                                            sqlalchemy_exception,
                                        with_traceback=exc_info[2],
                                        from_=e<br>
                                      </span>  File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/util/compat.py",
                                      line 211, in raise_<br>
                                          raise exception<br>
                                        File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/base.py",
                                      line 1706, in _execute_context<br>
                                          cursor, statement, parameters,
                                      context<br>
                                        File
"/usr/src/kamclienv/venv/lib/python3.7/site-packages/sqlalchemy/engine/default.py",
                                      line 716, in do_execute<br>
                                          cursor.execute(statement,
                                      parameters)<br>
                                      sqlalchemy.exc.IntegrityError:
                                      (sqlite3.IntegrityError) UNIQUE
                                      constraint failed:
                                      subscriber.username,
                                      subscriber.domain<br>
                                      [SQL: insert into subscriber
                                      (username, domain, password, ha1,
                                      ha1b) values ('test', '<a
                                        href="http://sip.test.dev"
                                        target="_blank"
                                        moz-do-not-send="true">sip.test.dev</a>',
                                      'passwordtest',
                                      '96a1efd95bcd6e8e573d07ebdacab623',
'025f1dc363fa8c1ce1d7f2069d94ed0f')]<br>
                                      (Background on this error at: <a
href="http://sqlalche.me/e/14/gkpj" target="_blank"
                                        moz-do-not-send="true">http://sqlalche.me/e/14/gkpj</a>)</div>
                                    <div><br>
                                    </div>
                                    <div>best regards</div>
                                    <div>
                                      <div
id="gmail-m_-7527887145220403532gmail-m_-8861028049139757818gmail-m_1422917443050738590gmail-:2rl"><img
src="https://ssl.gstatic.com/ui/v1/icons/mail/images/cleardot.gif"
                                          moz-do-not-send="true"></div>
                                    </div>
                                  </div>
                                  <br>
                                  <div class="gmail_quote">
                                    <div dir="ltr" class="gmail_attr">On
                                      Wed, Apr 21, 2021 at 3:10 PM
                                      Daniel-Constantin Mierla <<a
                                        href="mailto:miconda@gmail.com"
                                        target="_blank"
                                        moz-do-not-send="true">miconda@gmail.com</a>>
                                      wrote:<br>
                                    </div>
                                    <blockquote class="gmail_quote"
                                      style="margin:0px 0px 0px
                                      0.8ex;border-left:1px solid
                                      rgb(204,204,204);padding-left:1ex">
                                      <div>
                                        <p>Hello,<br>
                                        </p>
                                        <div>On 18.04.21 22:56, beer Ll
                                          wrote:<br>
                                        </div>
                                        <blockquote type="cite">
                                          <div dir="ltr">
                                            <div>Hi ,</div>
                                            <div><br>
                                            </div>
                                            <div>I have a server test
                                              with <br>
                                            </div>
                                            <div><br>
                                            </div>
                                            <div>Debian Buster 10.9</div>
                                            <div>kamailio 5.4.5 </div>
                                            <div>kamcli 2.0.0 (similar
                                              result with 3.0.0)<br>
                                            </div>
                                            <div><br>
                                            </div>
                                            <div>I'm not able to use
                                              kamcli <br>
                                            </div>
                                            <div>with sqlite  : insert
                                              and select doesn't work <br>
                                            </div>
                                            <div>with pgsql :  insert
                                              works , select of empty
                                              table works , select table
                                              with entry doesn't work<br>
                                            </div>
                                            <div><br>
                                            </div>
                                            <div><br>
                                            </div>
                                            <div>TEST WITH SQLITE</div>
                                            <div>root@kamailio-BT:~#
                                              kamcli -c
                                              /etc/kamcli/kamcli.ini.sqlite
                                              subscriber add test
                                              password<br>
                                              Traceback (most recent
                                              call last):<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
                                              line 1706, in
                                              _execute_context<br>
                                                  cursor, statement,
                                              parameters, context<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/default.py",
                                              line 716, in do_execute<br>
                                                 
                                              cursor.execute(statement,
                                              parameters)<br>
                                              sqlite3.OperationalError:
                                              near "%": syntax error<br>
                                              <br>
                                              The above exception was
                                              the direct cause of the
                                              following exception:<br>
                                              <br>
                                              Traceback (most recent
                                              call last):<br>
                                                File "/usr/bin/kamcli",
                                              line 11, in <module><br>
                                                 
                                              load_entry_point('kamcli==2.0.0',
                                              'console_scripts',
                                              'kamcli')()<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 829, in __call__<br>
                                                  return
                                              self.main(*args, **kwargs)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 782, in main<br>
                                                  rv = self.invoke(ctx)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 1259, in invoke<br>
                                                  return
                                              _process_result(sub_ctx.command.invoke(sub_ctx))<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 1259, in invoke<br>
                                                  return
                                              _process_result(sub_ctx.command.invoke(sub_ctx))<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 1066, in invoke<br>
                                                  return
                                              ctx.invoke(self.callback,
                                              **ctx.params)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 610, in invoke<br>
                                                  return callback(*args,
                                              **kwargs)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/decorators.py",
                                              line 73, in new_func<br>
                                                  return ctx.invoke(f,
                                              obj, *args, **kwargs)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 610, in invoke<br>
                                                  return callback(*args,
                                              **kwargs)<br>
                                                File
                                              "/usr/lib/python3/dist-packages/kamcli/commands/cmd_subscriber.py",
                                              line 43, in subscriber_add<br>
                                                  e.execute('insert into
                                              subscriber (username,
                                              domain, password, ha1,
                                              ha1b) values (%s, %s, %s,
                                              %s, %s)',
                                              udata['username'],
                                              udata['domain'], password,
                                              ha1, ha1b)<br>
                                                File "<string>",
                                              line 2, in execute<br>
                                                File
"/usr/local/lib/python3.7/dist-packages/sqlalchemy/util/deprecations.py",
                                              line 390, in warned<br>
                                                  return fn(*args,
                                              **kwargs)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
                                              line 3037, in execute<br>
                                                  return
                                              connection.execute(statement,
                                              *multiparams, **params)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
                                              line 1190, in execute<br>
                                                  future=False,<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
                                              line 1491, in
                                              _exec_driver_sql<br>
                                                  distilled_parameters,<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
                                              line 1749, in
                                              _execute_context<br>
                                                  e, statement,
                                              parameters, cursor,
                                              context<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
                                              line 1930, in
                                              _handle_dbapi_exception<br>
                                                  sqlalchemy_exception,
with_traceback=exc_info[2], from_=e<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/sqlalchemy/util/compat.py",
                                              line 211, in raise_<br>
                                                  raise exception<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/base.py",
                                              line 1706, in
                                              _execute_context<br>
                                                  cursor, statement,
                                              parameters, context<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/sqlalchemy/engine/default.py",
                                              line 716, in do_execute<br>
                                                 
                                              cursor.execute(statement,
                                              parameters)<br>
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near "%":
                                              syntax error<br>
                                              [SQL: insert into
                                              subscriber (username,
                                              domain, password, ha1,
                                              ha1b) values (%s, %s, %s,
                                              %s, %s)]<br>
                                              [parameters: ('test', '<a
href="http://sip.test.dev" target="_blank" moz-do-not-send="true">sip.test.dev</a>',
                                              'password',
                                              '4380ea9069e888b5fc92996495a0f481',
'3a36aeb0df7f4504cc5d9b97dab540e5')]<br>
                                              (Background on this error
                                              at: <a
                                                href="http://sqlalche.me/e/14/e3q8"
                                                target="_blank"
                                                moz-do-not-send="true">http://sqlalche.me/e/14/e3q8</a>)</div>
                                            <div><br>
                                            </div>
                                            <div>root@kamailio-BT:~#
                                              kamctl add  test password<br>
                                              -e sqlite_query:
                                              /usr/bin/sqlite3
                                               /etc/kamailio/kamailio.db
                                              insert into subscriber
                                              (username,
                                              domain,ha1,ha1b,password)
                                              values ('test','<a
                                                href="http://sip.test.dev"
                                                target="_blank"
                                                moz-do-not-send="true">sip.test.dev</a>','4380ea9069e888b5fc92996495a0f481','3a36aeb0df7f4504cc5d9b97dab540e5','password');<br>
                                              -e new user 'test' added</div>
                                            <div><br>
                                            </div>
                                            <div>root@kamailio-BT:~#
                                              kamcli -c
                                              /etc/kamcli/kamcli.ini.sqlite
                                              subscriber show<br>
                                              Traceback (most recent
                                              call last):<br>
                                                File "/usr/bin/kamcli",
                                              line 11, in <module><br>
                                                 
                                              load_entry_point('kamcli==2.0.0',
                                              'console_scripts',
                                              'kamcli')()<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 829, in __call__<br>
                                                  return
                                              self.main(*args, **kwargs)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 782, in main<br>
                                                  rv = self.invoke(ctx)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 1259, in invoke<br>
                                                  return
                                              _process_result(sub_ctx.command.invoke(sub_ctx))<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 1259, in invoke<br>
                                                  return
                                              _process_result(sub_ctx.command.invoke(sub_ctx))<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 1066, in invoke<br>
                                                  return
                                              ctx.invoke(self.callback,
                                              **ctx.params)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 610, in invoke<br>
                                                  return callback(*args,
                                              **kwargs)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/decorators.py",
                                              line 73, in new_func<br>
                                                  return ctx.invoke(f,
                                              obj, *args, **kwargs)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 610, in invoke<br>
                                                  return callback(*args,
                                              **kwargs)<br>
                                                File
                                              "/usr/lib/python3/dist-packages/kamcli/commands/cmd_subscriber.py",
                                              line 118, in
                                              subscriber_show<br>
                                                 
                                              ioutils_dbres_print(ctx,
                                              oformat, ostyle, res)<br>
                                                File
                                              "/usr/lib/python3/dist-packages/kamcli/ioutils.py",
                                              line 45, in
                                              ioutils_dbres_print<br>
                                                  gstring =
                                              tabulate(allrows,
                                              headers=res.keys(),
                                              tablefmt=ostyle)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/tabulate.py",
                                              line 1529, in tabulate<br>
                                                  tabular_data, headers,
                                              showindex=showindex<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/tabulate.py",
                                              line 1162, in
                                              _normalize_tabular_data<br>
                                                  "headers for a list of
                                              dicts is not a dict or a
                                              keyword"<br>
                                              ValueError: headers for a
                                              list of dicts is not a
                                              dict or a keyword<br>
                                            </div>
                                            <div><br>
                                            </div>
                                            <div><br>
                                            </div>
                                            <div>TEST WITH PGSQL</div>
                                            <div>root@kamailio-BT:~#
                                              kamcli -c
                                              /etc/kamcli/kamcli.ini.pgsql
                                              subscriber show<br>
+------+------------+----------+------------+-------+--------+<br>
                                              | id   | username   |
                                              domain   | password   |
                                              ha1   | ha1b   |<br>
+======+============+==========+============+=======+========+<br>
+------+------------+----------+------------+-------+--------+<br>
                                              root@kamailio-BT:~# kamcli
                                              -c
                                              /etc/kamcli/kamcli.ini.pgsql
                                              subscriber add test
                                              password<br>
                                              root@kamailio-BT:~# kamcli
                                              -c
                                              /etc/kamcli/kamcli.ini.pgsql
                                              subscriber show<br>
                                              Traceback (most recent
                                              call last):<br>
                                                File "/usr/bin/kamcli",
                                              line 11, in <module><br>
                                                 
                                              load_entry_point('kamcli==2.0.0',
                                              'console_scripts',
                                              'kamcli')()<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 829, in __call__<br>
                                                  return
                                              self.main(*args, **kwargs)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 782, in main<br>
                                                  rv = self.invoke(ctx)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 1259, in invoke<br>
                                                  return
                                              _process_result(sub_ctx.command.invoke(sub_ctx))<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 1259, in invoke<br>
                                                  return
                                              _process_result(sub_ctx.command.invoke(sub_ctx))<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 1066, in invoke<br>
                                                  return
                                              ctx.invoke(self.callback,
                                              **ctx.params)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 610, in invoke<br>
                                                  return callback(*args,
                                              **kwargs)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/decorators.py",
                                              line 73, in new_func<br>
                                                  return ctx.invoke(f,
                                              obj, *args, **kwargs)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/click/core.py",
                                              line 610, in invoke<br>
                                                  return callback(*args,
                                              **kwargs)<br>
                                                File
                                              "/usr/lib/python3/dist-packages/kamcli/commands/cmd_subscriber.py",
                                              line 118, in
                                              subscriber_show<br>
                                                 
                                              ioutils_dbres_print(ctx,
                                              oformat, ostyle, res)<br>
                                                File
                                              "/usr/lib/python3/dist-packages/kamcli/ioutils.py",
                                              line 45, in
                                              ioutils_dbres_print<br>
                                                  gstring =
                                              tabulate(allrows,
                                              headers=res.keys(),
                                              tablefmt=ostyle)<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/tabulate.py",
                                              line 1529, in tabulate<br>
                                                  tabular_data, headers,
                                              showindex=showindex<br>
                                                File
                                              "/usr/local/lib/python3.7/dist-packages/tabulate.py",
                                              line 1162, in
                                              _normalize_tabular_data<br>
                                                  "headers for a list of
                                              dicts is not a dict or a
                                              keyword"<br>
                                              ValueError: headers for a
                                              list of dicts is not a
                                              dict or a keyword</div>
                                            <div><br>
                                            </div>
                                            <div>root@kamailio-BT:~#
                                              kamctl show test<br>
                                              1|test|<a
                                                href="http://sip.test.dev"
                                                target="_blank"
                                                moz-do-not-send="true">sip.test.dev</a>|password|4380ea9069e888b5fc92996495a0f481|3a36aeb0df7f4504cc5d9b97dab540e5<br>
                                            </div>
                                          </div>
                                        </blockquote>
                                        <p>thanks for reporting!</p>
                                        <p>I could reproduce the sqlite
                                          problems, they seemed to be
                                          related to the sql driver for
                                          sqlalchemy that was not
                                          supporting variadic number of
                                          parameters to the sql query
                                          execution function. I replaced
                                          with string formatting and now
                                          seems to work. Try with latest
                                          git version and report back if
                                          there are still issues.</p>
                                        <p>The one for postgres I
                                          couldn't reproduce, but it was
                                          after a commit related to
                                          output style default value.
                                          Although it didn't seem
                                          related, it worked what I
                                          tried for postgres. Again,
                                          test now with latest git
                                          version and if there is still
                                          a problem, provide updated
                                          traces.</p>
                                        <p>Cheers,<br>
                                          Daniel<br>
                                        </p>
                                        <pre cols="72">-- 
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank" moz-do-not-send="true">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank" moz-do-not-send="true">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank" moz-do-not-send="true">www.linkedin.com/in/miconda</a>
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
  * <a href="https://www.asipto.com/sw/kamailio-advanced-training-online/" target="_blank" moz-do-not-send="true">https://www.asipto.com/sw/kamailio-advanced-training-online/</a></pre>
                                      </div>
                                    </blockquote>
                                  </div>
                                  <br>
                                  <fieldset></fieldset>
                                  <pre>_______________________________________________
Kamailio (SER) - Users Mailing List
<a href="mailto:sr-users@lists.kamailio.org" target="_blank" moz-do-not-send="true">sr-users@lists.kamailio.org</a>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" target="_blank" moz-do-not-send="true">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
                                </blockquote>
                                <p><br>
                                </p>
                                <pre cols="72">-- 
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank" moz-do-not-send="true">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank" moz-do-not-send="true">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank" moz-do-not-send="true">www.linkedin.com/in/miconda</a>
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
  * <a href="https://www.asipto.com/sw/kamailio-advanced-training-online/" target="_blank" moz-do-not-send="true">https://www.asipto.com/sw/kamailio-advanced-training-online/</a></pre>
                              </div>
                            </blockquote>
                          </div>
                        </div>
                      </blockquote>
                      <pre cols="72">-- 
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank" moz-do-not-send="true">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank" moz-do-not-send="true">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank" moz-do-not-send="true">www.linkedin.com/in/miconda</a>
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
  * <a href="https://www.asipto.com/sw/kamailio-advanced-training-online/" target="_blank" moz-do-not-send="true">https://www.asipto.com/sw/kamailio-advanced-training-online/</a></pre>
                    </div>
                  </blockquote>
                </div>
              </blockquote>
              <pre cols="72">-- 
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank" moz-do-not-send="true">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank" moz-do-not-send="true">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank" moz-do-not-send="true">www.linkedin.com/in/miconda</a>
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
  * <a href="https://www.asipto.com/sw/kamailio-advanced-training-online/" target="_blank" moz-do-not-send="true">https://www.asipto.com/sw/kamailio-advanced-training-online/</a></pre>
            </blockquote>
            <pre cols="72">-- 
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank" moz-do-not-send="true">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank" moz-do-not-send="true">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank" moz-do-not-send="true">www.linkedin.com/in/miconda</a>
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
  * <a href="https://www.asipto.com/sw/kamailio-advanced-training-online/" target="_blank" moz-do-not-send="true">https://www.asipto.com/sw/kamailio-advanced-training-online/</a></pre>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Daniel-Constantin Mierla -- <a class="moz-txt-link-abbreviated" href="http://www.asipto.com">www.asipto.com</a>
<a class="moz-txt-link-abbreviated" href="http://www.twitter.com/miconda">www.twitter.com/miconda</a> -- <a class="moz-txt-link-abbreviated" href="http://www.linkedin.com/in/miconda">www.linkedin.com/in/miconda</a>
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
  * <a class="moz-txt-link-freetext" href="https://www.asipto.com/sw/kamailio-advanced-training-online/">https://www.asipto.com/sw/kamailio-advanced-training-online/</a></pre>
  </body>
</html>