====== Kamailio (OpenSER)'s Presence Module ====== ===== Kamailio 3.1.x ===== **There is a complete tutorial for SIP SIMPLE presence using the embedded XCAP server, newly added in Kamailio 3.1.x:** * [[http://asipto.com/u/sp|Kamailio 3.1.x - SIMPLE Presence Made Simple]] ===== Kamailio 1.5.x or 3.0.x ===== **Kamailio (OpenSER) 1.5.x and Kamailio (OpenSER) 3.0.x include in the default config what is needed to have a SIMPLE presence server - to enable it you have to:** * **in 1.5.x: run a sed command over cfg file** * **in 3.0.x: edit cfg file and define WITH_PRESENCE** **Read the top of config file for instructions.** ===== Kamailio (OpenSER 1.3)'s Presence Module ===== __**Presence Diagram**__ (click to enlarge) [[presence-scheme|{{wiki:presence-schema-small.jpg|}}]] - **PRESENCE module**- a general, event package independent Subscribe, Publish handler – Notify generator according to RFCs 3265 and 3903 - **PRESENCE_XML** and **PRESENCE_MWI** modules- clients for PRESENCE module; register specific events to be handled by PRESENCE module: * presence_xml: 'presence'( RFC 3856) , 'presence.winfo' (RFC 3857), 'dialog;sla' (draft-anil-sipping- bla-03.txt) * presence_mwi: 'message-summary' (RFC 3842) - **XCAP_CLIENT module**- an XCAP client interface with data retrieving functionality only, for OpenSER modules. __Presence_xml and xcap_client interaction(when integrated_xcap_client parameter is not set)__ Presence_xml module assumes that in the database table 'xcap' there is always the newest version of an xcap document that he has previously sent a request for to xcap_client module. When a searched document is not found in the table, a request is sent to the xcap_client module, saying it to retrieve the document from the xcap server in future synchronize the version in the database table with that on the server. __Other configuration possibilities__ The chart shows the interactions when no restrictions are imposed. There is however the possibility to configure the modules so that some connections are no longer needed or some other appear. - //Presence module// * **fallback2db**: the database is also queried for Subscribe dialog information, assuming that there might be others stored there besides the ones from the servers cache, when more servers share the same database. - //Presence_xml module// * **force_active**: the connection with xcap_client module disappears; no query for rules doc- all subscriptions are allowed. * **integrated_xcap_server**: again the connection with xcap_client module disappears; the module only queries the database table which should be filled by the xcap_server and if no record is found then supposes that it does not exist on the server. - //Xcap_client// * **periodical_query**: if this parameter is unset ( set to 0 ), then the connection from xcap_client to the XCAP server for query for updates disappears. In this case, the xcap_client module expects to receive a MI command from the server when an update occurs. ===== Kamailio (OpenSER) 1.2's Presence Module ===== This is a new implementation of a Presence Server for [[http://www.kamailio.org|OpenSER]]. It is a new module named **presence** -- to see details about it look at "Module exports" chapter. The source code is now in CVS, you can browse online the readme file for module at [[http://www.kamailio.org/docs/modules/devel/presence.html]]. Sample configuration files are provided in "Configuration file" chapter. Before starting Presence Server, you have to create required tables presented in "Database tables" chapter. **[[presence:module-exports|Module exports]]** **[[presence:configuration-file|Configuration file]]** **[[presence:database-tables|Database Tables]]** **[[http://www.kamailio.org/docs/modules/devel/presence.html|PRESENCE Module Readme]]** This is a new development, please provide any feedback you may have to devel@kamailio.org. During the development it was tested extensively with [[http://www.counterpath.com|XTen X-Lite v3.0]]. This site should collect user's experience to make the deployment of new Presence Server easier. At this moment it works only in DB mode, there is no caching, all data is stored in database. **[[presence:frequently-asked-questions|Frequently Asked Questions]]** **[[presence:experiences|Experiences using Presence with different devices]]** ===== ChangeLog ===== 2006-10-13: renamed module parameters in sl and presence to 'totag_avpid' the source code has been imported in the CVS 2006-09-26: - new column in 'presentity' table: 'received_time' allows to detect last PUBLISH request to be able to overcome problems with broken clients which send PUBLISH refresh without SIP-Etag header. - you have to recreate 'presentity' table and download again the tarball of Kamailio (OpenSER). 2006-09-24: Initial release ===== Presence-Related Stuff ===== {{indexmenu>presence|js}}