Features and Standards

What is it?

SylkServer 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.

Deployment considerations

To run SylkServer 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 SylkServer for SIP clients, beware that SylkServer 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. SylkServer must be typically deployed behind a SIP Proxy for providing such functions.

SylkServer 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
  • Encryption
  • H.264 and VP8 codecs
  • Opus wideband audio

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

IM & Presence

  • MSRP and XCAP protocols
  • CPIM envelope
  • Is-composing indicator
  • Delivery reports

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

Implemented Standards

The server implements relevant features from the following standards:

  • 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 SylkServer 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