Project description
OpenXCAP is an open source, easy extensible, fully featured XCAP server with TLS security and support for multiple realms. The server is written in the Python programming language and is based on the following RFCs:
- The Extensible Markup Language (XML) Configuration Access Protocol (XCAP) RFC 4825
- Formats for Representing Resource Lists RFC 4826
- Usage for Manipulating Presence Document Contents RFC 4827
- Presence Authorization Rules RFC 5025
- XCAP-diff draft-ietf-simple-xcap-diff-09.txt
The software is provided under the GPL LICENSE
Background
XCAP protocol allows a client to read, write, and modify application configuration data stored in XML format on a server. XCAP maps XML document sub-trees and element attributes to HTTP URIs, so that these components can be directly accessed by HTTP. An XCAP server is used by the XCAP clients to store data like Presence policy in combination with a SIP server that supports PUBLISH/SUBSCRIBE/NOTIFY methods to provide a complete SIP SIMPLE server solution.
The XCAP server is used as a policy decision maker by the SIP Presence server to manage the subscriptions and notifications of presence information based on end-user controlled preferences. An immediate advantage of using an XCAP server is to allow end-users to reliably syncronize presence configuration data like buddy lists and access lists between multiple SIP SIMPLE devices. The XCAP server can also be used to publish to SIP devices information retrieved from external sources and using different APIs acting like a bridge between real-time communications based on SIP protocol and other web technologies like SOAP/XML.
Download
The software can be downloaded from:
http://download.ag-projects.com/OpenXCAP
For people running Debian testing or unstable on an i386 architecture there is an official public repository provided by AG Projects. To use it, add these lines in /etc/apt/sources.list
# AG Projects software deb http://ag-projects.com/debian unstable main deb-src http://ag-projects.com/debian unstable main
Install the AG Projects debian software signing key:
wget http://download.ag-projects.com/agp-debian-gpg.key apt-key add agp-debian-gpg.key
After that, run on the XCAP server machine:
apt-get update apt-get install openxcap soap-simple-proxy
And on the SIP Proxy machine:
apt-get update apt-get install openser-mi-proxy
Running the server
Features
Supported XCAP applications
- Resource lists (auid = resource-lists). A resource lists application is any application that needs access to a list of resources, identified by a URI, to which operations, such as subscriptions, can be applied.
- PIDF Manipulation (auid = pidf-manipulation). Pidf-manipulation application usage defines how XCAP is used to manipulate the contents of PIDF based presence documents.
- Presence Rules (auid = presence-rules). A Presence Rules application is an application which uses authorization policies, also known as authorization rules, to specify what presence information can be given to which watchers, and when.
- Watchers (auid = watchers, proprietary application). This application returns the list of watchers from OpenSER presence agent and their status in an XML format
- RLS Services (auid = rls-services). A Resource List Server (RLS) services application is Session Initiation Protocol (SIP) application whereby a server receives SIP SUBSCRIBE requests for resource, and generates subscriptions towards the resource list. See the README file for more details about of the implementation.
- XCAP capabilities (auid = xcap-caps). Provide the capabilities of the XCAP server.
Data storage
OpenXCAP server uses storage based on MySQL server and works out of the box with OpenSER Proxy/Registrar/Presence server.
Security
The server has the following security features:
- TLS encryption and digital certificates using GnuTLS library
- Digest or basic HTTP authentication with support for multiple realms
- Database passwords can be stored in an encrypted format
XCAP clients
No server is useful without clients supporting their features. Below is a list with XCAP clients known to be working with OpenXCAP:
Demo
With one of the clients mentioned above you can use the following account for evaluating OpenXCAP:
- username: alice
- password: 123
- XCAP root: https://xcap.sipthor.net/xcap-root
If you only have an http client (like your browser), you still may access the documents. For example, here's alice's resource-lists document:
https://xcap.sipthor.net/xcap-root/resource-lists/users/alice@example.com/index.xml
and here's a specific element inside it:
Credits
- Authors: Mircea Amarascu, Ruud Klaver, Lucian Stanescu, Denis Bilenko
- Project management: Adrian Georgescu
- Contributors: Dan Pascu
Support
You may obtain support from various sources:
- The project is supported via this wiki collaboration system by AG Projects. To open ticket please Register first. The ticketing support system is available only for registered users. The support is provided on a best-effort basis.
- For interaction between OpenXCAP and OpenSER you may consult the OpenSER users mailing list
- OpenXCAP Installation guide
Commercial support
See:
