/python-sipsimple

SIP SIMPLE implementation for Python

Primary LanguagePythonOtherNOASSERTION

SIP SIMPLE Client SDK
---------------------

Copyright (c) 2008-2020 AG Projects
http://ag-projects.com


Description
-----------

SIP SIMPLE client SDK is a Software Development Kit for easy development of
SIP end-points that support rich media like Audio, Video, Instant Messaging,
File Transfers, Desktop Sharing and Presence.  Other media types can be
easily added by using an extensible high-level API.

The software has undergone in the past years several interoperability tests
at SIPIT (http://www.sipit.net) and today is of industry strength quality.


Background
----------

SIP stands for 'Sessions Initiation Protocol', an IETF standard described by
RFC 3261. SIP is an application-layer control protocol that can establish,
modify and terminate multimedia sessions such as Internet telephony calls
(VoIP). Media can be added to (and removed from) an existing session.

SIP allows the endpoints to negotiate and combine any type of session they
mutually understand like video, instant messaging (IM), file transfer,
desktop sharing and provides a generic event notification system with
real-time publications and subscriptions about state changes that can be
used for asynchronous services like presence, message waiting indicator and
busy line appearance.


Features
--------

The library has cross platform capabilities on Linux OS, Mac OSX and
Microsoft Windows.  The library should work with minimal changes on any
platform that supports C and Python development environments.

The SDK is suitable for building end-points like SIP clients or SIP
Application Servers.  To see what the SDK is capable of, you can try Blink
from http://icanblink.com


General

 * Written in Python
 * Non-blocking asynchronous engine
 * Built-in configuration framework
 * TLS Security for signaling (SIP) and media (MSRP, XCAP)
 * Support for multiple SIP accounts
 * Multiple Media Types per Session (e.g. Video, Audio and IM)
 * Failover support for DNS lookups, SIP and MSRP routing
 * Implements re-INVITEs for adding and removing media streams
 * Automatically handling if IP Address changes
 * Audio conference bridge
 * Wav player and recorder
 * Acoustic Echo Cancelation
 * Answering machine
 * Wide-band Internet audio codecs: Opus and Speex
 * PSTN compatible codecs: G722, G711, iLBC, GSM
 * Video codecs: H.264, VP8

Supported media

 * Audio and Video (RTP/SRTP/ZRTP)
 * Instant Messaging (MSRP and its relay extension)
 * File Transfer (MSRP and its relay extension)
 * Screen Sharing (VNC over MSRP)

All media types can be combined together in the same SIP session.


Normative References
--------------------

SIP Signaling

 * SIP, Session Initiation Protocol (RFC 3261)
 * SDP, Session Description Protocol (RFC 4566)
 * An Offer/Answer Model with Session Description Protocol (SDP) (RFC 3264)
 * Reliability of Provisional Responses in Session Initiation Protocol (RFC 3262)
 * HTTP Authentication: Basic and Digest Access Authentication (RFC 2617)
 * The Reason Header Field for the Session Initiation Protocol (RFC 3326)
 * The Session Initiation Protocol (SIP) Refer Method (RFC 3515)
 * The Session Initiation Protocol (SIP) "Replaces" Header (RFC 3891)
 * Session Initiation Protocol (SIP) Call Control - Transfer  (RFC 5589)

Address Resolution

 * DNS resolution (RFC 3263)
 * Bonjour multicast DNS (draft-lee-sip-dns-sd-uri-03)

NAT Traversal

 * SIP Signaling: Symmetric Response Routing Symmetric media (RFC 3581)
 * RTP media (Audio and Video): ICE, Interactive Connectivity Establishment
   (RFC 5245)
 * MSRP media (Instant Messaging and File Transfer): MSRP protocol relay
   extension (RFC 4976)

Audio and Video

 * RTP, A Transport Protocol for Real-Time Applications (RFC 3550)
 * Real Time Control Protocol (RTCP) attribute in Session Description
   Protocol (SDP) (RFC 3605)
 * SRTP, The Secure Real-time Transport Protocol (RFC 3711)
 * Generation and parsing of telephone-events payload in both RTP and SDP
   (RFC 2833)
 * ZRTP: Media Path Key Agreement for Unicast Secure RTP (RFC 6189)

Instant Messaging

 * CPIM, Common Presence and Instant Messaging: (RFC 3862)
 * Session Initiation Protocol (SIP) Extension for Instant Messaging
   (RFC 3428)
 * MSRP Protocol (RFC 4975)
 * Indication of Message Composition for Instant Messaging (RFC 3994)
 * Message Summary Event Package (RFC 3842)
 * File Transfer (RFC 5547)

Screen Sharing

 * Variation of draft-garcia-mmusic-sdp-collaboration-00 using RFB over MSRP

Conferencing

 * Conference Event Package (RFC 4575)
 * A Framework for Conferencing with the Session Initiation Protocol (RFC 4353)
 * SIP Call Control - Conferencing for User Agents (RFC 4579)
 * MSRP ad-hoc multi-party chat sessions (RFC 7701)

Presence

 * SIP Specific Event Notification (RFC 3265)
 * SIP Extension for Event State Publication (RFC 3903) 
 * PIDF: Presence Data Model (RFC 3863, RFC 3379, RFC 4479)
 * Watcher-info Event Package (RFC 3857, RFC 3858)
 * Rich Presence Extensions to PIDF (RFC 4480)
 * Contact Information Extension to PIDF (RFC 4482)
 * User Agent Capability Extension to PIDF (RFC 5196) 
 * XCAP Protocol (RFC 4825)
 * Common Policy (RFC 4745)
 * Presence Rules (RFC 5025)
 * Resource Lists (RFC 4826)
 * RLS Services (RFC 4826)
 * PIDF manipulation (RFC 4827)
 * XCAP Diff (RFC 5874)
 * OMA Reference Release Definition for XDM v1.1 and Presence SIMPLE v1.1
   Implementation Guidelines
 * OMA XML  Document Management V1.1


Support
-------

The project is developed and supported by AG Projects. The support is
provided on a best-effort basis. "best-effort" means that we try to solve
the bugs you report or help fix your problems as soon as we can, subject to
available resources.

To request support you must use the mailing list available at

http://lists.ag-projects.com/mailman/listinfo/sipbeyondvoip

Patches and bug reports must be submitted by opening a ticket at

http://sipsimpleclient.org/projects/sipsimpleclient/issues

To open ticket please Register first.


Acknowledgments
---------------

SIP SIMPLE client SDK has been partly funded by the European Commission
under grant number FP7-IST-216217.