diff --git a/debian/changelog b/debian/changelog index 33fcbccc..831de0c2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,1539 +1,1547 @@ +python3-sipsimple (5.2.2) unstable; urgency=medium + + * Don't encode XCAP icon to bytes, let the application do it + * Load XCAP documents only if account and xcap are both enabled + * Fixed comparing XCAP status icon from server with local cache + + -- Adrian Georgescu Sat, 26 Jun 2021 13:48:10 -0300 + python3-sipsimple (5.2.1) unstable; urgency=medium * Turn off spurious per frame zrtp warning notifications * Fixed reading a media stream attribute * Fixed reading screen sharing stream attributes * Fixed matching accounts * Discard a stream observer * Run a function in green thread * Discard observer that may not have been added * Fixed crash when using VP8 and VP9 codecs -- Adrian Georgescu Tue, 22 Jun 2021 12:58:03 -0300 python3-sipsimple (5.2.0) unstable; urgency=medium * Added support for opencore AMR codecs * Added notifications when account starts * Added SIP settings for Bonjour accounts * Fixed detecting that bonjour discovery is available on Mac * Fixed reloading TLS settings * Always set tls_name Route header attribute * Removed per account TLS settings * Fixed capturing some stream exceptions * Fixed encoding PJSIP extra headers * Fixed sipfrag header parameter * Fixed crash in TLS transport * Fixed handling incoming REFER * Fixed handling incoming SUBSCRIBE * Fixed verify_peer credentials in account * Improved MediaStreamFail notification data for MSRP streams -- Adrian Georgescu Mon, 14 Jun 2021 08:55:09 -0300 python3-sipsimple (5.1.0) unstable; urgency=medium * Fixed incoming Subscriptions * Fixed incoming Referrals -- Adrian Georgescu Thu, 03 Jun 2021 15:18:48 +0200 python3-sipsimple (5.0.1) unstable; urgency=medium * Fixed encoding CPIM payload, avoid automatic conversion to base64 * Fixed comparing ChatIdentity objects * Fixed getting chatroom capabilities * Fixed handling isfocus parameter * Update TLS features * Update supported codecs * Refactor initial pjsip setup * Fixed TLS cert name in PJSIP logging * Update authors -- Adrian Georgescu Tue, 01 Jun 2021 19:35:50 +0200 python3-sipsimple (5.0.0) unstable; urgency=medium * Updated to PJSIP 2.10 * Added VP9 video codec * Added peer TLS verification settings.tls.verify_server * Added per account TLS server name to verify (account.tls.tls_name) * Updated docs/Install.linux, unpacking pjsip is required before build -- Adrian Georgescu Sat, 08 May 2021 16:28:51 -0300 python3-sipsimple (4.0.3) unstable; urgency=medium * IMDN payloads fixes * Fix multiple definition of `PJ_ATTR_MAY_ALIAS' with GCC-10 * Re-enable iLBC codec * Fixed reporting non-existing codecs * Capture Core exceptions when setting core settings -- Adrian Georgescu Fri, 30 Apr 2021 10:04:05 -0300 python3-sipsimple (4.0.2) unstable; urgency=medium * Added more granular XCAP trace -- Adrian Georgescu Mon, 08 Mar 2021 07:39:52 -0300 python3-sipsimple (4.0.1) unstable; urgency=medium * Fixed accessing invitation.transport * Update pjsip 2.10 patches * Reset verbose build flag * Fixed decoding xcap-diff payload -- Adrian Georgescu Sat, 06 Mar 2021 09:51:19 -0300 python3-sipsimple (4.0.0) unstable; urgency=medium * Migrated to python 3 * Added migration files for pjsip 2.10 * Only publish Bonjour UDP transport if no other transport exists * Use TLS as default MSRP transport for Bonjour accounts * Update installation instructions * Show TLS error details in failure notification * Capture TLS certificates read errors * Do not verify TLS peer for Bonjour connections * Capture MSRP TLS verification error context * Load entire list of CAs * Post more XCAP notifications * Catch DNS resolver initializations exceptions * Added tls_name URI param to verify the peer inside PJSIP * Log which media stream has failed * Added tls_certificate ca_list properties for accounts * Fallback to tls general options if account tls settings are missing * Patch dns.query for versions that support setting the backend -- Adrian Georgescu Wed Mar 3 15:29:13 -03 2021 python-sipsimple (3.5.1) unstable; urgency=medium * Do not run account delete inside green thread -- Adrian Georgescu Sun, 10 Jan 2021 20:26:12 +0100 python-sipsimple (3.5.0) unstable; urgency=medium * Fixed issue with clients locking when using PulseAudio as input device * Fixed correctness and consistency issue with getting the display name * Use identity tests instead of equality tests for None * Fixed timer callback function signatures * Added support for digest passwords in credentials objects * Simplified setting attribute in init * Use an internal attribute for digest for symmetry with FrozenCredentials * Fix build with LibreSSL 2.7 * Adapted the MSRP logger to the API changes in msrplib * Replaced parse_uri with the new URI.parse in msrplib * Added note about illegal character used by filetransfer MSRP extension * Use r-strings for regular expressions * Removed redundant parentheses * Added OffsetHeader type to encode/decode MSRP file offset headers * Changed how headers are added to MSRPData to be consistent * Use named attributes instead of tuple indexes when accessing byte_range * Preserve quoted arguments with build_inplace * Cleanup after build_inplace * Updated shebang line in setup.py * Updated debian build flags * Removed DH_VERBOSE definition in debian rules * Explicitly use python2 in shebang lines * Updated license and copyright years * Updated minimum version of debian dependencies * Increased debian compatibility level to 11 * Increased debian standards version to 4.5.0 -- Dan Pascu Fri, 14 Feb 2020 12:46:51 +0200 python-sipsimple (3.4.2) unstable; urgency=medium * Fixed crash when using sha1 hmac with zrtp * Added __dir__ method to Engine to correctly reflect UA attributes * Updated windows installation instructions -- Dan Pascu Tue, 26 Mar 2019 11:30:05 +0200 python-sipsimple (3.4.1) unstable; urgency=medium * Fixed cleanup of media stream when ending to avoid memory leak * Fixed inconsistency in session state at the time of posting notification * Fixed memory leak caused by out of order execution from race condition -- Dan Pascu Wed, 27 Feb 2019 10:14:48 +0200 python-sipsimple (3.4.0) unstable; urgency=medium * Fixed attribute name in comparison * Added dialog_id property on the Session class * Added logic to handle early-only and RFC2543 style tags for Replaces * 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 * Simplified RTPStreamEncryption properties * Ordered RTPStreamEncryption properties alphabetically * Fixed potential access to uninitialized variable * Removed unnecessary attribute from RTPStream * Fixed memory leak for unused streams that bleeded out audio resources * Fixed memory leak that did not release streams when canceling proposals * Use setter syntax for defining properties * PEP-8 compliance changes * Use set literals instead of set instances * Do not use mutable value for function default argument * Improved error message * Use local variable instead of instance attribute * Fixed right hand value in assignment * Use super when instantiating data types * Always clean up proposed streams when cancelling proposal * Added language_level for cython sources -- Dan Pascu Mon, 25 Feb 2019 13:51:22 +0200 python-sipsimple (3.3.0) unstable; urgency=medium * Updated to support openssl-1.1 in pjsip and zrtp * Updated to support openh264-1.6+ in pjmedia * Removed duplicate declaration of pjmedia_dir enum in _core.pxd -- Dan Pascu Wed, 12 Dec 2018 07:02:37 +0200 python-sipsimple (3.2.1) unstable; urgency=medium * Fixed building sipsimple when python-application is not installed -- Dan Pascu Fri, 05 Oct 2018 18:57:56 +0300 python-sipsimple (3.2.0) unstable; urgency=medium * Shutdown already started subsystems if application is stopped early * Fixed a bug that would hang the application if the engine fails to start * Stop the engine thread on engine failure * Reset encryption type when the RTP stream ends * Use a named logger for sipsimple logging * Use modern syntax for catching exception * Removed underscore prefix from argument name * Fixed typo in notification name * Order imports alphabetically * Import statement cleanup * Removed obsolete build option * [core] Removed unnecessary local variables * [core] Removed test for failures that cannot happen * [core] Fixed the transport being used within an incoming SUBSCRIBE dialog * [core] Removed unnecessary semicolon at the end of statement * [core] Added missing cdef statement * [core] Minimize releasing/acquiring the GIL * [core] Propagate exceptions * [core] Undo setting incoming subscription transport as it conflicts * [core] Removed unused code from setting transport * Use the new logging API in python-application 2.5.0 * Fixed compiling with newer ffmpeg * Removed duplicate dependency * Update macOS installation instructions * Added deb building instructions for Rasberry Pi * Removed copyright notices from install files * Updated copyright years * Replaced deprecated debian package priority * Switched from dbg package to dbgsym package -- Dan Pascu Fri, 05 Oct 2018 17:01:31 +0300 python-sipsimple (3.1.1) unstable; urgency=medium * Fix processing audio / video SDPs with non numeric formats * Document how to compile ffmpeg without SecureTransport * Removed obsolete pycompat/pyversions files * Updated debian uploaders * Updated debian standards version * Simplified condition * PEP-8 compliance changes * Improved object representation * Simplified building the Route's URI * Made output from Route.__str__ be consitent with SIPURI.__str__ * Fixed debian build dependency for libssl * Updated copyright years * Increased debian compatibility level to 9 * Removed unnecessary phony targets * Updated debian copyright * Updated debian package description * Fixed python-sipsimple-dbg dependencies * Simplified debian build and fixed missing module in the debug package -- Dan Pascu Fri, 05 May 2017 17:29:13 +0300 python-sipsimple (3.1.0) unstable; urgency=medium * Update Opus to version 1.1.2 * pjsip: fix handling empty re-INVITE requests * Updated dependency versions * Improved MANIFEST.in * Removed build time dependency on python-application * Updated building documentation * Added interface for scheduling functions to run in a thread * Added fake xcap settings to the BonjourAccount * Fix race conditions when processing ICE callbacks * Ignore NAPTR and SRV timeouts when doing DNS lookups * Fixed setting Referred-By header -- Saul Ibarra Tue, 18 Oct 2016 01:28:40 +0200 python-sipsimple (3.0.0) unstable; urgency=medium * Added OTR encryption support in the chat stream * Use openfile where we need control over the file creation * Use defaultweakobjectmap defined in python-application * Simplified verifying the transferred file's hash * Added FileSelectorHash class to simplify code and improve readability * Fixed recovering session state in certain failure conditions * Do not wait for notifications if we couldn't notify transfer progress * Capture unhandled exceptions and log errors from new_from_sdp * Capture errors while parsing the file selector * Handle the MedisStreamDidNotInitialize notification when adding streams * Read code and reason from the notification when posting SIPSessionDidFail * Don't rely on the failure reason being set for failed transfers * Modified the SimplePayload and CPIMPayload to only work with bytes * Handle parsing errors for is-composing documents * Added package info module * Fixed MediaStreamBase not posting MediaStreamDidNotInitialize sometimes * Remove transfer_source from notifications * Set transfer origin to the remote identity if Referred-By is missing * Don't add a Referred-By header if it wasn't specified * Handle exception when closing a file that is being read in another thread * Prevent Session.transfer from being called while a transfer is in progress * Changed default transfer reject code from 486 (Busy) to 603 (Decline) * Protect SIPPublicationWillExpire from being called by an older publication * Handle race condition where state is SameState for initial PUBLISH * Remove bundled RFC/draft files * zrtp: prefer standard AES to Twofish cipher * Log Engine failures using application.log * Set locks to NULL after destroying them * pjsip: fix compilation warnings with recent versions of FFmpeg * pjsip: removed unused files * pjsip: update to revision 5249 * Always build pjsip in non-debug mode * Avoid running timers if subscription dialog was destroyed * Suppress some compilation warnings * Avoid lockups on Engine shutdown * Post notification when SIPApplication gets a fatal error -- Saul Ibarra Tue, 08 Mar 2016 12:46:06 +0100 python-sipsimple (2.6.0) unstable; urgency=medium * pjsip: fix crash when TLS transport is reset while data is being sent * Switched is-composing failure_report to no * Refactor CPIM envelope usage * Enable lrint functions on Opus * Refactored sipsimple.streams package structure * Changed MediaStreamRegistry from being a class to being an instance * Added prefer_cpim boolean class attribute to ChatStream * Fixed stripping data in the MSRP trace * Only post chat delivery notifications when notify_progress is True * Do not post MediaStreamDidNotInitialize twice in some cases * Fixed file transfer failure reasons * Prefer CPIM for chat messages for the time being * Fixed Registrar/Publisher getting stuck under certain conditions -- Saul Ibarra Fri, 04 Dec 2015 12:15:35 +0100 python-sipsimple (2.5.1) unstable; urgency=medium * Fixed opening files in binary mode when using os.open * pjsip: enumerate supported resolutions in AVF video backend * pjsip: fix opening camera with the right resolution on AVF backend * Made stream fetch the local uri from the MSRP transport or connector * Updated dependency to latest python-msrplib * Return the ZRTP peer id as is and let the application format it as it needs -- Saul Ibarra Fri, 28 Aug 2015 12:59:49 +0200 python-sipsimple (2.5.0) unstable; urgency=medium * Added VP8 video codec support * Added basic RTCP PLI support, used for requesting keyframes * Fixed crash when handling bogus Opus packets * Simplified registering audio codecs in the core * Handle socket errors when fetching XCAP documents * Fixed several compilation warnings * Added python-application as a build dependency * Fixed getting file offset on Windows -- Saul Ibarra Wed, 10 Jun 2015 13:57:35 +0200 python-sipsimple (2.4.0) unstable; urgency=medium * Refactor file transfers and add resume support * Interrupt stream.initialize if session is cancelled * Add ISIPSimpleApplicationDataStorage interface * Adapt to API changes in MSRPlib * Simplified RTP streams initialization code -- Saul Ibarra Wed, 29 Apr 2015 12:05:30 +0200 python-sipsimple (2.3.1) unstable; urgency=medium * Report sent but unconfirmed chat messages as not delivered * Don't stop and start video ports when accessing the tee * Compile PJSIP with -fno-omit-frame-pointer * Updated Windows compilation instructions * pjsip: fix compilation of ZRTP library on Windows * pjsip: don't run AVFoundation functions in the main thread * pjsip: make the video tee thread-safe * pjsip: remove tons of unneeded code -- Saul Ibarra Wed, 25 Mar 2015 12:40:20 +0100 python-sipsimple (2.3.0) unstable; urgency=medium * Added ZRTP support * Add setting for opportunistic SRTP encryption * Fix Opus SDP encoding * Reject video streams without a profile-level-id attribute * Renamed RTP stream related notifications * Renamed audio stream recording related notifications * Fix setting FFmpeg libraries path in some cases on OSX * Fix posting ICE state change notifications * Fix sending initial keyframes when ICE is used * Run _send_keyframes on the Twisted thread * Add ability to override the sender for chat messages * pjsip: fix rendering on OSX * pjsip: avoid crashes on OSX if video size changes * Work around issue with the RTP transport lock being hold for too long * Stop the VideoTransport in the device-io thread * Removed caching of statistics on the RTP transports when stopping * Fix draining the message queue in ChatStream * Post SIPApplicationWillStart before starting the core * Make SIPApplication start / stop consistent * Fix race conditions when handling SIPApplication.state * Avoid exceptions when un-pickling XCAP journal * Add chatroom_capabilities property to ChatStream -- Saul Ibarra Tue, 17 Mar 2015 09:27:02 +0100 python-sipsimple (2.2.0) unstable; urgency=medium * Make sure ICE status change notification is only sent while waiting for it * Listen for notifications on the RTPTransport until the stream ends * pjsip: skip all surround device configurations in ALSA backend * Hold the stream lock just for checking / changing states * Adapt to API change in MSRPLib * Refactor message handling in ChatStream * Check remote supported content types in ChatStream * Update supported types in ChatStream * Raised python-msrplib version dependency -- Saul Ibarra Mon, 26 Jan 2015 12:59:03 +0100 python-sipsimple (2.1.1) unstable; urgency=medium * Add a base class for Audio and Video streams * Add / support file-transfer-id SDP attribute to FileTransferStream * Refactor video pausing capability * Relax handling some errors in the core * Compile PJSIP with -O2 optimization -- Saul Ibarra Mon, 05 Jan 2015 12:36:56 +0100 python-sipsimple (2.1.0) unstable; urgency=medium * Use the Engine IP address also for media * Extend Session.connect and Session.accept with an extra_headers parameter * Do not reset the Echo Canceller unless the audio stream changes direction * Also call stream.update on the remaining streams when removing streams * Fix unnecessarily waiting for a timeout on Session.reject_proposal -- Saul Ibarra Fri, 05 Dec 2014 13:26:06 +0100 python-sipsimple (2.0.0) unstable; urgency=medium * Add video support (H264 codec) * Add support for handling initial INVITE requests without SDP * Restart TCP and TLS transports when network conditions change * Reuse disabled SDP streams * Fix parsing makefile options * Fix linking with OSX frameworks * Unregister and unpublish when network conditions change, before restarting * Leave symbols in even on release builds * Fix not ending streams in some cases when Session.remove_streams fails * Make stream initialization and ending consistent * Report stream failure in MediaStreamDidEnd * Add ExponentialTimer helper class to util * Improved handling failures when processing remote proposals * Reply with 488 if a remote SDP offer has deleted streams * Fix race conditions when handling remote proposals * Refresh SRTP crypto lines when updating local SDP * Simplify code for obtaining the path to the OSX SDK * Use 488 code when a proposal with streams fails * Use timezone aware timestamps for Session start_time and stop_time * Parse and generate bandwidth info attributes (b=) on the SDP * Include address information with the MSRPTransportTrace notification * Use SSLv23 method for TLSi (SSLv2 and SSLv3 are disabled) * Updated bundled PJSIP to revision 4961 * Make sure a removed stream always has a connection line * Remove bandwidth attributes when disabling a stream * Reject incoming re-INVITE if we couldn't reply to it * Fix setting SDP connection line when accepting a proposal -- Saul Ibarra Thu, 20 Nov 2014 18:30:35 +0100 python-sipsimple (1.4.2) unstable; urgency=medium * Avoid recompiling the whole PJSIP every time the core is recompiled * Fix encoding when expanding user home path * Made the XMLDocument schema path configurable -- Saul Ibarra Mon, 28 Jul 2014 13:51:42 +0200 python-sipsimple (1.4.1) unstable; urgency=medium * Close external VNC viewer socket when the stream has ended * Don't try to set TLS options if there is no default account * Increased the connect timeout for external screen sharing handlers -- Saul Ibarra Fri, 27 Jun 2014 09:43:19 +0200 python-sipsimple (1.4.0) unstable; urgency=medium * Add support for adding/removing multiple streams at once * Refactored SDP handling * Send re-INVITE after ICE negotiation is done * Refactored API for creating screen sharing streams and handlers * Enable RTP keep-alive using empty RTP packets * Disabled speex codec by default * Fixed race condition when saving ICE state * Made the VNC handler connection timeout a class attribute * Allow the default VNC server and viewer handlers to be configurable * Fix closing media transport to avoid leaking STUN sockets * Store our Python object in the user_data field of pjmedia_transport * Simplified srtp_active property * Make ice_active property dynamic * Make sure session state and proposed_streams are set to correct values when processing proposals * Use a shorter timeout for re-INVITEs that need to be answered without user interaction * Silence unused-function warning caused by cython -- Saul Ibarra Wed, 28 May 2014 11:51:06 +0200 python-sipsimple (1.3.0) unstable; urgency=medium * Initialize core from main thread * Add AudioStream.recorder property and remove obsolete ones * Allow AudioStream.start_recording to be called early * Ensure MediaStreamDidEnd is always posted for MSRP streams * Fixed cancel_proposal when no streams were proposed * Fixed setting proposed streams on hold when holding during a re-INVITE * Fixed originator for SIPSessionProposalRejected * Fixed pickling for some core objects * Fixed compilation with latest Cython version * Fixed processing AudioPortDidChangeSlots if bridge was stopped * Avoid sending failure reports for MSRP keep-alive chunks * Avoid resetting greenlet when session is about to end or cancel a proposal * Removed unused tls_timeout configuration parameter * pjsip: don't compile libmilenage -- Saul Ibarra Thu, 10 Apr 2014 14:55:40 +0200 python-sipsimple (1.2.1) unstable; urgency=medium * Handle errors when sending hold/unhold requests * Fix crash if sdp_done callback is processed too late * Make sure code and reason are always set when state is disconnected * Stop AudioStream bridge when deactivating stream * pjsip: fixed compilation warning * pjsip: fix build on Windows -- Saul Ibarra Wed, 05 Mar 2014 15:03:20 +0100 python-sipsimple (1.2.0) unstable; urgency=medium * pjsip: updated bundled version to revision 4738 * pjsip: return base address as ICE transport address * Use 101 as the telephone-event payload type * Always open file in binary mode for file transfers * Accept unicode in SIPURI objects * Avoid exceptions in IncomingSubscription.end * End session if an unrecoverable error happens in remove_stream * Initialize transport to None in MSRPStreamBase.__init__ * Fixed compile warnings with Cython 0.20 * Post NetowrkConditionsDidChange if system IP address changes or the DNS Manager changes the resolvers * Fake ICE gathering states since we might get them too early * Use 127.0.0.1 for bonjour when the default IP address is not available -- Saul Ibarra Wed, 19 Feb 2014 13:22:57 +0100 python-sipsimple (1.1.0) unstable; urgency=medium * Updated opus codec to version 1.1 * Cleanup opus.c and fix compilation warnings * Always put useinbandfec in SDP for opus codec * Relax codec matching when doing SDP negotiation * Use single global c line when creating SDP * Added function to manually refresh sound devices * Added trace_msrp setting * Fixed SIP and PJSIP logging * Fixed not posting state change notifications for different provisional responses * Changed notification API for renegotiating streams * Renamed streams to proposed_streams on SIPSessionNewProposal * Renamed streams to proposed_streams on SIPSessionHadProposalFailure * Added audio.muted runtime setting to SIPSimpleSettings * Post SIPApplicationWillEnd even if Engine failed * Renamed MediaStreamRegistrar to MediaStreamType * Properly handle mutex creation failures * Added missing context attribute to MediaStreamDidFail notification * Fixed memory leak by initializing the handler after the stream initialized * Moved AudioConference to audio module * Added helper functions to allocate and release memory pools * Create null sound port only once and reuse it * Simplified audio device fallback code * Fixed crash when in-dialog request fails to be sent within a subscription * Properly patch dnspython to make it nonblocking * Added initial_delay to WavePlayer, replacing initial_play * Always use timezone aware timestamps in MSRP streams * Make sure MSRPlib always gets bytes, not unicode * Always return unicode as the received chat message body * Post SIPEngineGotException also if Engine fails to start * Make send_composing_indication refresh argument optional * Return default refresh value in ChatStreamGotComposingIndication if not specified * Don't set last active timestamp automatically * Always pass copies of stream lists in Session notifications * Don't compile WebRTC AEC if machine is not x86 or x86_64 * Raised Cython version dependency to 0.19.0 * Cleanup Cython imports and remove no longer needed workarounds -- Saul Ibarra Fri, 13 Dec 2013 13:45:31 +0100 python-sipsimple (1.0.0) unstable; urgency=low * Updated core to PJSIP 2 * Added gain control and high pass filter to audio processing * Added Opus codec support * Added support for RFC5768 (ICE option tag) * Added enabled setting for echo canceller and echo_canceller settings group * Fixed echo cancelling when using 32kHz sample rate * Always disable sound device when idle * Removed unused ignore_missing_ack feature * Removed engine shutdown workaround * Removed TLS protocol setting * Removed NAT detector from SIPApplication * Don't cap codecs based on sample rate, let PJSIP resample * Disabled narrowband speex * Fixed starting media stream if ICE fails early * Don't reset stream statistics, always report absolute values * Don't add BonjourAccount to AccountManager if there is no bonjour support * Set session state to terminated when ended before starting * Prevent PJSIP from switching transports automagically * Dropped support for Python 2.6 -- Saul Ibarra Fri, 09 Aug 2013 11:17:47 +0200 python-sipsimple (0.35.0) unstable; urgency=low * Added default URI implementation for contacts * Added extension to PIDF to include the status type * Added ItemCollection settings type * Added RuntimeSetting to the configuration framework * Publish instance id over Bonjour * Refactored bonjour discovery notifications * Return SIP Request headers in SIPMessageDidFail and SIPMessageDidSucceed notification data * Removed unnecessary end method on Message * Fixed building XML schemas on all platforms * Fixed parsing sip.instance from a REGISTER reply * Fixed compilation with Cython 0.19 * Fixed posting PublicationDidSucceed after a failure * Catch ValueError when parsing XML documents -- Saul Ibarra Wed, 26 Jun 2013 16:08:30 +0200 python-sipsimple (0.34.0) unstable; urgency=low * Added Bonjour presence * Added presence subscriber for itself to Account * Added SDPNegotiator class * Added ability to properly stringify SDPSession objects * Added ability to parse a SDPSession object from a string * Disable PJSIP assertions on recoverable errors * Removed extra checks on SDP origin field * Fixed deadlock when cross instantiating conditional singletons * Avoid sending adding participant progress if the answer is final * Avoid doing mDNS lookups with dnspython * Define __nonzero__ for XCAP Document objects * Made AddressbookManager.transaction a class method -- Saul Ibarra Tue, 19 Mar 2013 11:31:27 +0100 python-sipsimple (0.33.0) unstable; urgency=low * Added notification when incoming subscription times out * Added call_id attribute to Subscription and IncomingSubscription * Allow incoming subscriptions to have expires 0 * Fixed session transfer after API changes * Fixed setting initial timeout for incoming subscriptions * Renamed desktop-sharing media type to screen-sharing * Provide direct access to stream types on MediaStreamRegistry * Post notifications about removed neighbours when stopping bonjour services * Only set reason for NOTIFY if state is terminated -- Saul Ibarra Fri, 25 Jan 2013 16:22:05 +0100 python-sipsimple (0.32.0) unstable; urgency=low * Fixed updating local SDP direction if answer is inactive * Fixed test for supported audio codecs * Adjusted pres-rules auid to org.openmobilealliance.pres-rules * Removed icon alternative location since it was custom and is now unused * Use digits only for contact usernames to improve interoperability * Disable NAT detection * Allow more types to be directly used as configuration data types -- Saul Ibarra Fri, 11 Jan 2013 12:03:11 +0100 python-sipsimple (0.31.1) unstable; urgency=low * Terminate session if a stream fails and can't be removed from the session * Removed extended-away state from PIDF extension * Fixed setting local hold state after direction was inactive * Prevent account's activate/deactivate methods to run at the same time * Fixed race conditions when deleting an account * Fixed some lintian warnings -- Saul Ibarra Wed, 28 Nov 2012 12:37:01 +0100 python-sipsimple (0.31.0) unstable; urgency=low * Refactored streams and account relationship * Added Supported header indication for GRUU on REGISTERs * Allow extra headers to be passed to Registration * Don't use GRUU for conference subscriptions and referrals * Fixed XML datatypes for CIPID extensions * Fixed sending extra headers when unsubscribing * Fixed parsing RLS NOTIFY fayload if advertised CID is not present * Fixed thread safety issues with ChatStream functions * Moved identity attributes from MSRPStreamBase to ChatStream -- Saul Ibarra Fri, 26 Oct 2012 12:33:23 +0200 python-sipsimple (0.30.1) unstable; urgency=low * Allow unicode filenames on WaveFile and RecordingWaveFile * Fixed handling stream hold edge cases * Fixed unitialized variable error when using Cython >= 0.15 -- Saul Ibarra Mon, 17 Sep 2012 11:46:56 +0200 python-sipsimple (0.30.0) unstable; urgency=low * 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 * 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 * Skip processing bogus NOTIFY requests * Honor Min-Expires header for REGISTER requests * Adapted to eventlet package rename * Raised dependency on msrplib and xcaplib due to API changes -- Saul Ibarra Thu, 06 Sep 2012 18:13:17 +0200 python-sipsimple (0.20.0) unstable; urgency=low * Refactored XML document manipulation framework and payloads * Added screen image extension to User from conference * Accumulate chunks in ChatStream if they were segmented * Do not assume content type is text in CPIM messages * Validate participant URI when inviting to a conference * Fixed race condition when stopping uninitialized MSRP stream * Add reason attribute to notification data for SIPSessionTransferDidFail when rejecting * Fixed handling incoming call transfer failures * Dropped support for Python 2.5 * Fixed issue with notifications being posted in the wrong order * Updated build instructions -- Saul Ibarra Mon, 19 Dec 2011 14:34:44 +0100 python-sipsimple (0.19.0) unstable; urgency=low * Added Contact Management API * Integrated XCAP manager into Account * Added WebRTC AEC * Added Call Transfer support * Refactored PJSIP build process to avoid using svn * Allow TLS MSRP transport also for Bonjour accounts * Allow account to be restartable * Added ability to query the system default device name * Added the ability to get the old value of a setting * Added the ability for an XMLApplication to unregister a namespace * Added XCAPTransaction context manager for XCAPManager transactions * Workaround lxml exception when unicode strings contain encoding declaration * Automatically singleton-ize SettingsObject subclasses with static IDs * Avoid processing notification if audio bridges are not created yet * Fixed passing headers dictionary to subscription callback * Fixed getting Subscription-State header parameters * Fixed handling bogus responses to SUBSCRIBE requests * Call the notification handlers in the appropriate threads in application.py * Execute function immediately if already in the requested thread * Fixed parsing Refer-To header * Fixed __eq__ methods to properly compare with unknown type objects * Added the missing __ne__ methods to all the classes defining __eq__ * Avoid setting sound devices if none was removed * Handle error if remote ends session while we try to end it as well * Fixed race condition when reading/using the invitation state in Session.end * Added the ability to specify fallback policies when adding an XCAP contact * Fixed bug that changed empty strings into None when loading configuration * Terminate conference subscription at the same stage if session failed or ended * Consider XCAP applications unsupported until proven otherwise * Set default register interval to 3600 * Apply changes to audio tail_length in realtime * Don't fail to start audio device if starting the EC fails * Reset stream statistics after retrieving them -- Saul Ibarra Fri, 16 Sep 2011 10:52:41 +0200 python-sipsimple (0.18.2) unstable; urgency=low * Added compatibility with Python 2.7 * Adapted code for Cython >= 0.13 * Don't depend on the debug interpreter, recommend it * Removed unused SSL methods * Removed use of pysupport, use dh_python2 instead * Updated import paths for Null and Singleton for latest python-application * Fixed race condition that resulted in multiple bonjour accounts -- Saul Ibarra Wed, 08 Jun 2011 09:11:50 +0200 python-sipsimple (0.18.1) unstable; urgency=low * Added push file transfers (RFC5547) * Implemented support for MSRP ACM (RFC6135) * Added file transfers information to conference event package * Fixed string representation of SIP URIs with special characters * Implemented multi-level key based access to configuration objects * Log exceptions that occur while saving the configuration when deleting * Fixed SDP negotiation on bogus answer * Remove SDP attributes when a stream is disabled * Added format list validation for MSRP streams * Added DuplicateIDError to replace ValueError for duplicate ID's * Post notifications when settings objects are created/deleted * Protect AccountManager.load_accounts against being called multiple times * Removed internal AccountManager methods for adding/removing accounts * Refactored API to provide storage backends to SIPApplication * Start accounts in parallel * Protect Session.end against being called multiple times * Don't instantiate DNS resolver if no DNS query will be done * Break circular reference between streams and Session -- Saul Ibarra Mon, 23 May 2011 16:34:20 +0200 python-sipsimple (0.18.0) unstable; urgency=low * Added support for out-of-dialog REFER * Added add/remove participants functionality to Session * Added support for Subject header * Fixed accepting incoming subscription without any initial content * Fixed exception when NAT type detection is attempted without connectivity * Fixed conference event subscription for Bonjour account * Fixed exceptions when contact URI can't be built for the desired route * Fixed subscription locking issues * Set remote focus on incoming session, if applicable * Fixed building header body with parameters without value * Fixed building UAC and UAS dialogs when headers contain parameters * Fixed setting contact header parameters for subscription * Hide route header for outbound SUBSCRIBE requests * Fixed crashes and increased resilience when connectivity is lost * Fixed exception classes not to update their internal dict * Relax check on SDP origin to increase interoperability * Save XCAP journal after each committed operation to avoid loosing it * Reset XCAP journal when account id changes * Don't use contact URI when building conference Referral and Subscription * Fixed bug where settings with dynamc IDs were not saved in some cases -- Saul Ibarra Fri, 18 Mar 2011 17:00:29 +0100 python-sipsimple (0.17.1) unstable; urgency=low * Simplified FileSelector interface and interaction with the application * Fixed Timestamp formatting with offset-aware datetime objects * Return unicode for username and fullname from sipsimple.util.user_info * Made display_name on accounts support unicode * Fixed CPIMIdentity parsing to be unicode aware * Changed SIP headers to handle unicode display names * Made Path datatype inherit from unicode * Simplified disconnect reason on failures * Fixed exception when the session is ended on error conditions * Fixed support for audio devices containing unicode symbols in their name * Fixed detecting backslash in regex * Added request_uri attribute to Invitation -- Saul Ibarra Wed, 16 Feb 2011 14:25:28 +0100 python-sipsimple (0.17.0) unstable; urgency=low * Added blocking API to WavePlayer * Added peer_address attribute to all request objects * Do not enforce transport on request URI from route * Fixed crash on IncomingRequest deallocation * Simplified and made account contact management consistent * Fixed conference payload to accept multiple Media elements * Build PJSIP with debugging symbols, if specified * Fixed parsing conference-info payload * Removed handling of impossible invitation state transition * Wait for things to stabilize for bonjour after returning from sleep * Don't send SIPSessionDidFail in end if state is None * Only handle records in the local. domain for bonjour * Added ability to compute a FileSelector's file hash later * Added AudioStreamDidTimeout notification * Make request_uri the first argument for Request object * Added remote_contact_header attribute to Invitation * Added generation of -dbg debian package * Fixed exception when an empty SEND is received in the MSRP stream * Added request_uri attribute to Invitation and Subscription * Added conference event support to Session * Added recipients to ChatStreamGotComposingIndication notification * Added remote_media attribute to MSRP streams * Fixed private chat message detection * Send 500 response if we fail to create incoming invitation * Added lock to IncomingSubscription and released GIL where appropriate * Terminate incoming subscription if NOTIFY got 408, 481 or 7xx * Handle local timeout for outgoing NOTIFY requests in IncomingSubscription * Interrupt commands instead of killing and restarting greenlets * Only refresh subscription on events if we already have one * Properly schedule events after system is stable when waking up from sleep * Added missing notification handlers in XCAPManager for system events * Properly perform NAT detection considering all system event triggers * Allow Command to send specific results and also propagate exceptions * Fixed UTC offset in Timestamp class * If the received chat doesn't have a timestamp, build it offset-aware * Added python-dateutil dependency * Added build time dependency on cython-dbg * Reverted wrong changes and made xcap manager test script work again * Fixed race conditions in subscription handlers * Don't have XCAPManager as a singleton to avoid retaining the account forever * Terminate session conference subscription on SIPSessionWillEnd * Reduced subscription retry interval on fatal failures * Fixed receiving empty SEND in file transfer stream -- Saul Ibarra Thu, 27 Jan 2011 13:56:55 +0100 python-sipsimple (0.16.5) unstable; urgency=low * Fixed matching of media codecs on incoming calls * Allow ip_address to be specified on engine start * Fixed accepted types checking when using CPIM * Fixed CPIM support detection * Generate InvalidStreamError if no compatible payload types are found in ChatStream * Added nameservers used for lookup to the DNSLookupTrace notification * Added InterruptCommand exception * Added DNS resolver autodetection capabilities * Made accessing to the transport parameter of a SIP URI easier * Fixed TLS transport initialization * Fixed XCAPManager shutdown * Adapt XCAPManager test script to changes in the middleware * Handle ConnectionLost error in XCAPManager * Only use fallback candidate list as the last resort * Avoid creating a external reference on the subscriptions lists * Avoid moving external references to resource-lists toplevel * Don't initialize XCAPManager if the server doesn't support certain auids * Reset cached documents if XCAP root changes * Added ThreadManager and moved thread related stuff from util to threading * Reformatted some module docstrings * Made configuration thread safe * Automated finding python packages in setup.py * Updated documentation -- Saul Ibarra Tue, 14 Dec 2010 16:57:07 +0100 python-sipsimple (0.16.4) unstable; urgency=low * Fixed accessing Message-Account in MWI payload as it could be None * Fixed building codec list when rtpmap line is missing * Match codec names case insensitive -- Saul Ibarra Tue, 30 Nov 2010 10:32:03 +0100 python-sipsimple (0.16.3) unstable; urgency=low * Changed some option defaults to False * Do not impose limits on the subscription interval * Added all parsed SIP headers to SIPEngineGotMessage notification * Refactored bonjour code to be more efficient and handle all use cases * Fixed crash when parsing Retry-After header * Fixed MSRP chunk transaction status callback * Set the response code and reason when outgoing session times out * Don't answer SUBSCRIBE while deallocating * Fixed crash when Content-Type header is missing for MESSAGE * Do not create an audio stream if not compatible codecs are found * Created ContentType object for representing content type in notifications * Added extra attributes to SIPSubscriptionGotNotify notification * Fixed race condition in Session that caused exceptions in some situations -- Saul Ibarra Fri, 26 Nov 2010 15:18:48 +0100 python-sipsimple (0.16.2) unstable; urgency=low * Fixed memory and file descriptor leaks in BonjourServices * Added notifications for Bonjour discovery failures * Refactored Bonjour re-discovery after settings change * Ignore TLS contacts if the Boujour account doesn't have a certificate * Refresh MWI subscription if always_use_my_proxy setting changes * Use always_use_my_proxy setting for MWI subscriptions * Set minimum time for refreshing a subscription to 30 seconds * Wait for 3 hours if MWI subscription fails instead of stopping it * Fixed bonjour discovery when SIP transport list is changed * Made accounts also listen for config changes from SIPSimpleSettings * Do not return routes with unsupported transport from the DNS lookup * Set MSRPRelayAddress setting default port to 2855 * Moved server_advertised_uri attribute to the mwi handler * Added reregister method on Account * Added reactivate methods for registrar and mwi * Prefer the server advertised voicemail URI over the user setting * Added account.sip.always_use_my_proxy setting * Use None when the server advertised voicemail URI is an empty string * Reset the server advertised voicemail URI when MWI is disabled * Fixed handling of multiple settings changed at the same time * Remove sip: from the server advertised voicemail uri when saving it * Use capital case letters for acronyms * Remove transport_list setting from BonjourAccount * Reset bonjour neighbours on account deactivation * Turn off ICE by default * Limit PJSIP log level setting value between 0 and 5 to avoid crashes * Fixed handling of Account id change in AccountManager * Fixed handling of the id change of an Account and other SettingsObjects * Made XCAPManager not transition to insync if journal is not empty * Made audio device settings strings and removed unnecessary empty subclases * Made SampleRate only accept valid rates * Added SIPAccountWillActivate and SIPAccountWillDeactivate notifications * Set XCAP User-Agent on application start * Use xml.xsd from local folder instead of importing it remotely * Trigger a XCAP document fetch on some subscription errors * Make port test consistent with the rest of the code * Simplified port range handling and fixed case for odd ports number * Fixed port boundary checks * Fixed incorrect __hash__ method * Use UA string as User-Agent header for XCAP requests * Avoind unnecessary conversion to unicode in PortRange conversion * Added missing __ne__ method to some data types * Fixed saving configuration after assigning DefaultValue to a setting * Added PositiveInteger datatype * Enhanced xcapdiff subscription process * Removed use_xcap_diff setting * Rollback: Changed visibility of command and data channels * Rollback: Avoid using SubHandlingValue object inside XCAPManager * Fixed account elements reload on settings change * Synced Engine default options with settings * Improved default values for various global settings * Use the specific version of cython 0.12.1 for building the package * Enhanced xcapdiff subscription termination * Don't try to unregister if we weren't registered at all * Changed visibility of command and data channels to private * Fixed handling bogus TXT records for XCAP server lookups * Fixed contact edit in XCAPManager when it needs to be removed and readded * Avoid using SubHandlingValue object inside XCAPManager * Fixed building contact name on XCAP manager * Fixed use of identity conditions * Fixed handling of SIPRegistrationDidFail and SIPSubscriptionDidFail exceptions * Fixed handling of SDP c line inside the media stream * Don't wait for pending operations to finish on shutdown * Added cached_cocuments property to XCAPManager * Handle BadStatusLine exception when fetching/updating documents * Added equal and hash methods to Contact, Policy and condition classes * Raise RuntimeError if no cache directory is provided for XCAP documents * Don't keep old transformations if updated rule's action is not 'allow' * Removed some unnecessary NotificationCenter instantiations * Added properties for handling the server advertised voicemail URI * Disable dialog event by default * Increase default subscribe and publish intervals * Added back thread attribute in SIPApplication * Properly fix race condition when first NOTIFY for MWI arrives * Avoid adding more than one MWI subscribe operation to the command channel * Fixed waiting timeout for engine shutdown * Changed name for reactor thread attribute and join thread on stop * Moved Changelog back to toplevel * Fixed boolean parameters in xcap_manager test script * End MWI subscription before ending registration -- Adrian Georgescu Thu, 11 Nov 2010 13:31:38 +0100 python-sipsimple (0.16.1) unstable; urgency=low * Fixed XML document parsing for unicode objects * Changed default audio sample rate to 44100 * Stop using audio device when idle on Snow Leopard * Added short description for a legal sip address format * Send MWI subscription to voicemail_uri if specified * Fixed broken dependency to python-aplication for non-Debian systems -- Saul Ibarra Mon, 06 Sep 2010 15:55:28 +0200 python-sipsimple (0.16.0) unstable; urgency=low * Added XCAP contacts management based on OMA specifications * Added parser/generator for OMA pres-rules extensions * Added custom extension for extra attributes to entries in resource-lists * Added xcap-caps payload support * Added support for Message Waiting Indicator (MWI) * Added SIPAccountMWIDidFail and SIPAccountMWIDidGetSummary notifications * Added min_expires attribute to SipSubscriptionDidFail notification * Added audio device change detection capability in Windows * Improved logic for determining source IP address used in signalling * Added lookup_xcap_server method to DNSLookup * Added timestamp to sipsimple.util.Command objects * Added generic All and Any objects to sipsimple.util * Added support for deleting children by id in RuleSet and RLSServices * Added extension to add a display-name to common policy rules * Renamed Icon payload definition to PresenceContent * Added support for finding the parent of an element to sipsimple.payloads * Added support for XPath to sipsimple.payloads * Fixed parsing of IdentityMany policy elements * Added support for parsing file-like objects with XML payloads * Improved XMLElement hashes to allow list elements to be hashable * Delegated encoding/decoding of URI values to sipsimple.payloads * Improved unicode support of XML payloads * Removed IP address from rtcp SDP attribute * Avoid refreshing subscription if no NOTIFY was received after an un-SUBSCRIBE -- Saul Ibarra Fri, 03 Sep 2010 10:08:12 +0200 python-sipsimple (0.15.3) unstable; urgency=low * Changed default codec list to have G722 as first choice * Fixed handling of case when session is ended before INVITE is sent * Fixed subversion command execution for Windows * Set all devices to None before shutdown * Made the reactor thread a daemon thread * Bumped Standards-Version to 3.9.1 -- Saul Ibarra Fri, 13 Aug 2010 11:06:45 +0200 python-sipsimple (0.15.2) unstable; urgency=low * Added check to ensure uniqueness of account IDs * Revert G722 adaptive bitshifting that broke re-INVITES * Added python-lxml dependency and sorted dependencies order * Fixed handling unicode characters in the bonjour neighbour display names * Made use of the normalized property of Path configuration datatype * Fixed handling the case when an internal pjsip invitation error occurs * Fixed falling back to the None device when opening an AudioMixer * Null is already an instance, no need to instantiate it anymore * Added exponential timeout to DNS lookups for register * Lower PortAudio revision to 1412 and removed pulse patches * Bumped Standards-Version to 3.9.0 -- Saul Ibarra Wed, 28 Jul 2010 10:39:05 +0200 python-sipsimple (0.15.1) unstable; urgency=low * Added support for Microsoft Windows * Added PJSIP patch for adaptive G722 bitshifting * Improved the initialization of the TLS options when starting the Engine * Added support for terminating sessions in SessionManager * Don't enable bonjour account if bonjour support is not detected * Modified account matching rule for incoming sessions to ignore IP address * Added thread attribute to SIPApplication as the Thread the reactor runs in * Improved synchronization of the audio devices with corresponding entries -- Saul Ibarra Wed, 07 Jul 2010 17:17:42 +0200 python-sipsimple (0.15.0) unstable; urgency=low * Updated documentation * Added Acknowledgments section * Added support for MSRP Alternative Connection Model * Added NAT detector to SIPApplication object * Don't fail a DNS lookup if an IP address is provided * Made filename argument of start_recording mandatory * Added proposed_streams attribute to SIPSessionGotAcceptProposal * Hide Route header when sending requests out * Fixed adding/removing ports on a bridge after stop was called * Improved SIPURI with pickling and matching capabilities * Improved hold/unhold cascading in Session * Modified WavePlayer and WaveRecorder to allow unicode objects as filename * Fixed crash when system has no soundcard at all * Added ability to select PortAudio revision * Fixed use of the Reason header for determining call disconnect reason * Fixed handling of stream added to conference * Only accept IP addresses for the STUN server list * Moved MSRP transport setting to the account * Fixed ICE support detection * Added configuration instructions for audio device sharing in Linux * Fixed starting of recording on AudioStream while on hold * Fixed MSRP transport used for contacting the relay * Fixed error message in SIPProxyAddress configuration data type * Modified DNSLookup to not timeout completely if NS queries fail * Modified AudioMixer so that it keeps the sound device open on MacOSX 10.6 * Added permanent references to AudioStream to keep pjsip from crashing * Fixed Bonjour neighbour discovery handling * Improved sRTP negotiation capabilities * Fixed the build process on MacOSX 10.6 * Split the installation instructions for Debian and Ubuntu * Split the installation instructions for MacOSX 10.5 and 10.6 * Allow use of cython 0.11.2 * Fixed handling of missing ACK in Session * Fixed dialog rules payload namespace * Added pjmedia patch not to close a media stream too fast * Allocate thread descriptor from pool in portaudio callback * Fixed receiving a BYE without receiving a final response to INVITE -- Saul Ibarra Mon, 21 Jun 2010 12:59:04 +0200 python-sipsimple (0.14.2) unstable; urgency=low * Improved organization of attributes/properties in accounts * Added patch to not consider SDP in all requests/responses * Added host name to the BonjourAccountDidAddNeighbour notification * Improved default value of BonjourAccount's display_name setting * Added support for authentication username * Raised required cython version * Added RootAudioBridge to skip not needed audio processing -- Saul Ibarra Tue, 20 Apr 2010 10:02:32 +0200 python-sipsimple (0.14.1) unstable; urgency=low * Added missing dependency for AVAHI's Bonjour compatibility -- Saul Ibarra Fri, 09 Apr 2010 18:29:03 +0200 python-sipsimple (0.14.0) unstable; urgency=low * Added handling for PJMEDIA_SDPNEG errors in Session * Use transport in general settings when not using a MSRP Relay * Added missing presence and dialog settings * Do not post MSRPLibraryLog for debug level * Added reason argument to reject and reject_proposal methods of Session * Add ability to CANCEL re-INVITEs * Changed the way NotificationProxyLogger sends MSRP trace notifications * Modified the AudioStream to initialize the audio device once it starts * Added Intel architecture to Prerequisites * Calculate ICE candidate priority according to draft * Use regular nomination in ICE instead of aggressive * Changed DNSLookup to fallback to using local nameservers if NS queries fail * Added instructions for installing the cli scripts * Added new setting account.sip.enable_outbound_proxy * Fixed CPIM implementation and improved ChatStream interface * Added notifications for ICE negotiation status * Refactored audio support * Don't initialize ICE transport if remote SDP doesn't offer ICE * Proper forward declaration of Cython objects * Save session start time when media stream did timeout * Added audio conference support * Set disconnect_reason and failure_reason to the Reason header value if present (RFC 3326) * Added sip.transport_list setting to BonjourAccount * Added MSRP settings to Bonjour account * Added publishing and discovery support to BonjourAccount * Modified AudioTransport to not pause/resume the stream on hold/unhold * Add support for ICE keepalive * Changed defauls for use sRTP and codec list for better interoperability * Added a timeout when sending (re-)INVITEs * Updated documentation * Numerous bugfixes -- Saul Ibarra Fri, 09 Apr 2010 13:36:50 +0200 python-sipsimple (0.12.0) unstable; urgency=low * Removed obsolete desktopsharing.py file * Use OMA standard auids for icon and directory applications * Added slot property to AudioStream * Refactored DNS lookup implementation * Don't bit-shift g722 audio samples * Updated installation procedures * Added IVirtualAudioDevice interface and support for it in AudioStream * Modified DNSLookup to offer both a synchronous and an asynchronous API * Improved logging in DNSLookup.lookup_service * Added the request URI to the SIPEngineGotMessage notification data * Added CIPID (RFC4482) application * Added check in MSRPStreamBase for transport mismatch in settings * Added checks for SDP media stream transport for incoming sessions * Made Registration always communicate via notifications * Added capabilities application (RFC5196) * Added conference XML application (RFC4575) * Added message summary application (RFC3842) * Modified AudioStream to support changing the rtp port in reINVITEs * Pass code and reason of SIP MESSAGE response to its notification * Added dialog-info application (RFC4235) * Added call_in_(twisted|green)_thread utility functions * Added limit utility function * Refactored sipsimple.account using a green model * Restrucutred SIPApplication to simplify the code * Added support for detecting default IP address changes * Added redirect_identities attribute to SIPSessionDidFail notifications * Modified Account to re-register when some settings change * Removed sip.ip_address and rtp.ip_address global settings * Removed msrp.port global setting * Reorganized account registration notifications * Reorganized settings * Patched dns.entropy module which is not thread-safe * Modified SilenceableWaveFile to use a green model * Made Account.credentials a property * Reorganized the contents of the sipsimple.util module * Modified MSRPStreamBase to stop other operations when an end is requested * Added support for SystemDidWakeUpFromSleep notification in registration * Moved Timestamp from sipsimple.applications.util to sipsimple.util * Removed sipclients related modules, scripts and data from the project * Reorganized packages and modules * Numerous bug fixes -- Lucian Stanescu Wed, 20 Jan 2010 12:21:35 +0000 python-sipsimple (0.9.1) unstable; urgency=low * Prepare next version -- Adrian Georgescu Wed, 26 Aug 2009 15:13:16 +0200 python-sipsimple (0.9.0) unstable; urgency=low * Added upgrade guide: Read this wiki page when upgrading from a previous version * Added developer guide: http://sipsimpleclient.org/projects/sipsimpleclient/wiki/SipDeveloperGuide * Implemented notifications system from python-application * Added event-driven middleware API based on notifications: http://sipsimpleclient.org/projects/sipsimpleclient/wiki/SipMiddlewareApi * Added high-level configuration API: http://sipsimpleclient.org/projects/sipsimpleclient/wiki/SipConfigurationAPI Added sip_settings to manage the configuration framework * Configuration file config.ini is now deprecated. Use sip_migrate_settings to migrate settings from previous config.ini to the new configuration API * Added synchronous API for non-blocking operations * Adapted all command line tools to the new APIs * Added re-INVITE (hold/un-hold, adding and removing other media types) * Added sip_session script that combines MSRP chat and RTP audio in one session, media can be added/subtracted to/from active session. The script can be used for both incoming and outgoing sessions * Unify command line arguments for command line tools * Added dummy audio device support for systems without sound card * Added --auto-answer and --auto-hangup to sip_audio_session script. sip_audio_session script can now be used for scripting alarms that check both siganling and media paths, it can detect missing ACK, negative SIP response codes and missing RTP media after call setup * sip_send_file and sip_desktop_sharing temporarily disabled until migrated to the new APIs * Added asynchronous DNS lookup module and removed DNS lookups from core * Added Session manager to manage multiple SIP sessions * Added Account manager to manage multiple SIP accounts * Integrated SIP registration into the SIP account * Added next hop failover for INVITE and REGISTER methods * Made Route argument mandatory in SIP core object creation * Allow settable Contact URI for objects in SIP core * Better support for server-less scenarios (P2P and bonjour) * Added support for TLS in P2P/bonjour mode for both SIP and MSRP * Integrated various patches into PJSIP, Eventlet and Greenlet projects * Ported eventlet to ARM CPUs, msrp works now on Nokia 810 * Improved ICE/STUN support and related DNS lookups * Improved logging to file and console for SIP, MSRP, PJSIP an core notifications, added runtime control for traces in scripts * Added support for draft-ietf-mmusic-file-transfer-mech-11 in msrplib * Added support for chunking in msrplib * Splited sipclient Debian package into python-sipsimple and sipsimple-cli * Numerous bug fixes -- Dan Pascu Mon, 13 Apr 2009 16:56:50 +0300 sipclient (0.4.0) unstable; urgency=low * Added desktop sharing using VNC over MSRP * Added PJSIP patch to write and parse i= line to SDP and updated SDP wrapper classes to use it * Added --pjsip-clean-compile option to setup.py * Continue with present PJSIP tree if SVN update fails in setup.py * Revised Invitation state machine, method names, events and internals * Only ring on 180 in sip_audio_session.py * Allow Credentials object to not have a password set * Improved scripts to print any remaining logging message after the Engine has been shut down * Catch uncaught exceptions in PJSIP callbacks and generate an event to inform the application * Disconnect if no audio is received for 10 seconds in sip_audio_session.py * Use default_host_ip from python-application if local_ip is set to None in Engine * Integrated notification system from python-application * Renamed all event names to new notification naming scheme * Changed interface of Engine class in order to use Singleton metaclass from python-application * Fixed some threading bugs in the core * Renamed anything related to PyPJUA to SIP core * Renamed pypjua module to sipsimple * Fixed various bugs in XML payload handling * Made small, cosmetic changes in presence-related scripts * Set return code of scripts based on SIP status codes * Added --auto-hangup option to sip_audio_session to terminate a call after a specified amount of time * Enhanced XML applications in order to be more robust in usage and allow for future implementation of features such as xcap-diff * Updated eventlet-based interface to engine and moved it to green package * Moved logging from green classes into logstate.py module * Fixed bug: in CPIM headers 'sips' was parsed as 'sip' * Fixed bug: CPIM content was not generated / parsed properly (must add space before Content-Type line) * sip_im_session: throttle played sounds and play them at specified volume * sip_im_session: calling from command line is equivalent to issuing :call * sip_im_session: do things in the background when possible (like registrations and closing sessions) * sip_im_session: print a calming message if it takes longer than 1 sec to finish SIP transactions before exit * sip_im_session: added --no-register option * sip_im_session and sip_send_file: added --msrp-tcp option * sip_im_session: save chat history under .sipclient/history * sip_im_session: hide "Early session" messages * sip_im_session and sip_send file: relay can no longer be used for outgoing session. -r auto option is deprecated. * sip_send_file: fixed -m option to work * sip_im_session and sip_send_file: added --trace-engine option * sip_im_session: fixed to ignore path in incoming file transfers * sip_send_file: fixed not to put path in file transfer description * Added iso8601.py by Michael Twomey for parsing CPIM's DateTime header * CPIM now puts DateTime header in every message. DateTime is also used now when displaying incoming messages * Fixed green package to end session with 500 in case of exception (not 488) * sip_im_session: don't exit if failed to parse an incoming message * Fixed shutdown functions not to silent pypjua errors * Avoid hiding tracebacks by not using potentially blocking code in finally * Fixed a number of bugs in chat scripts * Removed debug_util.py * Removed chatroom.py * Removed trafficlog.py -- Adrian Georgescu Mon, 19 Jan 2009 17:26:02 +0100 sipclient (0.3.0) unstable; urgency=low * This version requires eventlet for twisted, which is not yet available as debian package. See doc/INSTALL.x for how to manually install eventlet * Purge the old debian package and/or remove any command line tools starting with sip_ and xcap_ from the path where they have been installed * Renamed sip_rtp_audio_session to sip_audio_session * Removed sip_msrp_im_session and sip_msrp_file_transfer scripts * Added sip_im_session script, supporting chats with multiple other parties and incoming file transfers * Added sip_send_file for sending files over SIP/MSRP in a batch mode * Added auto_accept_file_transfers General option * Added rtp_port_range General option * Added listen_udp General option * Added file_transfer_directory General option * Added history_directory General option * Added log_directory General option * Added msrp_relay SIP account option * Play sounds when send and receive IM * Added xcap_rls_services script * Added rtp_port_range init and runtime option to Engine/PJSIPUA * Added realtime echo cancellation adjustment to audio session script * Remodeled Invitation class to mirror PJSIP states and communicate with application by means of SDPSession objects * Adjusted audio and IM session scripts to use this new Invitation class * Implemented RTPTransport and AudioTransport classes, which wrap PJSIP media transport and audio stream functionality respectively * Refactored SIPURI, Credentials and Route classes to be dynamic * Added foreign thread and deallocation checking to PyPJUA * Prevented PJLIB calles in import to improve Windows compatibility * Removed dependency on python-application for PyPJUA * Added msrplib: MSRP protocol implementation powered by twisted/eventlet * Added twisted/eventlet wrapper for Engine * Added creation of history, log and file transfer directories in enrollment * Made sip traces get logged in //sip_trace.txt * Added script sip_auto_publish_presence * Made sip_subscribe_rls script subscribe by default to username-buddies@domain -- Adrian Georgescu Sat, 29 Nov 2008 10:44:33 +0100 sipclient (0.2.3) unstable; urgency=low * Updated MacOSX installation procedure from sources * Added fink installation from binary packages * Update the server software the client is tested against * Put version in default User-Agent header * Renamed obsolete setting name presence to use_presence_agent * Improved documentation * Define log directory in config file * More comments about settings from sample config file * Update linux install procedure with debian package installation instructions * Use the etag returned after an XCAP PUT so as not to need a GET afterwards * Change the name of the config option presence to use_presence_agent and document it * Fix buggy interconnections between conference bridge slots * Make the sip_subscribe_winfo script also use the listen_udp option * Do a GET after a HTTP error in PUT for pres-rules * Ported new-style SRV lookup to sip_msrp_file_transfer script * Ported new-style SRV lookup to sip_msrp_im_session script * Change order of display (available accounts, current account) * Record audio files to the history directory * Fix sip_subscribe_winfo when polite-blocking and change output * Add xcap_pres_rules script * Toggle logging at runtime in sip_register * Better description of what the scripts do * Make sip_register script exit after a number of REGISTERs * Print current pres rules when sip_subscribe_winfo starts * Add polite-block option to sip_subscribe_winfo script * Added PJSIP version string to default User-Agent header * Fix for bug in accepting SDP streams * Added LICENSE file to MANIFEST.in -- Adrian Georgescu Wed, 29 Oct 2008 19:46:25 +0100 sipclient (0.2.2) unstable; urgency=low * Small bug fixes * Recording capability added * Make sip_subscribe_rls script accept multipart/related content-type * Allow setting basic presence in sip_publish_presence script -- Lucian Stanescu Wed, 15 Oct 2008 17:39:34 +0200 sipclient (0.2.1) unstable; urgency=low * Include the xml schemas * Include Debian packages instructions in docs/INSTALL.linux * A minimal configuration file is generated if not found * Add 'Supported' header when subscribing to RLS services URIs * Added local IP address and port to listen on for UDP packets to configuration file * Added registerless "bonjour" account to relevant scripts * Improved SRV lookup procedure and do full lookup for outbound proxy * Do not consider 404 an error when getting the pres-rules document in sip_subscribe_winfo * Make the UDP limit 64K -- Lucian Stanescu Mon, 13 Oct 2008 17:29:48 +0200 sipclient (0.2) unstable; urgency=low * Initial release -- Lucian Stanescu Mon, 13 Oct 2008 10:29:08 +0200 diff --git a/docs/Dependencies.txt b/docs/Dependencies.txt index c9047385..2ad23790 100644 --- a/docs/Dependencies.txt +++ b/docs/Dependencies.txt @@ -1,56 +1,67 @@ SIP SIMPLE client SDK dependencies ---------------------------------- Home page: http://sipsimpleclient.org SIP SIMPLE SDK depends upon the following third party C sources: - PJSIP base revision 210 from 2020-02-14 https://github.com/pjsip/pjproject/archive/2.10.tar.gz - ZRTP tag 6b3cd8e6783642292bad0c21e3e5e5ce45ff3e03 https://github.com/wernerd/ZRTPCPP.git Fetch and patch the dependencies using get_dependencies.sh script AMR codec --------- Narrow-band * Install opencore-amr using Brew or apt-get On Mac: * export SIPSIMPLE_AMR_NB_PATH="/usr/local/opt/opencore-amr" Wide-band - * https://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc - * ./configure --prefix=/usr/local/opt/vo-amrwbenc +Download the tar archive from: - On Mac and Linux: - * export SIPSIMPLE_AMR_WB_PATH="/usr/local/opt/vo-amrwbenc" +https://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc + +On Mac: + + ./configure --prefix=/usr/local/opt/vo-amrwbenc + make + make install + export SIPSIMPLE_AMR_WB_PATH="/usr/local/opt/vo-amrwbenc" + +On Linux: + + ./configure --prefix=/usr/local/ + make + make install In ./sipsimple/configuration/settings.py add the AMR codecs to audio_codec_list: default=AudioCodecList(('opus', 'G722', 'PCMU', 'PCMA', 'speex', 'iLBC', 'GSM', 'AMR-WB'))) Python dependencies available from AG Projects repositories: * python3-application http://download.ag-projects.com/SipSimpleSDK/Python3/ * python3-eventlib http://download.ag-projects.com/SipSimpleSDK/Python3/ * python3-gnutls http://download.ag-projects.com/SipSimpleSDK/Python3/ * python3-otr http://download.ag-projects.com/SipSimpleSDK/Python3/ * python3-msrplib http://download.ag-projects.com/SipSimpleSDK/Python3/ * python3-xcaplib http://download.ag-projects.com/SipSimpleSDK/Python3/ The dependencies for each package can be found inside debian/control file On a Debian or Ubuntu based system you can install their dependencies using: sudo mk-build-deps --install debian/control diff --git a/sipsimple/__info__.py b/sipsimple/__info__.py index 3096ea4e..f3f2503f 100644 --- a/sipsimple/__info__.py +++ b/sipsimple/__info__.py @@ -1,14 +1,14 @@ """Package information""" __project__ = "python3-sipsimple" __summary__ = "SIP SIMPLE implementation for Python" __webpage__ = "https://sipsimpleclient.org" -__version__ = "5.2.1" +__version__ = "5.2.2" __author__ = "AG Projects" __email__ = "support@ag-projects.com" __license__ = "GPL" __copyright__ = "Copyright 2008-2021 {}".format(__author__)