User Guide: Cloud Intercom - EyevinnOSC/community GitHub Wiki

User Guide

Instructions on how to use Intercom in Open Source Cloud.

Prerequisites

  • An Open Source Cloud account
  • An Intercom service instance created by your Tenant administrator

Login and Open Intercom app

Log on to https://app.osaas.io/ and browse for the service called Intercom. When selected, click the three dots next to your running service and click “Open application” or click on the service card.

This step needs to be done each time because the application can’t be saved as a bookmark for safety reasons.

launch-application

Enter your Settings

When entering the Intercom application for the first time, you will be prompted to enter a username and your input and output device. These can be changed later. If your device does not show in the list, try to refresh the devices by clicking the ‘Refresh Devices’ button. Once you have entered your information, press 'Next' to continue.

Note: On some devices, you are not able to change the input device or output device and instead the device’s main settings will be used.

enter-user-settings

Overview

You will then be redirected to the landing page. On this page, you will be able to view all productions you have access to and also manage or create new productions. If you wish to change your user settings, you can click on the settings icon in the top right corner.

landing-page

Creating a Production

To create a new production, on the landing page press the ‘Create’ button in the top right corner. Then, enter a name for your production, and a name for a production line. It is mandatory to have both a production name and one line in your production. You can add more lines to your production by pressing the ‘Add Line’ button.

If you wish to use the line you are creating for an audio feed, for example, if you wish to use program audio as the input for that line, you can check the ‘This line will be used for an audio feed checkbox.

Press ‘Create Production’ when you have created all the lines you want. You can add more lines to the production later.

create-production add-line

When you have created your production you should have received a confirmation message and can return to the landing page by pressing the blue back arrow.

If you wish to copy the links to the production’s lines, you can press the ‘Copy Links’ button to do so.

copy-production-links

Joining a Production Line

To join a production, click on a production on the landing page to expand it. From there you can choose what line to join. You will be able to join more lines in the production later.

join-line

Joining a Line with an Audio Feed

If you wish to join a line marked for an audio feed, you will have two options when joining the line. You can choose to join the line either as a listener or as the audio feed. By default, the option to join the line as a listener is selected. By joining the line as a listener, you will be able to listen on the line but not speak. By joining as the audio feed, you will only be able to have an input, but not listen. For example, you might want to have a program audio as the input on an audio feed line.

On the landing page, a line for a program feed has a blue color and a TV icon.

join-audio-feed-line audio-feed-join-options

View and Manage Calls

After joining a line, you will be directed to a page where you can manage your calls. From there, you can mute both your speaker and microphone. By default, your microphone is muted. When muted, you can press and hold the ‘Push To Talk’ button to talk.

If you have joined a line for an audio feed, your control buttons will look different. If you have joined the audio feed line as a listener, you will only be able to listen to the call and if you have joined the audio feed line as the audio feed, you will only be able to mute/unmute the audio you use as input.

Note: Managing volume on individual calls is not available as a feature on iOS devices including iPhones and iPads. This is due to constraints on these devices.

call audio-feed-listener audio-feed-input

You also have shortcuts to the keyboard that you can connect to an external device like an Elgato Stream Deck, these are listed under “Hotkeys”. You can change what hotkeys are used by pressing the settings icon at the bottom right in the hotkey list.

You can also view the participants of the call.

call-devices call-hotkeys call-participants

When there is activity on a call you are in, that call will have a red pulsation for a few seconds so you can easily see which call someone is speaking on. You will not see the pulsation if you are the one speaking.

call-feedback

Changing input and output device for your calls

If you are using Firefox as your browser you will be able to have different devices for each call in the same browser window.

firefox-devices

Image shows page with calls and device settings in Firefox.

For users of Google Chrome, Microsoft Edge or Safari, you are not able to use different devices on each call, the device you have chosen in your settings will be the device used for all your calls, in the same browser window. If you wish to change what device is used while you are in one or more calls, press the settings icon. If you want to have different devices for your calls, you can work around this by having each call in a separate browser window.


Images show the page with calls and device settings in Google Chrome.

Note: If you are using Safari, you will only be able to change your input device. Your output device will be the same as the system's output device.

Image shows device settings in Safari.

Sharing a line with someone who is not logged into Open Source Cloud

If you want to share a line with someone who is not logged into Eyevinn Open Source Cloud, you can do that from both a call and from the main page.

Pressing the link-button on the main page will show unique URLs to all lines in that production.

Note: Each URL can only be used once. If you want to invite multiple people who are not logged in, you’ll need to refresh the URL for each recipient.

share-production-links


production-links

If you are in a call you can click the 'Share Line' button to generate the unique URL.

call-hotkeys call-participants

Adding Several Calls

If you wish to join another call, press the ‘Add Call’ button in the top right corner and enter the needed information.

add-call


