- What is Zimbra Connect
- Licensing
- Zimbra Chat and Zimbra Connect
- Zimbra Connect Zimlet installation
- URLs and Ports
- Zimbra Connect administration
- Browser compatibility
- UI
- Instant Messaging and Corporate Communication
- File sharing
- Video Chat
- Instant Meetings
- Autocomplete
- Presence
- Unread Messages
- Chat History
- STUN/TURN Server
Zimbra Connect integrates a fully fledged corporate instant messaging platform inside the Zimbra WebClient, including Group and Corporate Messaging, File Sharing, Screen Sharing and informal Video Chat capabilities.
The main differences between Zimbra Connect and Zimbra Talk V2 implementation are the following:
Zimbra Talk V2 | Zimbra Connect |
---|---|
Supports XMPP |
No XMPP Support |
No dedicated API Set |
Features a dedicated API set and client protocol |
Client/Server communication is SOAP-based |
Client/Server communication is based on WebSockets |
Zimbra Talk V2 | Zimbra Connect |
---|---|
User interaction is based on a buddy list |
User interaction is based on the GAL |
Buddy-list-based minimal UI |
History-based minimal UI |
Bulkier, more crowded UI |
Lighter, less cluttered UI |
Space settings are defined in the Space itself |
Space settings are defined by the Space’s "General" channel |
User-based video and audio feed control - users can autonomously mute/stop other user’s audio and video feed only affecting themselves. |
Host-based video and audio feed control - host can mute a participant or stop a video feed affecting all participants. Users can still mute/stop their feeds. |
Zimbra Talk V2 | Zimbra Connect |
---|---|
File exchange is available in Chats, Groups, and Channels |
File exchange is available in Chats and Groups starting with Zimbra 8.8.15p3 |
Instant Meeting is available |
Instant Meeting is available starting with Zimbra 8.8.15p1 |
Zimbra Connect includes the following front-end features:
-
Message delivery and read awareness
-
1-to-1 Instant Messaging
-
Group Messaging
-
Corporate Messaging (Spaces and Channels)
-
Group Video Calls
-
Channel Video calls
-
File Sharing
-
Screen Sharing
-
Emojis
Zimbra Connect includes the following backend features:
-
COS and User availability
-
Built-in TURN server compatibility
-
No core installation needed. Zimlet installation through a package manager.
-
No configuration required
-
Peer-to-Peer WebRTC protocol to avoid server load
-
Dedicated audit log
Zimbra Connect is licensed on a per-user basis. License information is included in the Network Edition license file just as for any other Zimbra NE feature. Global Admins can enable its Advanced features for any number of users up to the limit allowed by the license, and only "advanced" users count towards any licensing limit.
The total number of users who have the Advanced features active can be seen in the output of the zxsuite core getLicenseInfo
command under teamChatActiveCount
:
zimbra@129efa51bd95:~$ zxsuite core getLicenseInfo dateStart 2021-06-11 00:00:00 UTC dateEnd 2021-12-31 17:00:00 UTC expired false type regular - Network Edition [...] teamchatActiveCount 999 [...]
This count is updated every 15 minutes.
Zimbra Chat and Zimbra Connect are neither compatible nor interoperable, meaning that the two products cannot coexist in any Zimbra NE infrastructure. The Zimbra Chat zimlet gets uninstalled during the installation process of the Zimbra Connect Zimlet package. However, Zimbra Connect includes all basic IM features provided by Zimbra Chat, which automatically gets enabled for all users who don’t have access to the advanced Zimbra Connect features. Advanced users can use all of the product’s features with other advanced users and can use 1-to-1 Instant Messaging with basic users. Basic users can use 1-to-1 features with all other users.
All users start as Basic users. Global and Delegated admins can enable Advanced features.
The Zimbra Connect Zimlet is available in the Zimbra repository and can be easily installed and upgraded through the operating system’s package manager.
To install the Zimlet on Red Hat and CentOS, run:
yum install zimbra-connect
To install the Zimlet on Ubuntu, run:
apt-get install zimbra-connect
Installing the Zimlet removes any Zimbra Chat components from the server automatically.
Zimbra Talk and Zimbra Connect are neither compatible nor interoperable, meaning that the two products cannot coexist in any Zimbra NE infrastructure. To use Connect, the database content must first be migrated from Talk format to Connect format.
In order to migrate Talk data to Connect, use the doImportChannels
command:
[zimbra@mailserver ~]$ zxsuite connect doImportChannels Syntax: zxsuite connect doImportChannels [attr1 value1 [attr2 value2...]] PARAMETER LIST NAME TYPE EXPECTED VALUES delete_destination_before_import(O) Boolean true|false (M) == mandatory parameter, (O) == optional parameter
Note
|
This operation can execute multiple times, but it’s a one-way process and cannot be reverted. |
Once the database content is migrated, uninstall Zimbra Talk and install Zimbra Connect.
To build URLs and links (e.g., for External Shares) Zimbra Connect uses the default Zimbra settings for the domain of the account in use - the zimbraPublicServiceHostname
property is used for the URL itself while the zimbraPublicServicePort
property is used for the port.
Should either of the two not be set up, the system falls back to the zimbraServiceHostname
and zimbraMailPort
or zimbraMailSSLPort
server-level properties.
For Video Chats and Instant Meetings, the following rules apply:
-
Zimbra Connect will work through firewalls and NATs as long as the peers can communicate each with the other - either directly or through a TURN server (which together with proper network rules is usually the solution to any WebRTC connection problem).
-
When no TURN server is set up is not being used, a default STUN server is used so clients should be able to send outbound traffic to ports 19305/19307. The actual P2P connection is established between the clients on a random port between 0 and 65535 based on the client configuration and network.
-
The default handshake/negotiation port used by most TURN servers is 3478 (incoming, UDP), but a different port can be used as long as it is properly set up - on the Zimbra Connect side the port is specified when adding the TURN server and the clients clients will be instructed to connect through it. The default P2P connection range when using a TURN server is 49152-65535 (usually configurable on the TURN side) so clients should be able to send data to that port range to the TURN server.
-
Most TURN servers can also be configured to use TCP insted of UDP.
-
Zimbra Connect features can be enabled and disabled via the zxsuite config
command line utility:
-
Enable Zimbra Connect «Advanced» features
-
Property:
teamChatEnabled
-
Available in: COS, account
-
-
Enable or disable the chat history
-
Property:
historyEnabled
-
Available in: global, server, COS, account
-
-
Enable or disable Video Chat
-
Property:
videoChatEnabled
-
Available in: global, server, COS, account
-
Zimbra Connect features are available on all browsers officially supported by the {product-short} {web-client}, with some client-side limitations:
Browser | Version | OS | Supported |
---|---|---|---|
Microsoft Edge (Chromium) |
Latest |
Windows |
[check circle] Yes |
Microsoft Edge (Chromium) |
Others |
Windows |
[check circle] Limited |
Microsoft Edge (EdgeHTML) |
Any |
Windows |
[times circle] No |
Internet Explorer |
Any |
Windows |
[times circle] No |
Mozilla Firefox |
Latest |
Windows/Linux/OSX |
[check circle] Yes |
Mozilla Firefox |
ESR |
Windows/Linux/OSX |
[check circle] Yes |
Mozilla Firefox |
Others |
Windows/Linux/OSX |
[check circle] Limited |
Google Chrome |
Latest |
Windows/Linux/OSX |
[check circle] Yes |
Google Chrome |
Others |
Windows/Linux/OSX |
[check circle] Limited |
Safari |
Latest |
OSX |
[check circle] Yes |
Safari |
Others |
OSX |
[check circle] Limited |
While likely to work, items marked as "[check circle] Limited" are only supported on the browser’s two previous stable releases to the current one.
Google Chrome users must install the "Zextras Companion" extension to use the Screen Sharing feature, publicly available in the Chrome Web Store.
Firefox users must be sure to be running at least version 66 of the browser to be able to use the Screen Sharing feature.
The Zimbra Connect UI is developed in PREACT and seamlessly integrated with the {product-short} {web-client}. It is composed of two client-side components: the Quick Access Sidebar and the fully-featured Connect Tab.
The Quick Access Sidebar allows for quick Instant Messaging, both for 1-to-1 and group conversations. Advanced Zimbra Connect features such as File Sharing and Video Chat are available in the IM Pane only for users who have the Zimbra Connect feature set enabled either at an account or COS level.
The Connect Tab is the full-sized Zimbra Connect UI, which contains all corporate instant messaging features such as Spaces and Channels. The tab itself is available for both Basic and Advanced users, but corporate features are only available to Advanced users.
The Quick Access Sidebar displays the last people, groups, and channels the user has interacted with and allows to open a quick chat window with all of those.
It is available for both "Basic" users and "Advanced" users and provides additional features for the latter.
One-to-one Chats can start from either the Quick Access Sidebar or the Connect Tab:
-
on the former, select one of the available entries (based on your chat history) and start chatting with that person right away
-
on the latter click on "New," then "New Chat" and select the person you want to chat with from the GAL
Recent 1-to-1 chats appear in the "Conversations" section of the Connect Tab and the Quick Access Sidebar (round icon).
Groups are how users communicate with multiple people at the same time (by default up to 5 total). Those are non-persistent entities not tied to any specific space. Any user can create a group inviting people, and any group member can invite more people in the same way. When all users leave a group, the group itself ceases to exist.
-
A user in a Group can add more users to the Group itself up to the allowed limit.
-
A user in a Group can chat with all of the others. All members of that Group can view all messages sent to the Group.
-
A user in a Group can send files to all of the others. Files sent in a Group are available to all members of that Group.
-
An user in a Group can start a video chat with all of the others. Group video chats can be joined at any time by all members of the Group.
Global Administrators can change the allowed maximum number of group members in the Zimbra Connect section of the Global Settings in the Admin Console.
Recent Group chats appear in the "Conversations" section of the Connect Tab and the Quick Access Sidebar (rounded square icon).
-
Creating a Group
To create a new Group, click on the "New" button in the Connect Tab, and select "New Group."
then, add the Group’s title, select the buddies you wish to invite and click on "Create."
-
Inviting a participant to a Group
To invite one or more buddies to a Group expand the Group’s Info, select the users to be added and click on "Save."
-
Starting a Group Video Chat
To start a Group video chat, click on the "Camera" icon on the top of the Group’s chat window.
Any member of the Group can join the call at any time by clicking on the same button.
-
Leaving a Group
To leave a Group, first, click on "Leave Group" in the Group’s Info
then, click on "Yes" under the warning message.
Spaces are a themed container that can hold any number of Channels. Think of a Space as a community center where people gather to discuss different topics in dedicated areas (named Channels).
-
Each space has a unique name and topic. You may change both the name and the Topic by clicking on the relevant field in the Space’s settings.
-
Members can leave a space at any time.
-
Space Administrators can create new channels and invite new people to the space using the appropriate buttons.
Spaces appear in a dedicated section of the Connect Tab, which gives access to all Space-related features:
-
Creating a Space
To create a new Space, click on the "New" button in the Connect Tab, and select "New Space."
then, enter the Space’s name and topic, select any users to invite and finally, click on "Save."
-
Leaving a Space
To leave a Space, click on the "Leave Space" in the Space’s General Channel Info.
Participants can leave a space at any time, while a Space Administrator can only leave a space if there is at least one other Space Administrator.
Both need to be invited to join the space again, and former Space Administrators get invited as regular participants but can be granted Administrator rights again.
The General Channel Info in each Space defines its settings (see below).
The Space’s creator is also the first Space Administrator and can grant the same rights to any other user by clicking on the crown icon in the appropriate entry of the participant list.
Only Space Administrators can invite new participants, create new channels, kick people, and delete channels within the space.
Channels are topic-defined areas inside of the same space. Those can contain any number of users, and unlike Groups, users can autonomously join any Channel in a Space they are in instead of being invited to it by a member.
Each new Space has a "General" channel automatically created within it, which defines the space’s properties (e.g., Title and Topic) and which all users automatically join when they join the Space.
-
A user in a Channel can chat with all of the others. All members of that channel can view all messages sent on the Channel.
-
A user in a Channel can start a video chat with all of the others. Channel video chats can be joined at any time by all members of the Channel.
Channels appear in Spaces within the Connect Tab, and all of the Channel-related features are managed there, by:
-
Creating a Channel
To create a new Channel, click on the "New" button, and select "New Channel."
then select:
-
the Space that should contain the Channel (mandatory)
-
the Channel’s name (mandatory)
-
the Channel’s topic (optional)
finally, click on "Save."
-
-
Joining a Channel
To join a Channel, click on the Channel label and then on "Join Channel."
-
Starting a Channel video chat
To start a Channel video chat, click on the "Camera" icon on the Channel’s chat window.
Any member of the Channel can join the call at any time by clicking on the same button.
-
Leaving a Channel
To leave a Channel, first, click on the red "Leave Channel" entry in the Channel’s Info
Both normal users and Space Admins can leave a channel at any time and join it afterward.
Users can easily share files via Connect to Chats and Groups by dragging and dropping the files directly into the chat interface (both in the minichat and in the Connect tab) or by clicking the "paperclip" icon on the right of the message input field. Multiple files can be uploaded at once, and image files will show a preview of the file while other common filetypes will display a custom icon.
Clicking on a file within a chat window will download it to the local client using the browser’s own download interface.
Files shared via Connect will be stored inside a protected root folder on the sender’s Drive called Connect sent files
, thus counting towards the sender’s mailbox quota, and will remain available for download in the chat window for all participants until deleted from Drive by the sender.
Video Chat features are available in 1-to-1 chats, Groups, and Channels, allowing multiple people to communicate in real-time using a webcam and a headset, as well as allowing them to share their screen with all other attendees.
The WebRTC protocol is the foundation for this feature. WebRTC is a peer-to-peer auto-adaptive technology that allows clients to communicate directly without overloading the server. Call quality is automatically tweaked based on the available bandwidth, with the maximum quality being Full HD for both video and audio. When starting their first video chat, users need to grant their browser access permissions to their camera and microphone.
The video chat UI has three main areas:
-
The center displays video streams with a single (main) stream on the top and multiple secondary streams on the bottom. The total number depends on the screen’s resolution and window size.
-
On the left is the Group’s or Channel’s instant messaging chat. This chat is visible and entirely usable, and its history gets retained in the group’s or channel’s chat history.
-
On the bottom left appear the user’s video feed and controls (disable video, mute microphone, and share screen).
Users can disconnect from an ongoing video chat by pressing the "Hang up" button in their video stream’s frame on the bottom left of the screen. Whenever a video chat is on, users belonging to the Group or Channel of the video chat see a "Call in progress" message below the name of the Group or Channel and may join by clicking on the "Camera" icon in the chat.
Video streams are displayed in a "first come, first served" basis according to the connection order between the peers.
Every participant can mute their audio stream or stop their video stream.
Instant Meetings are one-shot Video Chats that can be attended by external users as well as internal users. Only users with the Advanced Connect features enabled can start Instant Meetings, but any internal or external user can attend.
To create an Instant Meeting, click on the "New" button in the Connect Tab, and select Instant Meeting.
Then, fill in the attendee list by entering any internal or external email address in the text box and pressing enter to add it to the list. Once all attendees are added, press "Save" to send an email notification to all participants and start the Instant Meeting.
Both external and internal users can join an Instant Meetings through a dedicated URL that can be found both in the invitation email and in the information section of the Instant Meeting itself.
Such URLs are uniquely generated for each Instant Meeting and expire 10 minutes after the host leaves the meeting.
Autocomplete in Zimbra Connect is split in two different categories: Internal Autocomplete and External autocomplete.
Internal autocomplete kicks in when selecting a target for 1-1 Chats, Group Chats, Spaces and Channels, while External autocomplete is only used for Instant Meeting attendees.
This can be changed by setting the teamCrossDomainSearchMode
COS property to either local
, extended
or global
using the zxsuite config [get/set/empty]
CLI toolset.
-
local mode, in which Internal Autocomplete will draw its information from the GAL, while External autocomplete will draw its information from the user’s Contacts and GAL.
-
extended mode is a superset of local that also matches full email addresses of any user in the same infrastructure as internal users.
-
This allows to initiate a 1-1 Chat with or to add to a Group/Space/Channel any user that is on the same infrastructure but out of the GAL as long as the exact email address is entered.
-
-
global mode is a superset of extended that does not require an exact match on the email address to autocomplete users in the same infrastructure.
-
This allows to autocomplete any user in the infrastructure as opposed to the strict email addres match required in extended mode.
-
The default setting inherited by all COS is local.
Presence is managed automatically in Zimbra Connect: whenever a user logs in, regardless of whether the Connect Tab has the focus, they appear as online.
As part of the user presence system, all messages get displayed with a variable number of check symbols:
-
0 checks, message not delivered to the server
-
1 check, message delivered to the server
-
2 checks, message viewed by all users
Chat History for each 1-to-1 Chat, Group, and Channel is available in the very same window (e.g., enter a Channel to see all of that channel’s history) and messages delivered to offline users appear in the appropriate IM conversation, Group or Channel.
Since WebRTC is a peer-to-peer protocol, all users in a video chat must be able to reach each other’s client for the connections to get established.
Should this not be possible, because of NAT rules on the network or because of a Service Provider’s policy, using a TURN server ensures proper communication between all peers. Zimbra Connect is designed to allow using a STUN/TURN server out of the box by simply adding the TURN server’s URL and login information in the zimlet configuration.
A dedicated set of TURN configuration tools is available via CLI through the zxsuite connect iceServer
command:
zimbra@mailserver:~$ zxsuite connect iceServer Edit the list of ICE servers used to establish connections for video calls. Configuration scope can be global(default), cos, or account. add - add ice server candidates using global (default), cos or account zxsuite connect iceServer add {turn:turn.example.com:3478?transport=udp} [attr1 value1 [attr2 value2...]] remove - remove ice server candidates using global (default), cos or account zxsuite connect iceServer remove {turn:turn.example.com:3478?transport=udp} [attr1 value1 [attr2 value2...]] get - get ice server candidates using global (default), cos or account zxsuite connect iceServer get [attr1 value1 [attr2 value2...]]
The "add" subcommand is used to add a new TURN server:
Syntax: zxsuite connect iceServer add {turn:turn.example.com:3478?transport=udp} [attr1 value1 [attr2 value2...]] PARAMETER LIST NAME TYPE EXPECTED VALUES url(M) String turn:turn.example.com:3478?transport=udp username(O) String myuser credential(O) String mysecretkey account(O) String [email protected] cos(O) String default (M) == mandatory parameter, (O) == optional parameter Usage example: zxsuite connect iceServer add turn:turn.example.com credential mysecret username myuser zxsuite connect iceServer add turn:turn.example.com credential mysecret username myuser account [email protected]
Multiple TURN servers can be added to handle different users or Classes of Service (defined through the user
and cos
optional parameters of the command above).
On the TURN-server side, it is strongly recommended to have a single user, authenticated with a username and secret key, for ease-of-use reasons as a 1:1 correspondence between Zimbra users and TURN users is not necessary.