Full changelog

Version 6.3.0

December 22nd, 2023

  • Updated documentation
  • Increase minimum version of SDK required
  • [conference] Handle non base64 images in conference room
  • [webrtcgateway] Use twisted reactor for Cassandra connection
  • [webrtcgateway] Catch race condition/exception when sending a message on a disconnected socket
  • [webrtcgateway] Added file transfers to push notification for unread messages
  • [webrtcgateway] Reject incoming sessions if they contain no transfer streams
  • [webrtcgateway] Added support for ringing and proceeding events
  • [webrtcgateway] Added direction to sync remove message content
  • [webrtcgateway] Added direction to sync remove messages

Version 6.2.2

July 7th, 2023

  • [webrtcgateway] Fixed pull MSRP filetransfers

Version 6.2.1

July 6th, 2023

  • [webrtcgateway] Added API option to get messages from timestamp
  • [webrtcgateway] Send filetransfer text messages only on unencrypted files
  • [webrtcgateway] Added OMA RCS - RCC 0.7 support
  • [webrtcgateway] Send OMA RCS - RCC 0.7 message to sip devices when filetransfer is received
  • [webrtcgateway] Fixed timestamp in filetransfer data
  • [webrtcgateway] Added support for receiving RCS.07 filetransfers messages
  • [webrtcgateway] Support 'pull' MSRP filetransfers in webrtcgateway
  • [webrtcgateway] Added until to filetransfer JSON and metadata
  • [webrtcgateway] Use MSRP transfer id as identifier for incoming filetransfer

Version 6.2.0

May 10th, 2023

  • [webrtcgateway] Added upload support for filetransfers from webrtc
  • [webrtcgateway] Added filetransfer message to send to webrtc end-points
  • [webrtcgateway] Refactored filetransfers internally to datatype class
  • [webrtcgateway] Extend filetransfer meta storage
  • [webrtcgateway] Reworked storage conditions for filetransfers
  • [webrtcgateway] Remove transferred files when originator deletes message
  • [webrtcgateway] Send CPIM filetransfer messages to all end-points
  • [webrtcgateway] Only send plain text filetransfer messages to SIP
    end-points and don't store them
  • [webrtcgateway] Added extra field to indicate server generated messages
  • [webrtcgateway] Moved SIP application handlers to seperate file
  • [webrtcgateway] Prevent traceback by handling videoroom update event
  • [webrtcgateway] Fixed early media race condition
  • [webrtcgateway] Fixed filename in filetransfer route
  • [conference] Added setting to disable moh in conference rooms

Version 6.1.0

February 22nd, 2023

  • [webrtcgateway] Added initial support for asynchronous file transfers
  • [webrtcgateway] Added houskeeper method to remove expired filetransfers
  • [webrtcgateway] Added support for sending In-Dialog SIP messages
  • [webrtcgateway] Added the ability to get/set custom headers in a SIP call
  • [webrtcgateway] Added support for deleting messages with a custom SIP message
  • [webrtcgateway] Added support for PGP key lookup with a custom SIP message
  • [webrtcgateway] Added message storage for the originator of incoming SIP messages
  • [webrtcgateway] Added work around to prevent tracebacks on non UTF-8 messages
  • [webrtcgateway] Fixed push tokens pickle storage
  • [webrtcgateway] Fixed public key lookup from JSON storage backend
  • [webrtcgateway] Fixed removing data with maintenance script when using JSON storage backend
  • [webrtcgateway] Fixed removing messages in JSON storage backend
  • [webrtcgateway] Fixed storing of non CPIM messages
  • [webrtcgateway] Fixed returning error when API token is not found
  • [webrtcgateway] Fixed storing failed messages when the account is disconnected
  • [webrtcgateway] Fixed replies to refer/subscribe SIP messages
  • [webrtcgateway] Renamed sylk-db-maintenance script to sylk-db
  • [webrtcgateway] Extend sylk-db script with more functionality
  • [webrtcgateway] Support newer Janus versions
  • [webrtcgateway] Refactored message handling in webrtcgateway main app
  • Updated default file location for playback application
  • Improve default settings and include playback URI by default
  • Updated docs

Version 6.0.0

