Features and Standards

Purpose

Sylk Server is a state of the art, extensible RTC Application Server. It allows creation and delivery of rich multimedia applications accessed by SIP Clients, XMPP endpoints and WebRTC applications. It does all these with minimum (almost zero) configuration. The server supports SIP and XMPP signaling, RTP, MSRP and WebRTC media planes, has built in capabilities for creating multiparty conferences with wideband Audio, IM/ File Transfers and can be easily extended with other custom applications by using Python language.

Sylk Server togther with Sylk Pushserver provide a complete solution for deploying realtime communication services on Apple and Google mobile platforms for both one to one and multy-party calls scenarios.

Deployment considerations

To run Sylk Server you need only basic Linux administration skills. As most communications are encrypted, same as for a secure web server, you will need to install a valid TLS certificate for your domain.

To use multi-party video conferencing application alone, there is no requirement for a SIP or XMPP infrastructure. For other applications, an existing SIP or XMPP infratrusture may be required depending on the application. A WebRTC client is also provided (see Sylk Client).

When using Sylk Server for SIP clients, beware that Sylk Server is not designed to transparently route packets, authorization, accounting and handle NAT traversal for signaling or media. Performing applications like SIP Proxy, Registrar, or Presence Agent are out of its scope. Sylk Server must be typically deployed behind a SIP Proxy for providing such functions.

Sylk Server is horizontally scalable with the amount of available hardware by using SIP Thor.

Features

SIP Signaling

  • TLS, TCP and UDP transports
  • INVITE, MESSAGE, REFER
  • SUBSCRIBE, NOTIFY
  • XMPP Gateway

Conferencing

  • Conference participants
  • Wideband RTP mixer
  • MSRP switch
  • XMPP MUC

Video conferencing

  • WebRTC RTP/AV
  • File-sharing
  • Screen-sharing
  • Low bandwidth usage

NAT Traversal

  • SIP Outbound Proxy
  • ICE clients
  • MSRP Relay clients
  • MSRP ACM clients

Voice over IP

  • Wideband (Opus, G722)
  • Narrowband (G711, iLBC)
  • SRTP encryption (SDES, ZRTP)
  • Hold/Unhold

Messaging

  • MSRP sessions and SIP Message
  • CPIM, IMDN and Is-Composing
  • Offline storage backend
  • OpenPGP encryption

File Transfer

  • MSRP protocol
  • Progress reports
  • Conference-info extension
  • Conference room persistent

Gateways

  • SIP/XMPP chat/audio
  • XMPP/SIMPLE presence
  • SIP/WebRTC RTP/AV
  • IRC chat

Specifications

Sylk Pushserver was designed to act as a central dispatcher for mobile push notifications inside RTC provider infrastructures. Supported platforms:

  • Apple Push Notifications

  • Firebase Cloud Messaging

Sylk Server implements relevant features from the following standards:

  • WebRTC SFU (based upon Janus backend)

  • SIP (RFC3261) and related RFCs for DNS, ICE and RTP

  • MSRP protocol RFC4975

  • MSRP relay extension RFC4976

  • MSRP File Transfer RFC5547

  • MSRP switch RFC 7701

  • MSRP Alternative Connection Model RFC6135

  • Indication of Message Composition RFC3994

  • CPIM Message Format RFC3862

  • Conference event package RFC4575

  • A Framework for Conferencing with SIP RFC4353

  • Conferencing for User Agents RFC4579

  • Conferencing for User Agents RFC4579 (5.1, 5.2, 5.5, 5.11)

  • XMPP core RFC6120

  • XMPP extensions https://xmpp.org/extensions/xep-0001.html

  • Instant Messaging RFC6121

  • Jingle XEP-0166

  • Jingle RTP Sessions XEP-0167

  • Jingle ICE-UDP Transport Method XEP-0176

  • RTP Topologies RFC7667 (3.7 Selective Forwarding Middlebox)

STOX IETF Working group

STOX IETF Working Group has been chartered to standardise SIP/XMPP protocol interoperability.

The feedback provided by Sylk Server was instrumental in the standardisation efforts of STOX IETF working group, originally started by P. Saint-Andre.

  • RFC7247 - Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Architecture, Addresses, and Error Handling

  • RFC7248 - Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Presence

  • RFC7572 - Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Instant Messaging

  • RFC7573 - Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): One-to-One Text Chat Sessions

  • RFC7702 - Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Groupchat

  • draft-ietf-stox-media - Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Media Sessions