Compare commits
1 Commits
staging.ma
...
master-dis
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
56fbcd1c41 | [IMP] discuss: add documentation for discuss RTC |
|
|
@@ -162,13 +162,13 @@ upper-right corner of the database header.
|
|||
.. seealso::
|
||||
- :doc:`discuss/team_communication`
|
||||
- :doc:`/applications/essentials/activities`
|
||||
- :doc:`discuss/ice_servers`
|
||||
- :doc:`discuss/calls`
|
||||
- :doc:`discuss/chatter`
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
discuss/team_communication
|
||||
discuss/ice_servers
|
||||
discuss/calls
|
||||
discuss/chatter
|
||||
discuss/canned_responses
|
||||
|
|
|
|||
123
content/applications/productivity/discuss/calls.rst
Normal file
|
|
@@ -0,0 +1,123 @@
|
|||
=====
|
||||
Calls
|
||||
=====
|
||||
|
||||
The Discuss calls feature enables real-time voice and video communication within Odoo. This
|
||||
functionality allows team members to collaborate in real time, share screens, and conduct meetings
|
||||
directly from the Odoo interface.
|
||||
|
||||
Starting a call
|
||||
===============
|
||||
|
||||
You can initiate a call from different places in Odoo:
|
||||
|
||||
From a Discuss channel
|
||||
----------------------
|
||||
|
||||
1. Open the **Discuss** app.
|
||||
2. Select a channel from the sidebar.
|
||||
3. Click the :icon:`fa-phone` :guilabel:`(phone)` icon in the top-right corner to start a call
|
||||
or the :icon:`fa-video-camera` :guilabel:`(video camera)` icon to start directly with the camera.
|
||||
|
||||
.. image:: calls/discuss-call.png
|
||||
:align: center
|
||||
:alt: Start a call from a Discuss channel
|
||||
|
||||
From a chat window
|
||||
------------------
|
||||
|
||||
(this includes live chat)
|
||||
|
||||
1. Click on a chat window.
|
||||
2. Click the :icon:`fa-phone` :guilabel:`(phone)` icon or the :icon:`fa-video-camera`
|
||||
:guilabel:`(video camera)` icon in the top-right corner of the chat window.
|
||||
|
||||
.. image:: calls/chat-window-call.png
|
||||
:align: center
|
||||
:alt: Start a call from a chat window
|
||||
|
||||
Receiving a call
|
||||
================
|
||||
|
||||
When someone starts a call in a direct message or group chat:
|
||||
|
||||
1. An invitation notification appears in the upper-right corner of your screen.
|
||||
2. You can:
|
||||
|
||||
- Click :guilabel:`Accept` to join with audio only
|
||||
- Click :guilabel:`Accept with camera` to join with video
|
||||
- Click :guilabel:`Preview my camera` to check your video before accepting
|
||||
- Click :guilabel:`Refuse` to decline the call
|
||||
|
||||
Call settings
|
||||
=============
|
||||
|
||||
.. image:: calls/call-settings.png
|
||||
:align: center
|
||||
:alt: Settings button in the top right of the Discuss app
|
||||
|
||||
.. image:: calls/call-settings-menu.png
|
||||
:align: center
|
||||
:alt: Settings menu
|
||||
|
||||
Audio Settings
|
||||
--------------
|
||||
|
||||
- **Input Device**: Select the microphone to use.
|
||||
- **Voice Detection**: Select this option to activate your microphone only when you speak.
|
||||
- **Voice Detection Sensitivity**: Adjust the sensitivity of the voice detection, the lower the value,
|
||||
the more sensitive the detection.
|
||||
- **Push-to-Talk**: Activate this option to use the push-to-talk feature.
|
||||
- **Push-To-Talk Key**: Select the key to use for push-to-talk.
|
||||
- **Delay after releasing push-to-talk**: Set the delay before the microphone is muted after releasing
|
||||
the push-to-talk key.
|
||||
|
||||
.. note::
|
||||
`The Push-to-Talk extension <https://chromewebstore.google.com/detail/discuss-push-to-talk/mdiacebcbkmjjlpclnbcgiepgifcnpmg>`_
|
||||
is available in Chrome to enable this functionality when not focused on the Odoo tab.
|
||||
|
||||
Video Settings
|
||||
--------------
|
||||
|
||||
- **Show video participants only**: Activate to only display the videos of the call (the participants
|
||||
who do not have a video (screen share/webcam) will no longer be visible in the call.
|
||||
- ** Blur video background**: Toggle the video background blurring feature, for which the
|
||||
sensitivity (how precisely the shape of your head/body is matched) and the intensity (how intense
|
||||
the blur is) can be adjusted.
|
||||
|
||||
Technical Settings
|
||||
------------------
|
||||
|
||||
- **Log RTC Events**: Activate to enable logging of RTC events in the browser's console (verbose)
|
||||
and in the internal file logger.
|
||||
|
||||
.. note::
|
||||
Errors are always logged, even when the setting is off.
|
||||
|
||||
Advanced features
|
||||
=================
|
||||
|
||||
For larger organizations or environments with specific network requirements:
|
||||
|
||||
- **SFU server**: For improved performance in calls with many participants.
|
||||
See :doc:`calls/sfu_server` for configuration details.
|
||||
- **ICE servers**: For calls between networks with restrictive firewalls.
|
||||
See :doc:`calls/ice_servers` for configuration details.
|
||||
|
||||
Troubleshooting
|
||||
===============
|
||||
|
||||
If you experience issues with calls, refer to the :doc:`calls/troubleshooting` guide for
|
||||
diagnostic steps and solutions.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`calls/sfu_server`
|
||||
- :doc:`calls/ice_servers`
|
||||
- :doc:`calls/troubleshooting`
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
calls/sfu_server
|
||||
calls/ice_servers
|
||||
calls/troubleshooting
|
||||
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 24 KiB |
BIN
content/applications/productivity/discuss/calls/discuss-call.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
|
@@ -0,0 +1,58 @@
|
|||
==========
|
||||
SFU server
|
||||
==========
|
||||
|
||||
In Odoo Discuss, the Selective Forwarding Unit (SFU) server enables efficient handling of calls with
|
||||
many participants. Unlike peer-to-peer connections which can become resource-intensive with multiple
|
||||
users, the SFU server receives media streams from each participant and selectively forwards them to
|
||||
others, significantly improving call quality and scalability. Its sources can be found in the
|
||||
`odoo/sfu repository <https://github.com/odoo/sfu>`_.
|
||||
|
||||
.. note::
|
||||
In Odoo.sh and Odoo SaaS, the SFU servers are already provided. Adding your own in the
|
||||
settings will override the default one.
|
||||
|
||||
What is a Selective Forwarding Unit (SFU)?
|
||||
------------------------------------------
|
||||
|
||||
An SFU server is a type of media server that receives audio and video streams from each participant
|
||||
in a call and selectively forwards them to other participants. This approach is more efficient than
|
||||
peer-to-peer connections, especially in calls with many participants.
|
||||
|
||||
.. image:: sfu_server/sfu-diagram.png
|
||||
:align: center
|
||||
:alt: Diagram of p2p vs sfu connection layout
|
||||
|
||||
.. image:: sfu_server/sfu-graph-scaling.png
|
||||
:align: center
|
||||
:alt: Graph showing the bandwidth scaling of p2p vs sfu
|
||||
|
||||
When to use an SFU server
|
||||
-------------------------
|
||||
|
||||
Consider deploying an SFU server when:
|
||||
|
||||
- Your organization conducts calls with more than 5-10 participants
|
||||
- You frequently use video in calls with multiple participants
|
||||
- Your users are distributed across different networks or locations
|
||||
- You need to support users behind restrictive firewalls or complex NAT configurations
|
||||
|
||||
Without an SFU server, Odoo will fall back to peer-to-peer connections, which work well for smaller
|
||||
calls but may lead to performance issues with larger groups.
|
||||
|
||||
Deployment
|
||||
----------
|
||||
|
||||
Follow the instructions in the `odoo-SFU README
|
||||
<https://github.com/odoo/sfu/blob/master/README.md>`_.
|
||||
|
||||
Connecting to Odoo
|
||||
------------------
|
||||
|
||||
Once your SFU server is running, you need to configure your Odoo server to use it:
|
||||
|
||||
1. Go to :menuselection:`Settings --> General Settings --> Discuss`
|
||||
2. Enter the URL of your SFU server in the :guilabel:`SFU Server URL` field
|
||||
3. Enter the same AUTH_KEY value in the :guilabel:`SFU Server Key` field
|
||||
4. Click :guilabel:`Save`
|
||||
|
||||
|
After Width: | Height: | Size: 220 KiB |
|
After Width: | Height: | Size: 155 KiB |
|
|
@@ -0,0 +1,128 @@
|
|||
===============
|
||||
Troubleshooting
|
||||
===============
|
||||
|
||||
This guide will help you diagnose and resolve issues with Odoo Discuss calls. Follow the checklist
|
||||
first, then use the diagnostic tools if needed.
|
||||
|
||||
Checklist
|
||||
=========
|
||||
|
||||
Before exploring advanced troubleshooting options, verify these common issues:
|
||||
|
||||
- Is the issue related to a **user setting**?
|
||||
- Has microphone and camera **access** been granted in the browser permissions?
|
||||
- Are call participants missing from the view? Check if "Show video participants only" is enabled
|
||||
in the call settings.
|
||||
- Is the **browser up to date**?
|
||||
- Check your browser's settings --> "about Chrome" or "about Firefox".
|
||||
- Are there any network-limiting **browser extensions** installed?
|
||||
- Is the **Odoo bus** operational?
|
||||
- There should be a "connection lost" warning in the UI.
|
||||
- Are you behind a strong **firewall, VPN, or asymmetric NAT**?
|
||||
- If so, is a **TURN** or **SFU server** available to handle this network situation?
|
||||
(on the SaaS and odoo.sh, TURN/SFU servers should already be provided).
|
||||
|
||||
Gathering diagnostic information
|
||||
================================
|
||||
|
||||
When you encounter problems with Discuss calls, follow these steps to collect important
|
||||
diagnostic data:
|
||||
|
||||
1. Enable **debug mode**
|
||||
2. Activate RTC logging in the call settings
|
||||
|
||||
.. note::
|
||||
Critical errors are always logged, even without RTC logging enabled. Note that the logging option
|
||||
is not saved and must be activated after each page reload (to avoid forgetting it and using
|
||||
memory and resources when not necessary).
|
||||
|
||||
Diagnostic information sources
|
||||
==============================
|
||||
|
||||
Source 1: Console command
|
||||
-------------------------
|
||||
|
||||
Enter this code in your browser's console (CTRL+Shift+I):
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
const rtc = odoo.__WOWL_DEBUG__.root.env.services["mail.store"].rtc;
|
||||
rtc.state.channel?.rtcSessions.map((session) => ({
|
||||
name: session.name,
|
||||
id: session.id,
|
||||
session: { ...session },
|
||||
consumers: rtc.sfuClient?._consumers.get(session.id),
|
||||
peer: rtc.p2pService?.peers.get(session.id),
|
||||
}));
|
||||
|
||||
This command provides a list of all sessions in your current call, showing important information for
|
||||
each participant, such as the state of the Media elements, of the streams, of the connection to each
|
||||
peer, of the connection to the sfu,...
|
||||
|
||||
This is particularly useful for examining participants with connection issues.
|
||||
|
||||
.. image:: troubleshooting/command-output.png
|
||||
:align: center
|
||||
:alt: Console output showing a list of session data for call participants
|
||||
|
||||
Source 2: Context menu
|
||||
----------------------
|
||||
|
||||
Check connection status through the participant options menu:
|
||||
|
||||
1. While in a call, hover over a participant's video
|
||||
2. Click the **context menu** button that appears in the top-right corner
|
||||
|
||||
The menu shows connection details for:
|
||||
- Yourself when connected to the SFU
|
||||
- Other participants when you have a peer-to-peer connection with them
|
||||
|
||||
.. image:: troubleshooting/context-menu-button.png
|
||||
:align: center
|
||||
:alt: The context menu button appears when hovering over a participant video
|
||||
|
||||
.. image:: troubleshooting/context-menu.png
|
||||
:align: center
|
||||
:alt: The context menu shows connection details for the participant
|
||||
|
||||
.. warning::
|
||||
In a peer-to-peer connection, if the ICE connection is stuck at "new", it typically indicates the
|
||||
absence of TURN servers, which are needed to traverse certain types of NATs and firewalls.
|
||||
|
||||
Source 3: Logs
|
||||
--------------
|
||||
|
||||
Detailed logs that contain information on the state of calls and the technical events/errors.
|
||||
|
||||
Browser console
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Access through your browser's developer tools:
|
||||
|
||||
.. image:: troubleshooting/devtools-console.png
|
||||
:align: center
|
||||
:alt: Browser developer tools console showing RTC-related log entries
|
||||
|
||||
Downloaded logs
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Obtain logs for the calls that were recorded during the **last 24 hours**.
|
||||
User information in the logs are **anonymized**.
|
||||
|
||||
The amount of information contained in the logs depends on the "log RTC events" settings mentioned
|
||||
above. If the setting is not activated, the logs will only contain errors.
|
||||
|
||||
1. Go to Discuss settings
|
||||
2. Click the "Download logs" button
|
||||
|
||||
.. image:: troubleshooting/rtc-logs.png
|
||||
:align: center
|
||||
:alt: RTC logs download button in Discuss settings
|
||||
|
||||
.. note::
|
||||
All tabs log to the same file (which can be downloaded from any other tab)
|
||||
and are stored for 24h.
|
||||
|
||||
You can send these logs in a support ticket or analyze them with the
|
||||
`RTC Log Viewer <https://thanhdodeurodoo.github.io/rtc-log-viewer/>`_.
|
||||
|
After Width: | Height: | Size: 172 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 180 KiB |
|
After Width: | Height: | Size: 19 KiB |