October 12th, 2021

  • Migrated to Python3
  • Added log dir server settings
  • Fixed loading mime types in a sandboxed environment
  • Added trace_notification server setting
  • Set relative ./var path if started from local directory
  • Log SIP session failure_reson
  • Log spool directory at start
  • Log available codecs at start
  • [webrtcgateway] Added database maintenance script (init db/remove data)
  • [webrtcgateway] Added push requests for messages
  • [webrtcgateway] Added config option to make conference room persitent (don't remove uploaded files)
  • [webrtcgateway] Added config option to send a push notify when first participant joins
  • [webrtcgateway] Added config option to disable video in a conference room
  • [webrtcgateway] Added offline storage for text messaging
  • [webrtcgateway] Added real time message syncronization between end-points
  • [webrtcgateway] Added authorization token generator for external SIP devices
  • [webrtcgateway] Added sync conversations journal for external SIP devices
  • [webrtcgateway] Fixed webserver and screensharing resource for conferences
  • [webrtcgateway] Fixed sending conference info notifications
  • [webrtcgateway] Fixed handling screen sharing in conference
  • [webrtcgateway] Added message storage functions/API to websocket connection
  • [webrtcgateway] Refactored token storage
  • [webrtcgateway] Fixed Janus trace logging
  • [webrtcgateway] Fixed saving shared screens in conference
  • [webrtcgateway] Fixed dispatching messages in conference app
  • [webrtcgateway] Fixed conference subscription for sessions from sylkserver
  • [webrtcgateway] Fixed conference chat destination
  • [webrtcgateway] Fixed websocket for communicating with janus
  • [webrtcgateway] Fixed websocket to webrtc client
  • [webrtcgateway] Fixed encoding deviceid in base64
  • [webrtcgateway] Fixed method encoding for file uploads in webrtc webserver
  • [webrtcgateway] Fixed resource register for webrtc application webserver
  • [webrtcgateway] Fixed webserver root and path encoding
  • [webrtcgateway] Update WebRTC diagram
  • [webrtcgateway] Fixed settings conference room file transfer directory
  • [xmppgateway] Fixed encoding SDP attributes in xmpp gateway

Version 5.7.0

October 14th, 2020

  • Added (external) IMAP authentication for webrtcgateway
    The authentication type can be configured per domain in auth.ini
  • Added apache-cassandra as storage backend
  • Added session_id based on callid to conference invite
  • Added supoort for audio only conferences
  • Added support for 'ping' in sylkrtc protocol
  • Added support for early media
  • Added user agent to token storage
  • Changed Firebase push notifications to Sylk push server
  • Exposed call-id in API for SIP calls
  • Fixed destroying videoroom when client is disconnected
  • Fixed push media types
  • Fixed rejecting SIP methods in webrtc app
  • Improved logging of push notifications
  • Improved webrtc video room logging
  • Mention how to enable debug mode
  • Read device token from push response on 410 code
  • Replaced call-id by random uuid in push notification and conference invite
  • Replaced session id on incoming call to uuid from callid
  • Store push tokens and parameters in pickle file
  • Use push notification token for VoIP

Version 5.6.0

April 7th, 2020

  • Added videoroom capability to raise/lower your hand
  • Added videoroom capability to send mute command to all participants

Version 5.5.0

February 14th, 2020

  • Fixed typing information
  • Converted method to static method
  • Silenced some IDE weak warnings
  • Removed commented out variable in debian rules
  • Explicitly use python2 in shebang lines
  • Do not ship a sysv init script anymore
  • Simplified MANIFEST.in
  • Increased debian standards version to 4.5.0
  • Use pybuild as the debian build system
  • Updated copyright years

Version 5.2.0

February 27th, 2019

  • Updated TLS certificates

Version 5.1.1

February 27th, 2019

  • Fixed attribute name to match latest sipsimple internals
  • Fixed a race condition that leaked audio resources

Version 5.1.0

February 25th, 2019

  • Replaced obsolete ptype value for subscribers
  • Avoid unnecessary list copy
  • Removed unnecessary boolean variable
  • Do not reset the proposed_streams attribute when the session is rejected
  • Reordered some operations for consistency
  • Make sure the greenlet attribute is always removed when greenlet exits
  • Removed code that duplicated cancel handling inside reject handler
  • Fixed spacing to be PEP-8 compliant
  • Check if attribute is present
  • Removed unnecessary attribute from AudioStream
  • Avoid using tracking variables in favor of a more pythonic code
  • Fixed memory leak that did not release streams when canceling proposals
  • Use setter syntax for defining properties
  • Turned unnecessary list comprehensions into iterators
  • Always clean up proposed streams when cancelling proposal

Version 5.0.0

October 5th, 2018

  • [webrtcgateway] Removed bogus attributes
  • [webrtcgateway] Fixed exception handling for validating json model
  • [webrtcgateway] Cleanup accounts when the client connection is lost
  • Removed data duplication and inconsistent attributes
  • Fixed argument types
  • Moved DNS lookup log message to debug level
  • Simplified building the result of the DNS lookup
  • Simplified and fixed DNS lookup when no outbound proxy is involved
  • Generalized sylkrtc json model mapping
  • Removed unnecessary default value
  • Avoid duplicate indexing when getting the data
  • Use python3 compatible form for except statements
  • Avoid unnecessary attach/detach in janus if DNS lookup fails
  • Added debug_level setting to ServerConfig
  • Added ability to toggle between configured log level and debug at runtime
  • Removed unused import and order imports alphabetically
  • Set videoroom bitrate to overwrite janus' low default of 256Kb/s
  • Added API call to allow a client to update session parameters on the fly
  • Register atexit handler to dump memory debug info
  • Simplified and enhanced application loading/accessing code
  • Fixed spurious SIPApplicationWillStart post and handling early stop
  • The __init__ method should not return any value
  • Made policy matching logic consistent and simplified code
  • Refactored logging
    • Updated code to use the new logging features from python-application.
    • Rewrote system logging to be more readable and easier to interpret.
    • Implemented trace loggers based on notifications to separate and
      isolate them from the code that generates the trace log events.
    • Added a trace logger for DNS lookups.
  • Added bitrate and video_codec configuration options for video rooms
  • Fully cleanup the connection handler resources when client disconnects
  • Simplified getting the session with the handle_id
  • Rewrote VideoRoomSessionContainer to not use weak references.
    When sessions were removed from the container, there was no guarantee
    that there was no other reference to them somewhere else in the code,
    which would cause dangling id-to-session mappings to be kept around
    in the container for undetermined periods of time.
  • Renamed VideoRoomSessionContainer to SessionContainer
  • Fixed order of operations during ConnectionHandler cleanup
  • Added PublisherFeedContainer class for holding videoroom publisher feeds
  • Use SessionContainer to hold SIP sessions instead of using 2 mappings
  • Provide more context in log messages to identify where they're generated
  • Changed default max_bitrate value from 4Mb/s to 2Mb/s
  • Automatically adjust participant bitrate based on number of participants
  • Do not warn about missing session (it might've been destroyed elsewhere)
  • Do session cleanup after all processing
  • Separated session hangup event handler
  • Simplified handling hangup events as they do not have an associated code
  • Eliminated delays when deleting sessions and video rooms
  • Avoid an unnecessary base session lookup
  • Verify that the detached feed belongs to the requester
  • Use dict constructors instead of dict literals for readability
  • Fixed race condition when deleting SIP session
  • Fixed exception while deleting subscriber sessions during hangup events
  • Use discard as session might not be yet added to the video room
  • Handle JanusError exceptions and relay errors back to client
  • Properly release resources when getting JanusError exceptions
  • Do not treat DNS lookup errors as API errors
  • Fixed invite to conference to not include oneself
  • Simplified finding the invited accounts
  • Made method for handling conference invites public
  • Made VideoRoomContainer consistent by not relying on weak references
  • Moved video room access validation from ConnectionHandler to VideoRoom
  • Simplified building request data for SIP calls and registrations
  • Removed unnecessary room attribute
  • Simplified code and increased readability
  • Unified handling of exceptions for the video room join operation
  • Send back error responses for videoroom-ctl requests with missing fields
  • Use modern syntax for catching exceptions
  • Improved PEP-8 compliance
  • Removed copyright notice from script
  • Updated license
  • Use the actual config type and file to find out which files are read
  • Improved some log messages
  • Do not log traceback twice
  • Removed duplication of startup error handling
  • Added run method on SylkServer
  • Use SylkServer.run to decouple from SylkServer's internals
  • Refactored startup script and configuration handling
    • Removed command line option to specify the pid
    • Removed command line option to specify the main configuration file
    • Added a command line option to specify the configuration directory
    • Added a command line option to specify the runtime directory
    • The main configuration file name is now immutable (config.ini)
    • The pid file name is immutable (sylk-server.pid)
    • All configuration files are now treated consistently
    • Properly read both local and system wide configurations
    • Do not initialize the runtime directory when not forking
  • Simplified the setup.py script and improved PEP-8 compliance
  • Added requirement on the jsonmodels python package
  • Do not split statements over multiple lines when not needed
  • Improve validator efficiency by using objects with a validate method
  • Do not use slow regular expression for validating SIP URIs
  • Fixed finding resources when forking and started with a relative path
  • Log the resources directory on startup
  • Better names for some of the json model classes
  • Added LimitedChoiceField for json models
  • Replaced emdash HTML code with the actual character
  • Use a local copy of bootstrap.min.css
  • Updated authors and sponsors
  • Split videoroom-ctl handler into subhandlers per option
  • Simplified getting static web resources for webrtcgateway
  • Make the web resource available as a property
  • Fixed handling ack messages
  • Simplified getting the result from janus messages
  • Added support for setting the active participants in a room
  • Log unhandled exception details
  • Only update active participants if different
  • Added UniqueStringListField JSON model field type
  • Moved normalization of the active participant list to the JSON model
  • Use the UniqueStringListField type for the invited participants
  • Split operation handlers into request and event handlers
  • Moved boilerplate code out of the request handlers
  • Moved general exception handling into operation handlers
  • Wait for the connection to be ready once before processing operations
  • Added generic sylkrtc request to model mapper
  • Simplified instantiating sylkrtc models from requests
  • Removed code that was never reached
  • Restructured code to avoid unnecessary extra return statements
  • Removed unnecessary additional private method
  • Fixed race condition when a connection handler is stopped while starting
  • Fixed race condition when cleaning up a connection handler while stopping
  • Removed unnecessary partial function
  • Simplified keepalive callback
  • Simplified webrtcgateway package structure
  • Removed unnecessary references to the janus backend everywhere
  • Renamed attribute to better reflect its function
  • Renamed some arguments and variables for clarity
  • Refactored sending keepalives to be internal to the protocol
  • Simplified stopping the keepalive timer
  • Grouped public/private API methods together
  • Explicitly added protocol methods to JanusBackend
  • Removed redundant namespace prefix
  • Optimized code to only send keepalive messages when necessary
  • Simplified code sending janus requests
  • Do not allow request arguments to overwrite core attributes
  • Do not attempt to send messages after the connection was closed
  • Fixed return value from deferred callback
  • Fixed error with cancelling already called timer
  • Replaced dependency on python-jsonmodels with internal module
    The jsonobjects module was written to replace the functionality
    provided by jsonmodels while offering the following advantages:
    • More than 10 times faster
    • Much lower memory footprint
    • No need for manual validation
    • Objects are validated on creation and every time they are modified
    • Guaranteed data consistency throughout the lifetime of the objects
    • JSON arrays are first class objects allowing them to be used standalone
    • JSON arrays can be embedded alowing for multi-dimensional arrays
    • JSON arrays can define both item and array level validators
    • Better semantics for optional properties and default values
  • Added ConnectionHandler.send method to replace notify and _send_response
  • Renamed VideoRoom to Videoroom in class names
  • Refactored client API to simplify it and make it consistent
  • Simplified AbstractProperty getter
  • Improved data extraction speed by a factor of 2
  • Have the 'in' operator to check if a property is defined in a JSONObject
  • Fixed code formatting warnings
  • Removed unnecessary class
  • Removed unnecessary util.py module
  • Optimized returned value
  • Allow LimitedChoiceProperty to be optional and have a default value
  • Keep all internal SIP URIs as AORs for consistency
  • Moved FixedValueProperty and LimitedChoiceProperty to jsonobjects.py
  • Moved validators to validators.py
  • Added DisplayNameValidator that removes optional quotes
  • Added type hinting for sylkrtc models
  • Fixed DisplayNameValidator to work with empty names
  • Use JSON models to encode/decode messages to/from Janus
    • Encapsulated Janus session and plugin handle functionality to classes
    • Simplified generating Janus requests and processing Janus replies
    • Correctly handle Janus errors sent as error events in success replies
    • Split Janus event handlers to improve readability and maintability
    • Moved data validation to the JSON model validators
  • Use UTC timestamps in push notifications.
    The local timezone of sylkserver is both irrelevant for the client that
    receives the push notification and it's also 20 times slower to generate
    a server local timestamp than a UTC timestamp (115us vs 6us)
  • Use JSON models for Firebase push notifications
  • Added method to send conference invite push notifications
  • Renamed push notification methods from xyz_session to xyz_call
  • Simplified signature for the push notification functions
  • Fixed race condition with cleaning subscriber sessions in conferences
  • Split debian dependencies one per line
  • Removed dependency on dummy package
  • Removed unnecessary version dependencies
  • Updated debian package description
  • Improve performance for push notifications by reusing the request
  • Log push notifications at DEBUG level
  • Avoid composing log message unless needed
  • Use log.warning instead of its alias log.warn
  • Updated python-application version dependency
  • Updated dependency list in the INSTALL file
  • Use default sound for push notifications
  • Send push notifications for conference invite events
  • Use relative imports for webrtcgateway
  • Adjusted the WebRTC gateway URL in the sample configuration
  • Fixed URL class to not mangle template variable
  • Adjusted conference welcome message
  • Fixed sending ACK to the wrong address by SofiaSIP
  • Ignore the Janus SIP plugin ringing event for now
  • Ignore the Janus SIP plugin progress event for now
  • Fixed matching empty file:// origins with the latest autobahn
  • Moved debian dependency to the proper package
  • Drop support for autobahn older than 0.12
  • Removed deprecated pycompat/pyversions files
  • Removed unnecessary .PHONY target
  • Removed code that prevented sylkserver from restarting on upgrades
  • Do not install janus configuration files with sylkserver-webrtc-gateway
  • Removed defaults file
  • Allow sylkserver to leave a core file when run by systemd
  • Removed build dependency on obsolete package
  • Increased debian compatibility to 11
  • Synced MANIFEST.in file with latest file changes
  • Rename .ini.sample files to .ini in the debian package
  • Fixed corrupted sound file names in the deb if name contains spaces

Version 4.1.0

January 20th, 2017

  • Mention implemented standards for WebRTC video conferencing
  • Improve logging of WebRTC gateway and video conference applications
  • Added per video room access control and recording options
  • Fix settings the recording folder for video conference recordings
  • Fixed chatroom capabilities
  • Changed codec order
  • Changed sample rate to favor opus
  • Adjusted sample config with latest default values
  • webrtcgw: improved logging of incoming connections
  • webrtcgw: initial implementation of push notifications framework
  • webrtcgw: fix sample configuration file
  • webrtcgw: reorganized package
  • webrtcgw: fix for AutoBahn API change
  • webrtcgw: simplify ICE state flags
  • webrtcgw: uncomment log lines
  • webrtcgw: set content_available to True for FCM notifications
  • Capture validation errors when building requests
  • The new_token field is not required for the account-devicetoken request
  • Added extra logging to help debug device token handling
  • Increased debian compatibility level to 9
  • Increased debian standards version
  • Updated debian package maintainer
  • Added debian dependency on lsb-base
  • Adjusted debian package's descriptions
  • Updated boring file

Version 4.0.0

October 12th, 2016

  • webrtc: add multi-party video conferencing capability
  • webrtc: separate Janus event handlers per plugin
  • webrtc: refactor JanusSessionInfo
  • webrtc: reorganize API module
  • webrtc: update builtin HTML description page
  • core: add support for TLS certificate chains for the builtin web server
  • echo: refactor application
  • conference: advertise call-by-uri WebRTC URIs
  • conference: don't advertise XMPP support by default
  • conference: advertise other means to join a room also when in bonjour mode

Version 3.3.0

June 14th, 2016

  • webrtcgateway: refactor API message handling
  • webrtcgateway: reorganize models
  • webrtcgateway: add support for setting account display name
  • webrtcgateway: remove obsolete sylkrtc test application
  • webrtcgateway: add ability to customize User Agent
  • Raised Janus version dependency
  • Update Janus configuration

Version 3.2.0

March 8th, 2016

  • Fix per-room pstn_access_numbers setting
  • Fixup leftover old streams API usage
  • webrtcgateway: skip 'detached' event
  • Update references, some of the drafts are now RFCs
  • Fix overriding local_uri for MSRP streams
  • Fix sending XMPP messages after API changes
  • Fix method name
  • webrtcgateway: enable WebSocket pinging
  • Un-vendor Klein
  • Disable i/o buffering when running with systemd
  • Fix access to MediaStreamRegistry after SDK upgrade
  • Make the Jingle MediaStreamRegistry analogous to the SIP one
  • Catch exceptions when accepting incoming subscriptions
  • Don't set GnuTLS compression parameters
  • Adapt to API changes in SIPThor
  • Several code style improvements
  • Log errors when setting up streams in new_from_sdp
  • Remove mismatched HTML closing tag
  • Handle parsing errors for is-composing payload
  • Reject incoming sessions with a Replaces header
  • Fixed compatibility with AutoBahn >= 0.12
  • webrtcgateway: enable optional SRTP-SDES for outgoing calls
  • Adapted to changes in SIPSIMPLE SDK 3.0.0
  • Update INSTALL
  • Use collections.Counter instead of a custom defaultdict
  • Simplified logic for starting server
  • Added command line option for memory debugging
  • Adapt to transpoert API change in Jingle streams
  • Use new notification to listen for Engine failures
  • Forcefully exit if we fail to start TLS
  • Join the Engine thread just for 5 seconds
  • xmppgateway: fix unicode error when sending MSRP chunks

Version 3.1.0

December 4th, 2015

  • Fixed default web port in sample config file
  • Terminate connections if backend goes down
  • webrtc: fix navbar rounded corners in test app
  • Update bundled sylkrtc.js library
  • webrtc: show remote party in test app
  • Improve error messages for API call errors
  • Exit with a a non-zero exit code if engine failed
  • Update README with WebRTC related information
  • Added 'missed_session' event
  • Added webrtc_gateway_url settings for conference rooms
  • Adapt to changes in SIP SIMPLE SDK
  • Raised python-sipsimple dependency
  • Updated Janus config to match new version
  • Raised Janus version dependency
  • webrtc: add display name support for incoming and missed calls

Version 3.0.1

September 4th, 2015

  • webrtc: mute local video in test application
  • Adjust web port in configuration example
  • Fix installing default certificates also in /usr/share/

Version 3.0.0

August 28th, 2015

  • Added WebRTC gateway application
  • Switch to using listenSSL
  • Make main web server logging less verbose
  • Fix initializing Path datatype
  • Rework how services are published in SIPThor
  • Install all sample configuration files
  • xmppgateway: make factories not noisy
  • Add systemd unit file
  • Improved Debian package creation
  • Added build dependency on dh-python

Version 2.10.1

June 16th, 2015

  • Added missing dependency on python-werkzeug

Version 2.10.0

June 15th, 2015

  • Add global web server that applications can tap into
  • Refactor web capabilities of conference application
  • Make loading and starting applications more resilient
  • Log exceptions when initializing/starting/stopping applications
  • Log application map on startup
  • Reorganized some code in the echo application
  • Fix building FileSelector objects out of RoomFile objects
  • Fixed using undefined variable

Version 2.9.1

April 29th, 2015

  • Add spool_dir setting
  • Simplify SylkServer's stream subclasses
  • Stop the session manager first when shutting down
  • Adapt to API changes in MSRPlib
  • Refactor file transfers to match API changes in SIP SIMPLE SDK

Version 2.9.0

March 17th, 2015

  • Added ZRTP and opportunistic encryption support
  • Adapt to changes in SIP SIMPLE SDK
  • Add python-lxml as a direct dependency
  • Relax XMPP - SIP URI marching
  • Accept any content type in echo application
  • Support inlined images in the conference application
  • Add setting for toggling presence activity logging (xmppgateway)
  • Refactored path handling and TLS certificate location
  • Simplify default paths for resources in /var
  • Add ability to skip the isfocus parameter when publishing a Bonjour
  • Publish echo application on Bonjour if enabled
  • Publish playback application on Bonjour if enabled
  • Change default directory for conference file transfers
  • Tag all messages sent by the room as status messages
  • Publish every Bonjour service with a different id

Version 2.8.0

December 5th, 2014

  • Add a custom Session class
  • Added setting for toggling ICE support
  • Add advertised_ip setting
  • Use the specified IP address both for signaling and media
  • Enhance playback application
  • Adapt to latest SDK API changes
  • Don't advertise the default conference on Bonjour if it's not the default
  • Add ability to find applications by name to ApplicationRegistry
  • Log default application on start
  • Use if the local address could not be determined
  • Refactor managing the single account SylkServer currently uses
  • Rename sylk.extensions to sylk.streams
  • Refactored WelcomeHandler in conference application
  • Use the specified IP address both for signaling and media
  • Allow user-part only matching on playback application
  • Don't manually create the Contact header when not needed
  • Fix JingleSession and adapt audio streams to API changes
  • Strip HTML in IRCconference application
  • Fix handling XMPP stanzas sent to a bare JID when the session was bound

Version 2.7.2

August 12th, 2014

  • Fix setting local IP address
  • Null doesn't need to be instantiated

Version 2.7.1

July 18th, 2014

  • Fix variable name

Version 2.7.0

July 9th, 2014

  • Added setting to set the hostname for conference room screen sharing URL
  • Fix race condition when initializing TLS transport
  • Fixed streams API usage after changes in SIPSIMPLE SDK
  • Fix handling cancelled proposals
  • Added display_name attribute to conference rooms
  • Simplify loading room configuration
  • Cleanup old room files on startup
  • Use '.log' as the extension for log files
  • Added logrotate file
  • Raised python-sipsimple version dependency

Version 2.6.2

June 12th, 2014

  • Fixed resource leak in playback application
  • Refactored welcome prompt playback for ircconference application

Version 2.6.1

May 21st, 2014

  • Adjust Session to changes in SIP SIMPLE SDK
  • Adapted server startup to changes in SIP SIMPLE SDK
  • Send REPORT chunks automatically for keep-alive chunks
  • Log SIP SIMPLE SDK version
  • Raised python-sipsimple version dependency

Version 2.6.0

February 19th, 2014

  • Fixed issues when shutting down the Engine
  • Fixed generating is-composing payload when refresh is not set
  • Accept multiple PSTN numbers for a given conference room
  • Use better API for building is-composing payload
  • Avoid unnecessary processing when dealing with CPIMIdentity objects
  • Simplified history storage in conference app
  • Simplified code for handling proposal failures
  • Simplified code for starting/stopping SylkServer
  • Renamed incoming_sip_message to incoming_message
  • Use the new NetworkConditionsDidChange notification
  • Bumped Debian Standards-Version
  • Raised python-sipsimple version dependency

Version 2.5.1

December 16th, 2013

  • Adapted to API changes in SIP SIMPLE SDK
  • Added option to dump core in case of a crash
  • Fixed dispatching messages when in bonjour mode
  • Limit session in echo application to 10 minutes
  • Skip broadcasting OTR messages
  • Reworked server stop mechanism
  • Removed obsolete sound files and fixed co_there_is prompt
  • Fixed removing observer if notification is processed too late

Version 2.5.0

August 9th, 2013

  • Adapted to changes in latest SIP SIMPLE SDK
  • Added playback application
  • Enabled Opus codec by default
  • Added setting for sample rate, defaults to 32 kHz
  • Advertise PSTN and XMPP access in conference rooms
  • Replaced prompts with higher quality ones
  • Fixed initializing PJSIP's internal resolver
  • Don't use signal.pause to pause the main thread
  • Always disable echo canceller
  • Improved logging
  • Ignore audio device change notifications
  • Removed dependency on python-backports
  • Dropped Python 2.6 support

Version 2.4.0

March 22nd, 2013

  • Added VoIP translation for SIP/XMPP gateway (Jingle)
  • Added Presence to Bonjour conference rooms (XEP-0174)
  • Added support for XMPP software version (XEP-0092)
  • Added support for XMPP ping (XEP-0199)
  • Reply with service-unavailable to unsupported XMPP IQ stanzas
  • Improved XMPP service discovery support (XEP-0115)
  • Fixed a race condition related to SIP subscriptions
  • Improved description of XMPP related settings

Version 2.3.0

January 30th, 2013

  • Added SIP/XMPP gateway ability to invite participants to a multiparty chat
  • Added RTP audio and MSRP chat 'echo' application
  • Added support for XEP-0030 (service discovery)
  • Added ability to load extra applications from an external directory
  • Added timestamp to generated PIDF documents
  • Simplified mechanism required for adding new applications
  • Refactored per-application logger
  • Improved logging in XMPP gateway and conference applications
  • Removed extended-away state handling as it no longer exists in the SDK
  • Made several improvements to XMPP stanza parsing
  • Fixed detecting MSRP Nickname collision
  • Fixed handling presence stanzas without a resource part in the from
  • Fixed translating resource IDs for presence
  • Fixed leaking session objects if session fails while joining a conference
  • Fixed mapping room URI for received REFER requests

Version 2.2.1

November 9th, 2012

  • Fixed stream creation after API changes in SDK
  • Fixed accessing session objects after API changes in SDK
  • Renamed ServerSession to Session

Version 2.1.1

October 9th, 2012

  • Fixed file transfers when using Bonjour mode
  • Fixed normalizing IPAddress datatype
  • Disables private messages support when using Bonjour mode

Version 2.1.0

September 17th, 2012

  • Added ability to disable applications
  • Added ability to configure the directory for resource files
  • Added ability to listen on all interfaces
  • Refactored Bonjour support
  • Fixed starting music on hold playback
  • Fixed setting extended status for XMPP dnd state
  • Fixed API calls due to changes in SIP SIMPLE SDK
  • Delay conference database initialization until application is started
  • Don't encode and quote DeviceInfo description

Version 2.0.0

September 6th, 2012

  • 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

Version 1.3.0

December 22nd, 2011

  • Added multiparty comference screen sharing capability
    by accepting jpeg images over an established MSRP chat stream
  • Added web-server to serve shared screens
  • Made configuration file optional by using defaults settings
  • Initialize applications after loading them
  • Fixed parsing Refer-To URI
  • Pass-through additional headers when dispatching chat
  • Adjusted to the latest changes in XML payloads from
  • Reject incoming call transfer requests to conference
  • Dropped support for Python 2.5

Version 1.2.3

September 20th, 2011

  • Adapted to API changes in SIPSIMPLE SDK

Version 1.2.2

July 20th, 2011

  • Enabled TLS by default
  • Fixed compatibility with Python 2.5
  • Fixed regression when sending private messages
  • Fixed renaming file when it already exists
  • Listen by default on port 5061 for SIP TLS transport
  • Fixed exception when proposal is rejected but no timer was added
  • Adapted to accounts handling changes in the middleware

Version 1.1.0

March 18th, 2011

  • Added incoming REFER support
  • Added outgoing INVITE support
  • Added SIP outbound proxy support
  • Added Trusted Peers based on source IP address
  • Added Access Control Lists support to conference application
  • Added basic multi-application support
  • Added IRC conference application
  • Added SIPThor integration
  • Fixed initialization of TLS settings
  • Made session connect method receive the contact header
  • Catch exception if outgoing NOTIFY could not be sent
  • Fixed exception when sending private message to a participant without chat
  • Refactored exception handling when sending chat messages
  • Refactored application finding mechanism
  • Reject incoming requests with 404 if application is not found
  • Removed SIP MESSAGE support in conference application

Version 1.0.1

February 17th, 2011

  • Added unicode support
  • Fixed building CPIMIdentity object
  • Use request URI to match rooms instead of the To header

Version 1.0.0

January 27th, 2011

  • Initial release