All Projects → kamax-matrix → matrix-appservice-voip

kamax-matrix / matrix-appservice-voip

Licence: AGPL-3.0 license
Matrix Bridge to Voice and Video networks

Programming Languages

java
68154 projects - #9 most used programming language

Matrix Bridge to Voice and Video networks

Build Status

Requirements
Setup
Integration
Usage


This project is no longer maintained.


This is a Voice/Video/SMS bridge for Matrix using the Application Services (AS) API.

Requirements

You will need Java 8 to build and run this bridge.

Setup

Setup can either be done via downloading the latest binary, or by building the binary yourself.
Java JRE 1.8 or higher is required to run the binary.
Java JDK 1.8 or higher is required to build the binary.

Steps overview

  1. Build the bridge (Optional)
  2. Configure the bridge
  3. Run the bridge
  4. Configure your HS
  5. Configure your VoIP backend
  6. See Usage instructions to see how to interact with the bridge
  7. Start calling!

Build

If you would rather build the binary yourself rather than downloading the compiled one of the latest release:

Checkout the repo:

git clone https://github.com/kamax-matrix/matrix-appservice-voip.git
cd matrix-appservice-voip

Run the following command in the repo base directory. The runnable jar mxasd-voip.jar will be present in ./build/libs:

./gradlew build

Configure

Copy the default config file application-sample.yaml in the same directory as the jar file.
The configuration file contains a detailed description for each possible configuration item.
Edit it to suit your environment.

Run

Manual

Place the binary into the directory of your choice and run it.
Example using /opt/mxasd-voip:

cd build/libs/mxasd-voip.jar /opt/mxasd-voip/
/opt/mxasd-voip/mxasd-voip.jar

Integration

Homeserver

Synapse

Like any bridge, a registration file must be generated which will then be added to the HS config.
Currently, there is no mechanism to automatically generate this config file.

You will find a working example at registration-sample.yaml, which you should copy at the same location as the Bridge configuration file.
Configuration must match the various sections in the bridge config file.

Synapse can then be configured with:

app_service_config_files:
    - "/path/to/registration.yaml"

VoIP providers

FreeSWITCH

This bridge relies on the Verto module of FreeSWITCH which natively handles WebRTC.
Edit the providers.freeswitch.verto section in the config file to suit your installation and provide the Websocket URI and relevant credentials.

See the dedicated HOWTO to quickly get started.

Usage

At this time, there is no easy way to invite someone by phone number in Matrix clients. Therefore, you'll need to compute the Matrix ID that correspond to the phone number on your own.

The following step-by-step assumes you:

  • Have example.org as your Matrix domain
  • Have a user template with _voip_%REMOTE_ID%
  • Want to place a call to 00123456789
  1. Manually compute the Matrix ID, which will be @_voip_00123456789:example.org
  2. Create a new room/chat and invite that Matrix ID. This room must only have the virtual user and yourself as members.
  3. Place a call, the device at 00123456789 should ring
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].