Download
Sylk Server
Sylk Server is packaged and ready to use on Debian and Ubuntu Linux. Alternatively, you can download its source code and build the package yourself, install it the python way or run it from its download directory without installing it system-wide.
Linux Packages
Linux installation instructions are available here. The package name is sylkserver.
sudo apt-get update sudo apt-get install sylkserver
or to install with WebRTC gateway support:
sudo apt-get update sudo apt-get install sylkserver-webrtc-gateway
Source Code
The source code is managed using darcs version control tool. The darcs repository can be fetched with:
darcs get http://devel.ag-projects.com/repositories/sylkserver
To obtain the incremental changes after the initial get run:
darcs pull -a
Alternatively, you can use our Github mirror.
Install the required dependencies:
python3-sipsimple from http://sipsimpleclient.org (>= 5.3.0)
python3-autobahn
python3-klein
python3-wokkel
To run Sylk Server in the foreground:
cd sylkserver/ ./sylk-server --no-fork
To install Sylk Server manually on the system tree:
cd sylkserver/ sudo python setup.py install
Running the server
Set in /etc/default/syslkserver:
RUN_SYLKSERVER=yes
The software can work fine with the default settings. To overwrite the default settings edit the following files:
- General:
-
/etc/sylkserver/config.ini
- Conferencing:
-
/etc/sylkserver/conference.ini
- XMPP:
-
/etc/sylkserver/xmppgateway.ini
At least one XMPP domain must be configured in the file above and the DNS.
- WebRTC:
-
/etc/sylkserver/webrtcgateway.ini
You need to at least change the default TLS certificate and Janus api token.
Start the server:
sudo systemctl start sylkserver
Logging
Activity messages are logged to system journal.
SIP and MSRP protocol traces can be enabled in config.ini
Listening ports
Sylk Server must run on a public IP address reachable directly by the SIP clients. If Sylk Server is installed behind NAT using a private IP address, only clients from the same LAN can make use of it.
Sylk Server listens for incoming connections on the following ports:
Component |
Ports |
Transport |
---|---|---|
SIP signaling |
5060 |
UDP, TCP |
SIP signaling |
5061 |
TLS |
RTP media |
50000:50500 |
UDP |
MSRP media |
2855 |
TLS |
XMPP media |
5269 |
TLS |
WEB media |
random > 1024 |
TLS |
WebRTC |
10888 |
TLS |
The server is also initiating outbound connections for both signaling and media.
Janus, an internal component used for WebRTC, is listening on
web socket 127.0.0.1:8188
Installation instructions
Installation instructions are available here.
Sylk Pushserver
Sylk Pushserver was designed to act as a central dispatcher for mobile push notifications inside RTC provider infrastructures. Both the provider and the mobile application customer, in the case of a shared infrastructure, can easily audit problems related to the processing of push notifications.
Download instructions are similar to Sylk Server:
the package is called sylk-pushserver
The software requires Python 3
Sylk Desktop
Source Code
The source code is maintained using darcs version control tool. The darcs repository can be fetched with:
darcs get http://devel.ag-projects.com/repositories/sylk-webrtc
To obtain the incremental changes after the initial get run:
darcs pull -a
Alternatively, you can use our Github mirror.
By default, the client requires no configuration to run by using the publicly available SIP2SIP service as a backend.
iIf you want to use Sylk Client with your own Sylk Server installation edit this file:
src/app/config.js
and rebuild the client as described in the README.md file.
Sylk Mobile
See Github mirror...
How to contribute
The original source code is maintained using darcs version control tool.
Darcs repository
If you want to help us fixing a bug that you found or if you want to contribute with a new feature you must be familiar with the darcs version control system from http://darcs.net.
First make sure you are using the latest version by doing a darcs pull. Then record your changes using darcs record. Follow the following guidelines for recording your changes:
Keep a patch name under 80 characters, so that a darcs changes in a 80 char console is consistent and readable. If you need to write more than that, use --edit-long-comment or do not specify -m "patch name" and it will automatically ask for a patch name and a long comment. Keep the long comment inside the 80 char frame. When you add a long comment, you have the patch name on the first line. After that, leave an empty line and then add the long comment starting from the 1st column. If you need to add bulleted entries in the long comment, use a dash (-) not an asterisk (*), to avoid confusion with the asterisk darcs places before every patch name. Record separate patches for each distinct changes you make. Do not mix different changes in a single record. Use darcs replace to rename tokens if possible instead of using a search and replace in your editor. It correctly handles cases where someone else still kept using the old name (it will automatically rename this uses of the old name when he pull the darcs replace patch, which a simple token rename done by the editor and recorded as a standard diff will never do, requiring further patches to rename the old tokens that the other developer added in his code while you were doing the renaming).
Finally, notify us on the SIP Beyond VoIP mailing list at:
http://lists.ag-projects.com/pipermail/sipbeyondvoip/
After approval, submit the patch using:
darcs send --to devel@ag-projects.com
Github
The darcs repository is mirrored on Github.
You may submit a Github pull request as usual. We will check the it and if approved by our developers, will apply it to the original darcs repository.