join-call production-list

You can also mute and unmute yourself on all calls by pressing the ‘Unmute/Mute all’ button in the top right corner.

IFB Functionality

If you have joined several calls and at least one of them is a line with an audio feed that you have joined as a listener, you will experience an IFB functionality. If you, or someone else, on another line is speaking, the volume will decrease on the line with the audio feed.

Note: The IFB functionality is not available on iOS devices (iPhones and iPads) due to constraints on those devices.

Controlling your calls with an Elgato Stream Deck using Companion

It is possible to control your calls using an Elgato Stream Deck, alongside Bitfocus Companion. When you have the connection set up, you can handle mute of input/output, push to talk, and volume from your Stream Deck for your calls without having the browser with Intercom running focused.

You will then need to download the Bitfocus Companion GUI, and launch it. Under the 'Connections' tab, you have the option to add connections. Search for Eyevinn Intercom, and it should show in the list of possible modules to connect. Then press the 'Add' button.

The Eyevinn Intercom Companion module hosts a WebSocket server through which all communication with the Intercom web app happens. When starting the module you may specify the network interface and port the WebSocket server is hosted on.

Once you have added the Eyevinn Intercom module to your Companion GUI, go to the 'Surfaces' tab and make sure you can see your Stream Deck device in the list.

Thereafter, go to the 'Buttons' tab. From here you have two options.

Option 1. Use buttons directly from the module's presets

  1. Go to the tab 'Presets' and select eyevinn-intercom.
  2. Select what buttons you want to use in your stream deck. The buttons inside e.g. folder 'Call 1 buttons' will include ready-made buttons for your call with index 1, etc. If you want to achieve the functionality where you can press and then hold 'Channel X' and then perform any actions on that call, select the 'Channel X Buttons' folder.
  3. When you have found the buttons you want, you can drag-and-drop them to the place you want on your stream deck device.

Option 2. Create custom buttons using the module's actions

  1. Click on a button on the Stream Deck representation. Then press 'Create button'.
  2. Enter the text or image you want to use on your button.
  3. Under 'Press actions' press the folder icon, and select 'eyevinn-intercom'. You will then see a list of all available actions in the module. Click on the action you wish to use on this button.

Once you have created buttons in the Companion GUI you should see them immediately on your physical Stream Deck device if it's plugged into your computer running Companion.

Connect to Companion in the Open Intercom UI

In the Open Intercom UI, join one or more calls. On the page with your calls, press the button 'Connect to Companion'. Enter the address of your WebSocket. The format of the WebSocket address should be ws://{host}:{port}. In the Companion GUI you have been able to select your WebSocket Bind Interface and WebSocket Port, as per the instructions in the previous section. The WebSocket Bind Interface value, is the host in your WebSocket address, and the WebSocket Port should be entered as the port in the address. In the image below, the WebSocket has been set up to run locally at Bind Interface 127.0.0.1, and 12345 has been selected as its port. Therefore, the WebSocket address that should be entered in the Open Intercom UI is ws://127.0.0.1:12345.

When you are connected, the button that previously said 'Connect to Companion' will instead say 'Connected' and be green. If you wish to deconnect to Companion, press the same button again.



You should then be able to control your Eyevinn Open Intercom calls from your Stream Deck.

Hotkeys

If you want to control the calls using hotkeys, you can personalize the keys in the hotkey-settings. For the hotkeys to work the intercom-window needs to be active, so you are not able to use the hotkeys if you are working in another program-window or another browser-tab. If you need to be able to do that then you need to install the companion-module in the example above.

You will get a warning if you are trying to add the same hotkey to several calls and the global mute will always be the same on all calls.

open-hotkeys-settings hotkeys-settings

Send a WHIP stream to your Intercom calls

It is possible to stream from a WHIP (WebRTC HTTP Ingest Protocol) client to calls in Open Intercom. The following section will guide you through how to do so using OBS, Eyevinn's web WHIP client, and Eyevinn whip-mpegts client.

Join a call in the Intercom UI as per previous instructions. Press the 'Get WHIP URL'-button located at the bottom left on each call. Then, enter a descriptive username for the WHIP session. The username will be shown in the participant list of the call. Then, copy the generated URL. In this example, I have decided to call my WHIP session 'pgm'.

Now, navigate to your WHIP client of choice. For this guide, we will cover three WHIP clients - OBS, Eyevinn Web WHIP Client, and the Eyevinn WHIP-MPEGTS Client.

OBS

Set up your audio input capture in OBS as desired and when ready, navigate to 'Settings'.

image

From there, select 'Stream' in the navigation menu on the left side. Then, in the dropdown labelled 'Service', select WHIP. In the 'Server' input field, paste the WHIP URL you copied in the Open Intercom UI. Press 'Apply' followed by 'OK' to apply your settings.

image

