SylkServer: SylkServer 2.0.0 public release

Added by Adrian Georgescu over 5 years ago

There is a new release of SylkServer with a new application, SIP/XMPP gateway. By pointing the correspondent DNS records for SIP or XMPP services of a given Internet domain to the address of this gateway, any packet sent to or connection established to the gateway by one of the protocols is transparently translated into the other. The only setting required is the XMPP domain and its DNS entries.

The gateway can translate Presence, Short Messages, Chat Sessions and handle MUC sessions. This means that is possible to make a multi-party conference where SIP and XMPP end-points can join and see the participants list. The functionality is described in detail here [[DesignXMPP|here]]


sylkserver (2.0.0)

  • Added XMPP gateway application
  • Added Bonjour support
  • Added support for MSRP NICKNAME
  • Added ability to map applications by RURI, domain or username
  • Added ability to select desired application with X-Sylk-App header
  • Added ApplicationLogger, in order to prefix each application's log lines
  • Added start/stop methods to applications
  • Added ability to specify more attributes when sending MSRP messages
  • Allow applications to handle the 'presence' event on incoming
  • Patch sipsimple.session to use ServerSession objects
  • Modified ChatStream to send MSRP REPORT chunks manually
  • Made contact_header optional in ServerSession.connect
  • Use received reason when notifyig about REFER request progress


Installation and upgrade instructions are found [[Installation|here]].

Special thanks

The development for SIP/XMPP gateway was sponsored by NLnet


Support for Jingle Audio and File Transfers will be added in a future release.

SIP SIMPLE Client SDK: SIP SIMPLE client SDK 0.30 release

Added by Adrian Georgescu over 5 years ago

SIP SIMPLE client SDK 0.30 release

