--- 23 August 2016 ---

The Demo (OFFLINE)

Update: On 1st of November 2016 the demo system so far hosted reachable as demo.steakconferencing.de was permanently retired.

For anybody to recreate the setup, the required configuration files (incl. SSL certificates) are now on Github and the instructions to install the system can be found below.


The STEAK project provides a «prodution-ready» system, so the spatial representation can be experienced without the hassle to setup the whole system. For reasons of technical simplicity the system is only accessible via WebRTC.

Requirement 1: The demo system can only be used with Google Chrome or Chromium are supported.1

Requirement 2: A not heavily firewalled Internet connection (e. g., no cooperate networks).2 If you tried the demo system and did not hear anything (i. e., no incoming audio) then you might need to try a different Internet connection.

Demo

Beside the above mentioned requirements, just enter your desired conference number and start talking.

  1. Go to demo.steakconferencing.de (Google Chrome or Chromium),
  2. Allow request to use the microphone, and
  3. Select a conference room (000-999) or select a demo (demo1 or demo2).

The demo system is also available via a German land-line number (without spatial representation): + 49 30 / 120 64 155


»Begin Disclaimer«

The installed system is working, but it is not as heavily secured as it would be required for a «production» system.

So, use the systems only to talk about things that you would consider public!

»End Disclaimer«

@Hacking

The demo system:

If you find some security issues, please drop us a message (see About).

If somebody breaks the demo system, enjoy your victory – the demo system will be repaired once or twice. If it happens too often, we will just shutdown the demo system forever.

The Details

The demo setup is the STEAK-enhanced Asterisk server running on an Arch Linux. For easier setup, the demo is implemented using SIP over WebRTC. This avoids dowloading, installing, and configuring a dedicated client as a WebRTC-capable webbrowser can act as a client.

The setup works as follows:

The Asterisk provides a built-in HTTP server reachable as demo.steakconferencing.de. Visiting this webpage with a WebRTC-capabable webbrowser, downloads the demo-client (standalone HTML using SIP.js). This client then connects to the built-in HTTP server and upgrades the connection to a WebSocket connection. Using this connection, the client registers at the Asterisk server (SIP register) and on success initiates a call (SIP invite). The Asterisk server accepts the incoming call and creates/connects the call to a spatialized conferencing bridge – the called number is the identifier of the conference bridge. Here, both, client and server, establish an unidirectional RTP connection for transmission of the speech data. The server might send spatially rendered signals while the clients only sends the signal of his microphone. During the call, DTFM can be used to activate or deactivate the spatialized representation.

For incoming calls via the German land-line number (it is just SIP), the procedure is the same except that the server registers at a remote party, which transforms land-line calls to SIP.

For practical reasons, the server is not available using SIP.

The demo system uses the Fabian HRTFs.

Installation

In the following it is explained how to build the STEAK-enhanced Asterisk (v13.6.0). This guide was tested on Ubuntu 16.04.

For details about Asterisk and its building procedure please see here.

Software requirements

ATTENTION: PJSIP must be used in version 2.4.5! Some patches for required in Asterisk to work with newer versions were not backported to v13.6.0.

###Install requirements shell sudo apt install build-essential subversion git sudo apt build-dep asterisk sudo apt install libopus-dev libfftw3-dev

ATTENTION: For build-dep it is required to enable the source repositories. See /etc/apt/sources.lists. After editing run sudo apt update.

###Build and install PJSIP v2.4.5.

svn co http://svn.pjsip.org/repos/pjproject/tags/2.4.5/
cd 2.4.5
./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS='-O2 -DNDEBUG'
make dep && make && sudo make install

###Download STEAK-enhanced Asterisk source code: git clone -b steak-13.6.0 --single-branch https://github.com/steakconferencing/asterisk

###Prepare building: cd asterisk && ./bootstrap && ./configure

###Configure make menuselect: disable chan_sip and enable chan_pjsip

###Build and install: make && sudo make install

###Install configuration files from Github

  1. The demo system only supports Google Chrome or Chromium as we lack the resources to account for the vast number of (also changing) differences between browser implementations.

  2. A firewall might allow to initiate the call (i.thinsp;e., signaling succeeds) as it is handled through HTTPS. However, then client and server try to establish RTP-connections to transmit audio. If the firefall prevents these connections, no audio will be received at both sides.