SIP SIMPLE client SDK 0.30 release
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 SIMPLE Working Group, compatibility with OMA, XMPP interoperability, GRUU (RFC5627), MSRP multiparty conferencing (MSRP switch) and critical bug fixes.
Presence¶
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: http://sipsimpleclient.org/projects/sipsimpleclient/wiki/SipMiddlewareApi#Addressbook-API
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 process.py
- 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 timing.py
- Use MarkerType to define the markers used in queue.py
- 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 (1.0.5.1)¶
- 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
Documentation¶
- The address book API: source:sipsimple/addressbook.py@4860#L1185
- Presence API: source:"sipsimple/account/__init__.py@4961#L96"
Software repositories¶
http://projects.ag-projects.com/projects/documentation/wiki/Repositories
Notes¶
- Due to Presence payloads sizes that exceed the network link MTU and potentially also the UDP maximum packet size of 64K only TCP and TLS transports are used for Presence
- To avoid overloading servers, SUBSCRIBE works only with RLS http://tools.ietf.org/html/rfc4826, http://tools.ietf.org/html/rfc4662