Mercurial > libervia-backend
view doc/libervia-cli/index.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 | 4705f80b6e23 |
children |
line wrap: on
line source
.. _libervia-cli_documentation: ============ Libervia CLI ============ Libervia CLI is the Command Line Interface of Libervia ``libervia-cli`` is the command to launch it. ``li`` is short alias for ``libervia-cli``, it is the command used through this documentation. Overview ======== ``li`` is a powerful tool to work with Libervia/XMPP. With it you can send chat messages, share files, retrieve avatars, write blog entries, etc. Usage ===== To get help on commands or their options, use:: $ li --help which can be used on any command, so if you need help on ``message send`` command, just do:: $ li message send --help With li, you always enter commands first, then options and arguments. There are several levels of commands: first one is the main category (``message``, ``blog``, ``avatar``, etc.), then there are often subcommands (e.g. ``message send``). After the commands come the options. For instance if you want to send a message, you can get the available options with ``--help`` as explained above:: $ li message send --help usage: li message send [-h] [-p PROFILE] [--pwd PASSWORD] [-c] [-l LANG] [-s] [-n] [-S SUBJECT] [-L SUBJECT_LANG] [-t {chat,error,groupchat,headline,normal,auto}] [-e ALGORITHM] [--encrypt-noreplace] [-x | -r] jid positional arguments: jid the destination jid optional arguments: -h, --help show this help message and exit -p PROFILE, --profile PROFILE Use PROFILE profile key (default: @DEFAULT@) --pwd PASSWORD Password used to connect profile, if necessary -c, --connect Connect the profile before doing anything else -l LANG, --lang LANG language of the message -s, --separate separate xmpp messages: send one message per line instead of one message alone. -n, --new-line add a new line at the beginning of the input (usefull for ascii art ;)) -S SUBJECT, --subject SUBJECT subject of the message -L SUBJECT_LANG, --subject_lang SUBJECT_LANG language of subject -t {chat,error,groupchat,headline,normal,auto}, --type {chat,error,groupchat,headline,normal,auto} type of the message -e ALGORITHM, --encrypt ALGORITHM encrypt message using given algorithm --encrypt-noreplace don't replace encryption algorithm if an other one is already used -x, --xhtml XHTML body If you want to send a message to, say, ``pierre@example.net``, and encrypt it with OMEMO, just do the following:: echo "hi, I'm writing with li" | li message send -e omemo pierre@example.net (note that with OMEMO, you need to have previously validated fingerprint of your contact for this to work). The different commands are explained in dedicated sections. .. toctree:: :caption: li commands: :glob: :maxdepth: 2 common_arguments * Tutorial ======== You can check this third party tutorial: https://blog.agayon.be/sat_jp.html