When ready, press 'Start Streaming'.

image

You should see the WHIP session show in the participant list of the call you are in shortly. It will show up with the name you previously entered in the 'username' field when generating the WHIP URL.

image

If you press 'Stop Streaming' in the OBS UI, the WHIP session will disappear from the call's participant list.

Eyevinn Web WHIP Client

Navigate to Eyevinn's Web WHIP Client available here, or set up and run the project available on GitHub yourself.

In the input field labelled 'WHIP Endpoint', paste the URL you have generated in the Open Intercom UI.

Then press the 'Camera'-button to start streaming.

image

You should then be able to see the WHIP session in the call's participant list.

image

To stop streaming from the client, you can press 'Delete' under Resources.

image

WHIP-MPEGTS

The whip-mpegts client ingests an mpeg-ts unicast, multicast or SRT stream and sends it to the WHIP endpoint. This tutorial will go through the steps needed to run the whip-mpegts 'Quick Start' tutorial on MacOS with Z shell.

Prerequisites

  1. Make sure to have homebrew installed
  2. Download GStreamer installers from their (both runtime and development) website. Once downloaded, install them.
  3. Add the following environment variables to your ~/.zshrc file and add the following environment variables.
# Gstreamer-related environmental variables to be added.                                                                                                                                 
# Tell pkg-config where to find the .pc files                                                                                              
export PKG_CONFIG_PATH=/Library/Frameworks/GStreamer.framework/Versions/Current/lib/pkgconfig                                               
# We will use the pkg-config provided by the GStreamer.framework                                                                            
export PATH=/Library/Frameworks/GStreamer.framework/Versions/Current/bin:$PATH                                                              
export GST_PLUGIN_PATH=/Library/Frameworks/GStreamer.framework/Versions/Current/lib:$GST_PLUGIN_PATH                                        
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GST_PLUGIN_PATH
  1. Run source ~/.zshrc to apply the changes.

  2. Run gst-launch-1.0 --version to see if GStreamer is installed and running

  3. Download other dependencies: brew install libsoup@2 sqlite3

  4. Clone the Eyevinn whip-mpegts repository. Navigate to the file CMakeLists.txt and find this line: set(ENV{PKG_CONFIG_PATH} "/opt/homebrew/opt/libsoup@2/lib/pkgconfig:/opt/homebrew/opt/icu4c/lib/pkgconfig/"

and add :/usr/local/opt/sqlite/bin to the path, so that the full, new path would be: "/opt/homebrew/opt/libsoup@2/lib/pkgconfig:/opt/homebrew/opt/icu4c/lib/pkgconfig/:/usr/local/opt/sqlite/bin"

  1. Run cmake -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" . and see if it builds.

  2. Run make and see if the executable whip-mpegts is available.

For this tutorial, we will set up a test stream and stream to our Open Intercom call using the 'Quick Start' instructions as described in the project's README.md file.

To create a test stream on port 9998, run:

gst-launch-1.0 -v \
    videotestsrc ! clockoverlay ! video/x-raw, height=360, width=640 ! videoconvert ! x264enc tune=zerolatency ! video/x-h264, profile=constrained-baseline ! mux. \
    audiotestsrc ! audio/x-raw, format=S16LE, channels=2, rate=44100 ! audioconvert ! voaacenc ! aacparse ! mux. \
    mpegtsmux name=mux ! queue ! srtsink uri="srt://127.0.0.1:9998?mode=caller" wait-for-connection=false

Finally, to send the stream to your Open Intercom call, run this command but replace <YOUR_WHIP_URL> with the WHIP URL you copied from the Open Intercom UI: ./whip-mpegts -a "127.0.0.1" -p 9998 -u "<YOUR_WHIP_URL>" -s

For example, the command for the WHIP URL in this tutorial would be: ./whip-mpegts -a "127.0.0.1" -p 9998 -u "https://eyevinnlab-beta.eyevinn-intercom-manager.auto.prod.osaas.io/api/v1/whip/16/1/pgm" -s

The WHIP Session should now show up on the call's participant list.

image

Leaving a Call

You can choose to leave one call by pressing the ‘Leave Call’ button or to leave all calls by either pressing the blue back arrow or the Intercom logo in the top left corner of the page.

leave-call

Managing Productions

To manage your production, press the ‘Manage’ button to be redirected to the ‘Manage Productions’ page.

manage-productions

On this page, you can add new lines to a production, delete lines from the production, and also delete the production. You can also change the name of a production or a line.

manage-page

Note: You are only able to delete a line if there are no participants on that line, and you are only able to delete a production if there are no participants on any of its lines.

manage-production delete-production

When pressing the pen next to the production-name or the line-name, the field becomes editable and when pressing the save-icon the old name is replaced.

manage-production edit-name
⚠️ **GitHub.com Fallback** ⚠️