diff --git a/README b/README index 8828e0f..69d4eb7 100644 --- a/README +++ b/README @@ -1,202 +1,208 @@ SylkServer ---------- -Copyright (c) 2010-2014 AG Projects +Copyright (c) 2010-2015 AG Projects http://ag-projects.com Main author: Saul Ibarra Mentorship: Adrian Georgescu Contributors: Denis Bilenko, Dan Pascu Home page: http://sylkserver.com License ------- SylkServer is licensed under GNU General Public License version 3. A copy of the license is available at http://www.fsf.org/licensing/licenses/gpl-3.0.html Description ----------- SylkServer is an application server that can be programmed to perform SIP end-point applications and act as a gateway between SIP and XMPP domains. The server has support for SIP signaling over TLS, TCP and UDP transports, RTP and MSRP media planes, capability for creating ad-hoc SIP multimedia conferences with HD Audio, IM and File Transfer and can be easily extended with other applications. Deployment Scenarios -------------------- SylkServer is typically deployed behind a SIP Proxy that is designed to route the inbound and outbound traffic, handle the authentication, authorization and accounting. SylkServer can also be deployed as multimedia SIP conference server on a private network to serve SIP clients on the same LAN by using bonjour mode. -Blink Pro for MacOSX can be used for automatic discovery of SylkServer -instances in the neighborhood. +Blink for MacOSX can be used for automatic discovery of SylkServer instances +in the neighborhood. Features -------- SIP Signaling - TLS, TCP and UDP transports - INVITE and REFER - SUBSCRIBE/NOTIFY - Bonjour mode NAT Traversal - SIP Outbound - ICE clients - MSRP Relay clients - MSRP ACM clients Audio - Wideband (Opus, G722 and Speex) - Narrowband (G711 and GSM) - SRTP encryption (SDES and ZRTP key-exchanges) - Hold/Unhold - RTP timeout - DTMF handling +Video + + - H.264 and VP8 codecs + - SRTP encryption (SDES and ZRTP key-exchanges) + Instant Messaging - MSRP protocol - CPIM envelope - Is-composing - Delivery reports File Transfer - MSRP protocol - Progress reports - Conference-info extension - Conference room persistent Conferencing - Wideband RTP mixer - MSRP switch - XMPP MUC - Multiparty screensharing - Conference event package XMPP Gateway - Server to Server mode - IM (MSRP sessions and SIP Messages) - Presence (SIMPLE and XMPP) Applications ------------ When a request arrives at SylkServer, an application is selected depending on the Request URI. The selection mechanism is described in detail in the sample configuration file config.ini.sample. Conference SylkServer allows SIP end-points to create ad-hoc conference rooms by sending INVITE to a random username at the hostname or domain where the server runs. Other participants can then join by sending an INVITE to the same SIP URI used to create the room. The INVITE and subsequent re-INVITE methods may contain one or more media types supported by the server. Each conference room mixed audio, instant messages and uploded files are dispatched to all participants. One can remove or add participants by sending a REFER method to the conference URI. If a participant sends a file to the SIP URI of the room, the server will accept it, store it for the duration of the conference and offer it to all participants either present at that moment, or offer it on demand to those that have joined the conference at a later moment. Using an extension to MSRP chat protocol, the server provides also multi-party screen sharing capability. XMPP Gateway -SylkServer can act as a transparent gateway between SIP and XMPP protocols. -This can be used by a SIP service provider to bridge out to XMPP domains or -to receive incoming chat sessions from XMPP domains to its local SIP users. -In a similar fashion, a XMPP service provider can use the gateway to bridge -out to SIP domains and handle incoming chat requestes from SIP domains to +SylkServer can act as a transparent inter-domain gateway between SIP and +XMPP protocols. This can be used by a SIP service provider to bridge out to +external XMPP domains or to receive incoming chat messages and Jingle audio +sessions from remote XMPP domains to its local SIP users. In a similar +fashion, a XMPP service provider can use the gateway to bridge out to +external SIP domains and handle incoming chat requestes from SIP domains to the XMPP users it serves. A media session or a presence session initiated by an incoming connection on the XMPP side is translated into an outgoing request on the SIP side and the other way around. To make this possible, proper SIP or XMPP records must exists into the DNS zone for the domain that needs the gateway service. Standards --------- The server implements relevant features from the following standards: - SIP (RFC3261) and related RFCs for DNS, ICE and RTP - MSRP protocol RFC4975 - MSRP relay extension RFC4976 - MSRP File Transfer RFC5547 - - MSRP switch draft-ietf-simple-chat-12 + - MSRP switch draft-ietf-simple-chat-18 - MSRP Alternative Connection Model RFC6135 - Indication of Message Composition RFC3994 - CPIM Message Format RFC3862 - Conference event package RFC4575 - A Framework for Conferencing with SIP RFC4353 - Conferencing for User Agents RFC4579 - Conferencing for User Agents RFC4579 5.1 INVITE: Joining a Conference Using the Conference URI - Dial-In 5.2 INVITE: Adding a Participant by the Focus - Dial-Out 5.5 REFER: Requesting a Focus to Add a New Resource to a Conference 5.11 REFER with BYE: Requesting a Focus to Remove a Participant from a Conference - XMPP core (RFC 6120) http://xmpp.org/rfcs/rfc6120.html - XMPP extensions http://xmpp.org/xmpp-protocols/xmpp-extensions - Instant Messaging and Presence http://xmpp.org/rfcs/rfc6121.html - Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-presence-02.html - Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-im-01.html - Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-chat-03.html - Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Multi-Party Text Chat http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-groupchat-01.html 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 the use SIP Beyond VoIP mailing list: http://lists.ag-projects.com/mailman/listinfo/sipbeyondvoip For commercial support contact AG Projects http://ag-projects.com Credits ------- Special thanks to NLNET http://nlnet.nl for sponsoring most of the efforts behind this project.