view doc/libervia-cli/profile.rst @ 4231:e11b13418ba6

plugin XEP-0353, XEP-0234, jingle: WebRTC data channel signaling implementation: Implement XEP-0343: Signaling WebRTC Data Channels in Jingle. The current version of the XEP (0.3.1) has no implementation and contains some flaws. After discussing this on xsf@, Daniel (from Conversations) mentioned that they had a sprint with Larma (from Dino) to work on another version and provided me with this link: https://gist.github.com/iNPUTmice/6c56f3e948cca517c5fb129016d99e74 . I have used it for my implementation. This implementation reuses work done on Jingle A/V call (notably XEP-0176 and XEP-0167 plugins), with adaptations. When used, XEP-0234 will not handle the file itself as it normally does. This is because WebRTC has several implementations (browser for web interface, GStreamer for others), and file/data must be handled directly by the frontend. This is particularly important for web frontends, as the file is not sent from the backend but from the end-user's browser device. Among the changes, there are: - XEP-0343 implementation. - `file_send` bridge method now use serialised dict as output. - New `BaseTransportHandler.is_usable` method which get content data and returns a boolean (default to `True`) to tell if this transport can actually be used in this context (when we are initiator). Used in webRTC case to see if call data are available. - Support of `application` media type, and everything necessary to handle data channels. - Better confirmation message, with file name, size and description when available. - When file is accepted in preflight, it is specified in following `action_new` signal for actual file transfer. This way, frontend can avoid the display or 2 confirmation messages. - XEP-0166: when not specified, default `content` name is now its index number instead of a UUID. This follows the behaviour of browsers. - XEP-0353: better handling of events such as call taken by another device. - various other updates. rel 441
author Goffi <goffi@goffi.org>
date Sat, 06 Apr 2024 12:57:23 +0200
parents ba4ef64a6938
children
line wrap: on
line source

==================================
profile: Libervia profile handling
==================================

Profiles are the names associated with accounts in Libervia, for more informations you can
check :ref:`glossary`. The `profile` commands help you create/delete/modify and manage
profiles.


connect
=======

Unsurprisingly this command connects your profile, i.e. log-in your XMPP account. This
command uses :ref:`libervia-cli_common_profile` common commands, so you can use either ``-c,
--connect`` to connect to XMPP server, or ``--start-session`` if you want to start Libervia
profile session without connecting to XMPP server (for instance if you want to modify
parameters without connecting to XMPP server).

Note that :ref:`libervia-cli_common_profile` common commands are available in commands needing a
connected profile, ``li profile connect`` is interesting if you only want to connect your
profile/start a session.

example
-------

Connect the default profile::

  $ li profile connect -c


disconnect
==========

Disconnect your profile from XMPP server. There is no option beside the
:ref:`libervia-cli_common_profile` common options.

example
-------

Disconnect the profile ``pierre``::

  $ li profile disconnect -p pierre

.. _li_profile_create:

create
======

Create a new Libervia profile. The only mandatory argument is the profile name, but you'll
probably want to associate an XMPP jid with ``-j JID, --jid JID`` and a profile password
with ``-p PASSWORD, --password PASSWORD``. By default, profile password will be used for
XMPP password (see note below), but you may specify XMPP password with ``-x PASSWORD,
--xmpp-password PASSWORD``.

Libervia is also capable to manage components, which can be seen as XMPP server independent
plugins. To create a component profile, you'll have to use ``-C COMPONENT, --component
COMPONENT`` where ``COMPONENT`` is the component entry point (check the documentation of
the component that you want to use to get its entry point).

If you want a profile to connect automatically on backend startup (notably useful for
components), you can use the ``-A [{true,false}], --autoconnect [{true,false}]`` argument.

.. note::

   profile password and XMPP password are not the same: the profile password is the
   password of your Libervia profile, while the XMPP password is the one checked by your XMPP
   server. If specify a jid with ``--jid`` and you don't specify an XMPP password, the
   profile password will be used by default.

   The reason to have distinct password is that you may use a different password for
   profile, including an empty one if you want Libervia to connect your profile without
   having to enter a password. Also the XMPP password is encrypted in database using the
   profile password (which is not stored in database, only a hash is kept).


.. note::

   passwords in li are currently specified directly on the command-line and not prompted,
   this is not safe from a security point of view as people can see it on the screen, it
   may stay in your shell history, or visible on process list. Keep that in mind if you're
   in a public environment or on a public machine. This will be improved for Libervia 0.8.

examples
--------

Nestor wants to create a profile for its account on ``example.org``, he specifies a
profile password only, so it will also be used as the XMPP password::

  $ li profile create nestor -j nestor@example.org -p some_password

Create a component profile for the file sharing component (whose entry point is
``file_sharing``). The jid of the service is specified with ``--jid`` (note that we don't
use a node as it is a jid of a component) and the ``--xmpp-password`` is the shared
secret. Here the profile password is kept empty to not have to enter manually the XMPP
password each time we connect the service. We use the ``-A`` option to set
autoconnection::

  $ li profile create file_sharing -j files.example.org -p "" --xmpp-password
  some_shared_secret -C file_sharing -A


default
=======

This command simply prints the default profile (i.e. the profile used when none is
specified with ``-p PROFILE, --profile PROFILE``). The default profile is either the first
one that you've created, or the one you have explicitly set as default.

example
-------

Print default profile::

  $ li profile default


delete
======

Delete a profile and all its associated data. This delete the Libervia profile and associated
data (i.e. local data), but doesn't request the XMPP server to delete anything.

By default a confirmation is requested, use ``-f, --force`` to avoid it (be cautious with
this option).

example
-------

Delete the profile of Pierre::

  $ li profile delete pierre


info
====

Display information on a profile. For now, only the registered jid is shown, and
optionally the XMPP password. To display the XMPP password, use ``--show-password`` but be
careful that nobody can see your screen, as **this password will be shown in clear text**.

example
-------

Show jid and XMPP password for default profile::

  $ li profile info --show-password


list
====

Show all profiles. You can use ``-c, --clients`` to show only client profiles, and ``-C,
--components`` to show only component profiles.

example
-------

Show all profiles::

  $ li profile list


modify
======

Update an existing profile. You can use this command to change profile password (with ``-w
PASSWORD, --password PASSWORD``) or even disable it (with ``--disable-password``, this is
equivalent to using an empty profile password ; be cautious with this option, see the note
below).

With ``-j JID, --jid JID`` and ``-x PASSWORD, --xmpp-password PASSWORD`` you can change
XMPP jid and password.

This command can also be used to select the default password, use the ``-D, --default``
flag for that.

.. note::

   Be cautious with ``--disable-password`` that means that no password will be needed with
   any frontend of Libervia to use this profile, and that XMPP password will be easy to
   retrieve for anybody having an access to the machine where Libervia is installed

examples
--------

Pierre has changed server, he can update his jid and password like this::

  $ li profile modify -p pierre -j pierre@example.org -x new_password

Use ``louise`` as default profile::

  $ li profile modify -p louise -D

Disable profile password for default profile (be cautious, see the note above)::

  $ li profile modify --disable-password