Presence_CallInfo Module Ovidiu Sas <osas@voipembedded.com> Edited by Ovidiu Sas <osas@voipembedded.com> Copyright é 2010 VoIP Embedded, Inc. Revision History Revision $Revision: 7754 $ $Date: 2011-02-23 20:57:21 +0200 (Wed, 23 Feb 2011) $ __________________________________________________________ Table of Contents 1. Admin Guide 1.1. Overview 1.2. Dependencies 1.2.1. OpenSIPS Modules 1.2.2. External Libraries or Applications 1.3. Exported Parameters 1.3.1. call_info_timeout_notification (int) 1.3.2. line_seize_timeout_notification (int) 1.4. Exported Functions List of Examples 1.1. Set call_info_timeout_notification parameter 1.2. Set line_seize_timeout_notification parameter Chapter 1. Admin Guide 1.1. Overview The module enables the handling of "call-info" and "line-seize" events inside the presence module. It is used with the general event handling module: presence and it constructs and adds "Call-Info" headers to notification events. To send "call-info" notification to watchers, a third-party application must publish "call-info" events to the presence server. The module does not currently implement any authorization rules. It assumes that publish requests are only issued by a third-party application and subscribe requests only by subscriber to call-info and line-seize events. Authorization can thus be easily done by OpenSIPS configuration file before calling handle_publish() and handle_subscribe() functions. The module implements a simple check for the presence of Call-Info headers in received PUBLISH requests. To get better understanding on how the module works please take a look at the follwing figure: caller proxy & callee watcher publisher alice@example presence bob@example watcher@example server | | | | | | |<-----SUBSCRIBE bob----| | | |------200 OK---------->| | | |------NOTIFY---------->| | | |<-----200 OK-----------| | | | | | | |--INV bob--->| | | | | |--INV bob->| | | | |<-100------| | | | |<-----PUBLISH(alerting)---------------| | |------200 OK------------------------->| | |------NOTIFY---------->| | | |<-----200 OK-----------| | | | | | | | |<-180 ring-| | | |<--180 ring--| | | | | | | | | | | | | | | |<-200 OK---| | | |<--200 OK----| | | | | |<-----PUBLISH(active)-----------------| | |------200 OK------------------------->| | |------NOTIFY---------->| | | |<-----200 OK-----------| | | | | | | * The watcher subscribes the "Event: dialog" of Bob. * Alice calls Bob. * The publisher is publishing the "alerting" state for Bob. * PUBLISH is received and handled by presence module. Presence module updates the "presentity". Presence module checks for active watchers of the presentity. The active watcher is notified via a NOTIFY SIP request. * Bob answers the call. * The publisher is publishing the "active" state for Bob. * PUBLISH is received and handled by presence module. Presence module updates the "presentity". Presence module checks for active watchers of the presentity. The active watcher is notified via a NOTIFY SIP request. 1.2. Dependencies 1.2.1. OpenSIPS Modules The following modules must be loaded before this module: * presence. 1.2.2. External Libraries or Applications None. 1.3. Exported Parameters 1.3.1. call_info_timeout_notification (int) Enables or disables call_info event timeout notifications. Default value is âÂÂ1â (enabled). Example 1.1. Set call_info_timeout_notification parameter ... modparam("presence_callinfo", "call_info_timeout_notification", 0) ... 1.3.2. line_seize_timeout_notification (int) Enables or disables line_seize event timeout notifications. Default value is âÂÂ0â (disabled). Example 1.2. Set line_seize_timeout_notification parameter ... modparam("presence_callinfo", "line_seize_timeout_notification", 1) ... 1.4. Exported Functions None to be used in configuration file.