Integrating Mattermost with Pexip Infinity

Mattermost can integrate with Pexip Infinity to allow users to quickly and easily start a secure video conference from any chat channel. The integration takes the form of a Pexip plugin, installed in your Mattermost environment.

With the Pexip-Mattermost integration:

  • Users can initiate an instant, secure ad hoc video meeting from their current chat.
  • Participants in the meeting can share their screen.
  • Administrators can configure in which Mattermost channels users can launch a video conference.

In this topic:

Assumptions and prerequisites

These deployment instructions assume that you have:

Network architecture and firewalls

The Pexip plugin operates as an external policy server and as an event sink. It handles all communications and call requests between the Mattermost platform and Pexip Infinity.

How it works

When the user starts a video meeting in Mattermost:

  1. The Pexip plugin launches a video window (or a new browser tab, depending on how the desktop client is configured), and initiates a video call to a Pexip Conferencing Node.
  2. This triggers an external policy request from Pexip Infinity to Mattermost.
  3. The policy server contained within the Pexip plugin responds with the meeting parameters (service type, theme, alias, PINs and so on).

In all cases ensure that you have permitted an HTTPS, port 443 connection from the Pexip Infinity Conferencing Nodes to the URL configured as your Mattermost external policy server.

Mattermost configuration

  1. Download and install the Pexip plugin from https://dl.pexip.com/mattermost-plugin/.

    For detailed information on installing and using Mattermost plugins, see https://developers.mattermost.com/integrate/plugins/using-and-managing-plugins/#install-a-plugin.

  2. From the Mattermost System Console, go to the Plugins section and select Pexip.
  3. Configure the plugin as follows:

    Enable Plugin Select True.
    Pexip Infinity Server

    Enter the FQDN or IP address of your Conferencing Node (e.g. mattermost.pexample.com or 192.0.2.0).

    If you are using multiple Conferencing Nodes, then we recommend setting up a common hostname and associated round robin DNS records. The TLS certificate installed on each Conferencing Node must include this common hostname in addition to the node's individual FQDN. See DNS pool names for more information.

    Pexip Infinity Username Generate a username. You'll need this in the next step when configuring an external policy server and event sink on Pexip Infinity.
    Pexip Infinity Password Generate a password. You'll need this in the next step when configuring an external policy server and event sink on Pexip Infinity.
    Direct Media for DMs For video calls started in a DM channel, determines whether call media is sent directly between the two participants. For more information, see Direct media (end-to-end encrypted calls).
    Display name

    Determines what is used as the participant display name. The display names are shown in the participant list during a conference and can also be displayed over the video if the overlay text is enabled. The options are:

    • Username
    • Nickname
    • First and last name
    Embedded Experience

    Determines whether the video is embedded in Mattermost or shown in a separate browser.

    True: the video conference is displayed inside the Mattermost interface.

    False: a new browser window is opened which uses the Pexip web app to join the video conference.

    Show Start / End Notifications For embedded video conferences, determines whether the start and end notifications should be shown in the channel.
    Ringing Timeout (seconds)

    (For Direct Messages only)

    Sets the number of seconds that the incoming conference ringing panel is shown before being automatically dismissed. To disable the panel, set this option to 0.

    Filter Channels

    Determines which Mattermost channels have access to the Pexip plugin, which in turn allows users in those channels to start or join a video conference.

    You can select and move the required channels between the Allowed Channels and Disallowed Channels lists as required.

    By default all existing channels and newly created channels appear in the Allowed Channels list.

    If the Pexip plugin button on the sidebar is selected from within a disallowed channel the user is shown a "Conference not available for this channel" message.

  4. Add the following to the config.json configuration file (located in the mattermost/config directory, or stored in the database) to enable strict CSRF token enforcement:

    "ExperimentalStrictCSRFEnforcement": true

    For more information, see Mattermost's documentation.

Pexip Infinity configuration

When configuring Pexip Infinity for integration with Mattermost, you reference the Pexip plugin as an external policy server and as an event sink.

System location guidance

The external policy server and event sink contained within the Pexip plugin have to be associated with one or more system locations within Pexip Infinity. When designing your Pexip Infinity platform architecture you should note that:

  • Each system location can only be associated with a single policy profile (which specifies the external policy server).
  • A system location can be associated with multiple event sinks.
  • Event sinks only operate on Transcoding Conferencing Nodes (i.e. not Proxying Edge Nodes).
  • You should not deploy of mixture of Transcoding Conferencing Nodes and Proxying Edge Nodes in the same system location.

This means that, for example, you could have:

  • A system location containing Proxying Edge Nodes that are used to handle the call signaling with Mattermost. This location should be configured with the policy profile used for the external policy server.
  • One or more system locations containing Transcoding Conferencing Nodes that are used to handle the media transcoding for Mattermost calls (that are proxied via the Proxying Edge Nodes). These locations should be configured with the event sink.