There is a new release of SIP SIMPLE client SDK available. Version 0.30 incorporates Presence functionality based on standards from [[SipFeatures#Presence|SIMPLE Working Group]], compatibility with OMA, XMPP interoperability, GRUU (RFC5627), MSRP multiparty conferencing (MSRP switch) and critical bug fixes.


At over 15,000 lines of Python code, Presence is by far the most complex part of the SDK and the reason it took so long to produce. Presence functionality is now incorporated into an easy to use address book that can be used to develop contact-driven Real Time Communication clients without having to deal with the complexity of SIP signaling, XCAP storage and data replication among multiple devices.

SIP SIMPLE client Presence API is simple to use, at minimum one can use Group, Contact and Policy classes each of them with add/delete/update methods and eight notifications in total to manage the address book. Subscribing to Presence for a contact and granting access to our own presence information are boolean that can be set for each contact. Next Blink release will incorporate this functionality.

The API documentation is available at:

XMPP interoperability

Interoperability with XMPP for MUC and Presence payloads allows for the SDK to be used in border applications that interact with both SIP and XMPP protocols. Next SylkServer release will incorporate this functionality.

Change logs

python-sipsimple (0.30.0)

  • Added PUBLISH for presence and dialog events
  • Added SUBSCRIBE using RLS for presence and dialog events
  • Added SUBSCRIBE for presence.winfo and dialog.winfo events
  • Added handing for RLS NOTIFYs for presence and dialog events
  • Added Offline Presence capability using XCAP pidf-manipulation
  • Added Icon Storage using XCAP oma-pres-content
  • Added Presence policy management using XCAP oma-common-policy
  • Added Addressbook with Presence enabled Contacts
  • Added MSRP Switch NICKNAME support
  • Added GRUU support (RFC 5627)
  • Added ability to configure SIP loop detection
  • Refactored XML payloads framework and datatypes
  • Refactored the XCAP manager and its API
  • Refactored contact management into addressbook management
  • Refactored interaction between the account and its handlers
  • Honor Min-Expires header for REGISTER requests
  • Fixed building sipfrag payloads
  • Fixed crash when bogus G722 payload is received
  • Fixed crash on SDP version overflow
  • Fixed removing a stream if a negative response was received
  • Fixed engine failure on bogus incoming REFER requests
  • Fixed crash on RTCP decryption when using SRTP
  • Fixed handling re-INVITEs with empty body
  • Fixed subscribing to conference event from Bonjour account
  • Reply with 200 OK to in-dialog OPTIONS requests
  • Support hostnames in STUN servers list
  • Honor Min-Expires header for REGISTER requests
  • Skip processing bogus NOTIFY requests
  • Adapted to eventlet package rename
  • Raised dependency on msrplib and xcaplib due to API changes

python-xcaplib (1.0.17)

  • Beautify output XML data
  • Implemented a host cache with lifetime tied to the request's lifetime
  • Fixed the green HTTPClient to use host caching
  • Redefined some functions as methods and reorganized code a bit
  • Removed auth argument from XCAPClient and automatically support both
  • Only add username/password to the password manager if they are defined
  • Adapted to eventlet package rename
  • Bumped debian standards version to 3.9.3
  • Raised debian/compat version to 7

python-msrplib (0.15.0)

  • Added support for NICKNAME method
  • Made received chunk handling more flexible
  • Adapted to eventlet package rename
  • Bumped debian standards version to 3.9.3
  • Raised debian/compat version to 7

sipclients (0.30.0)

  • Print account GRUU if available
  • Fixed scripts to match API changes
  • Added ability to set nickname in sip-session
  • Removed obsolete scripts
  • Bumped debian standards version to 3.9.3

python-application (1.4.0)

  • Simplified and made ThreadLocal descriptor faster
  • Added timestamp and datetime properties on notifications
  • Made test more efficient
  • Removed unnecessary methods
  • Removed some old compatibility code
  • Added missing all entry in
  • Changed order or arguments for timer.end() for convenience
  • Added MarkerType metaclass to application.python.types
  • Use MarkerType to define markers
  • Ordered imports alphabetically
  • Do not ignore base exceptions
  • Fixed documentation example
  • Added missing all to
  • Use MarkerType to define the markers used in
  • Moved imports at toplevel
  • Added weakobjectmap implementation
  • Replaced WeakKeyDictionary with newly added weakobjectmap
  • Removed some obsolete backwards compatibility code
  • Removed compatibility with python2.5
  • Replaced some old forms or raising an exception
  • Refactored Boolean data type
  • Use limit instead of locally defined constrain function
  • Be specific when catching exceptions
  • Fixed how we access the class attribute to work with subclassing
  • Added a center attribute to posted notifications

python-gnutls (1.2.4)

  • Fixed compatibility with twisted 11.1.0 for TLSServer as well

python-cjson (

  • Use repr instead of str when encoding floats to preserve full preicision
  • Fixed windows compilation problem introduced in 1.0.5
  • Fixed float write test to work with latest high precision float encoding
  • Fixed some list/dict decoding bugs. Use a state machine for decoding them.
  • Improved decoding speed by using PyString_GET_SIZE instead of strlen
  • Integrate modified 0001-fix-for-CVE-2010-1666 patch from Debian
  • Reworked debian packaging


  • The address book API: source:sipsimple/
  • Presence API: source:"sipsimple/account/"

Software repositories


Blink Cocoa: Contacts List Management

Added by Adrian Georgescu over 5 years ago

Blink contact management has been completely refactored starting with Blink Pro 1.9.0 and Blink Lite 1.7.0.


  • Faster load at start
  • Faster processing for merging XCAP changes
  • XCAP documents are fetched in parallel

User Interface

  • New Edit Contact panel to manage all new features
  • Subscription policy can be managed easily inside the edit contact panel
  • New button for creating Contacts, Groups and scrolling to a particular Group
  • Cmd L Shortcut to collapse/expand the current group
  • Drag and drop possible from Contacts from Address Book Group to Blink Groups
  • Merge Contacts when drag and drop a Contact on top of another
  • Move Contacts when drag and drop between Groups
  • Address Book addresses are aggregated per Contact
  • Right click on Contact to start session to any address part of the Contact
  • Address Book Contacts can be added to the Contacts List
  • LDAP results can be added to the Contacts List
  • LDAP results can be appended to existing Contacts
  • Contact can be edited when right click on its Favourite entry


  • Each Contact can have multiple addresses
  • Each address can have a type
  • Each Contact can be present in multiple groups or no group


  • New Groups added for contacts with no groups and all contacts
  • Groups can be collapsed and expanded using Cmd-L shortcut

Backup and Restore

  • All Contact attributes are preserved
  • Groups and Contact group membership are part of the backup
  • Automatic weekly backup
  • Automatic backup when migrating from a previous (< 1.9.0) Blink version

XCAP Storage

  • All changes are serialized and multiple clients can perform concurrent changes on other attrributes of same Contact
  • Multiple changes are performed atomically in a transaction
  • Implemented OMA specifications
  • Contacts are now ready to handle Presence and Dialog Events (roadmap)

SylkServer: SIP/XMPP gateway application

Added by Adrian Georgescu over 5 years ago

SylkServer can now act as a transparent gateway between SIP and XMPP protocols. This functionality can be used by a SIP service provider to bridge out to XMPP domains or to receive incoming requests from XMPP domains for its local SIP users. In a similar fashion, a XMPP service provider can use the gateway to bridge out to SIP domains and handle incoming requestes from SIP domains to the XMPP users it serves.

A chat media session or a presence dialog initiated by an incoming connection on the XMPP side is translated into an outgoing request on the SIP side and the other way around. To make this possible, proper SIP or XMPP records must exists into the DNS zone for the domain that needs the gateway service.

A complete description of the gateway design and its implementation can be found here: [[DesignXMPP]]


The following gateway features have been implemented, click on their name to see a full description:


The software is now available as source code download. To use the software you also need the latest development branch of SIP SIMPLE Client SDK. You can manually build a Debian package from the sources

Live testing

SylkServer has been integrated with SIP2SIP service

Using a account, one can start a MSRP chat session to a or address or from these XMPP domain to any user. The SIP server will route the session request through the SylkServer XMPP gateway application and chat sessions can be established between the SIP users of sip2sip domain and XMPP users of and domains.

For testing Presence functionality you can use any SIP SIMPLE client or the command line tools sip-subscribe-presence, sip-subscribe-winfo and sip-publish-presence from the sipclients package


  • Public release as a Debian package
  • Jingle audio and video sessions
  • File transfers

SIP2SIP: Real time SIP trace

Added by Adrian Georgescu over 5 years ago

It is now possible to have access in real time to the SIP trace and RTP media statistics for each session. To access the trace:

Using Blink

Select your SIP2SIP account and go to menu Tools -> Call History

Other clients

Login using your SIP account credentials to and go to History tab.

Each session has a Trace link, click on it. A new web page opens listing all SIP packets logged by the server. Click on each packet to expand its content.


Added by Adrian Georgescu over 5 years ago

The next release of SIP SIMPLE Client SDK will feature a comprehensive suite of SIP SIMPLE Presence specifications:

« Previous 1 ... 6 7 8

Also available in: Atom