Adding a policy profile

  1. From the Pexip Infinity Administrator interface, go to Call Control > Policy Profiles.
  2. Select Add Policy profile.
  3. Enter a Name for the new profile.
  4. From the External policy server section, enter the following:

    URL

    This should be in the format:

    https://<mattermost-domain>/plugins/com.pexip.pexip-app/api/

    where <mattermost-domain> is the Site URL of your Mattermost server, for example:

    https://mattermost.pexample.com/plugins/com.pexip.pexip-app/api/

    To find your Site URL, in the Mattermost System Console go to Environment > Web server > Site URL:

    Username Enter the Pexip Infinity Username generated from the Mattermost admin console.
    Password Enter the Pexip Infinity Password generated from the Mattermost admin console.
  5. From the Service configuration policy section, select Enable external service configuration lookup.
  6. Select Save.

Assigning the policy profile to the Mattermost system location

  1. From the Pexip Infinity Administrator interface, go to Platform > Locations.
  2. Select the location containing the Conferencing Nodes that are used to handle the call signaling with Mattermost.
  3. From the Policy profile drop-down, select the policy profile you created above.
  4. Select Save.

Configuring an event sink

You must configure an event sink and assign it to your location(s) to enable the plugin to monitor conference status.

  1. Go to System > Event Sinks.
  2. Select Add Event sink and configure the event sink. The options are:

    Option Description
    Name The name used to refer to this event sink. Each event sink must have a unique name.
    Description An optional description of this event sink.
    Version Default: Version 2
    URL

    This should be in the format:

    https://<mattermost-domain>/plugins/com.pexip.pexip-app/api/event_sink

    where <mattermost-domain> is the Site URL of your Mattermost server, for example:

    https://mattermost.pexample.com/plugins/com.pexip.pexip-app/api/event_sink

    Username and Password Enter the External Policy Username and Password generated from the Mattermost admin console.
    Verify TLS Ensure this option is selected.
    Location Select all of the possible transcoding locations that can handle media for Mattermost calls, including any overflow locations.
  3. Select Save.

Using the plugin

After the steps above are complete:

  • users see a new Pexip button on the top right corner of their Mattermost interface
  • any channels or direct messages that have an ongoing video call are shown with an indicator

This section describes the embedded experience. For information about joining from a new browser window using Webapp3, see Using the Pexip web app.

Starting a conference

To start a new video call, select the Pexip button at the top right and then select Join conference:

A notification appears in the chat:

Joining a conference started by someone else

When someone starts a video meeting in a Direct Message or channel, a notification appears in the chat:

For video meeting started in a Direct Message, you also see a panel at the bottom left of your window that offers the option to join or ignore the call:

In-call controls

Afteryou have successfully joined a meeting, you see the following interface:

Controlling the conference

While in a conference, you can do the following:

Mute audio Enable or disable your microphone.
Mute video Enable or disable your camera.
Receive a presentation If another participant starts sharing their screen, you will be able to see the video without performing any additional action.
Send presentation Share your screen. This opens a pop-up to choose what you want to share (whole screen, window or tab).
Pop-Up presentation Display the presentation in a separate window.
Change devices Change the microphone or camera during the conference. You can also change the speaker if the browser supports it.
Effects

Hide your background. There are two options:

  • Blur: soften the background to hide it lightly.
  • Background replacement: replace your background with an image to hide it completely.
Disconnect Leave the conference.
Toggle between presentation and main video If another participant is sharing their screen, you can choose what to see in the main area — either the shared screen, or the video of the remote participants. To toggle between these two options, select the video thumbnail located on the top-right corner.

Release notes

Version Release date Description
v2.2 December 2025

New features

  • Introduced a new "Ringing" panel for incoming calls with Join and Ignore buttons. Administrators can configure whether and how long this panel is visible via the new Ringing Timeout (seconds) plugin option.

Changes

  • Modified the plain join/leave chat message to add a component with more information and a button to join/leave the conference.

Fixed issues

  • Issue with the CSS styles when importing @pexip/components.
  • Pagination for retrieving the list of channels in large Mattermost instances to display the channel selector. Before it was limited to 60 channels.
  • The event sink is still working for conference indicator and ringing if the start/end conference notifications are disabled.
v2.1 November 2025

New features

  • Direct media option for calls initiated in Direct Messages (DMs). This is enabled via the new Direct Media for DMs plugin option.
  • Added active conference indicator to the channel list.

Fixed issues

  • Reset screen sharing state after reconnection.
v2.0 September 2025 GA release
v1.x   Limited releases