Anca-Maria Vamanu wrote:
Hello Klaus,

You probably already know that for aggregating data which is available from another device, a Publish message could be triggered through MI, using pua_mi. And the data will be aggregated when sending Notify msg. However, in the case in which the info you what to add is dependent on the received one(like the temperature in the room for eg), registering a callback seems a good option. Another alternative is to filter the Publish message in config file and trigger sending a Publish through MI with the same expires.( it seems worse since it increasses message flow and implies aggregating for each Notify). If not dependant, it is an inconvenient to wait for a Publish to say what you want to say.
Is the callback mechanism appropriate for what you had in mind?

Hi Anca!

I thought of the following example:

A SIMPLE client PUBLISHes its presence to openser. The PIDF contains the presence of the client. Now, I have an external system which knows the location of this SIP client, and I want to add the location to the presence (thus, adding the PIDF-LO to the PIDF XML body). Then, the NOTIFYs sent contain not only the presence, but also the location and clients which support PIDF-LO can display the location too.

btw: If I manipulate the body of a received PUBLISH with textops before calling handle_publish() - does the presence module store the modified body or the original received body? Thus are lumps processed before saving the body, or e.g. applying fix_natted_contact?

regards
klaus


regards,

Anca



Klaus Darilion wrote:

Hi Anca!

I have another (IMO interesting) idea. What about allowing other modules to register a callback function just before PUBLISH body gets written into the presentity table.

E.g. presence module, just before it will write the XML payload into the presentity table, will execute the callback function, allowing registered modules to modify the XML body. Then the presence module stores the modified body into the presentity table. Further, activation on the body manipulation callback can be activated/deactivated from openser.cfg by setting a flag.

This would allow to modify published data e.g. for aggregating data which is available from external components.

what do you think of this?

regards
klaus

Anca-Maria Vamanu wrote:

Hello,

It should be implemented in presence module. Only it has acces to presentity_table and active_watchers table and in here notifications are generated.
Moreover this function could be generaly used no matter the event.

regards,

Anca

Klaus Darilion wrote:

Hi Anca!

I'm thinking about an MI function for resending NOTIFYs.

E.g. if the presence of an user is updated by an external application which writes directly into the presence table (instead of sending a PUBLISH) I want to trigger NOTIFYs to the watchers by calling this MI function.

Question: Where should this MI function be implemented? In presence or presence_xml module?

regards
klaus

Anca Vamanu wrote:

Revision: 2039
http://openser.svn.sourceforge.net/openser/?rev=2039&view=rev
Author:   anca_vamanu
Date:     2007-04-23 00:28:35 -0700 (Mon, 23 Apr 2007)

Log Message:
-----------
- Restructured the module to handle PUBLISH and SUBSCRIBE messages and generates NOTIFY messages in a general, event independentway. It allows registering events to it from other OpenSER modules. presence_xml module adds events: presence, presence.winfo, dialog;sla.
Modified Paths:
--------------
    trunk/modules/presence/README
    trunk/modules/presence/doc/presence.sql
    trunk/modules/presence/doc/presence_devel.sgml
    trunk/modules/presence/doc/presence_user.sgml
    trunk/modules/presence/event_list.c
    trunk/modules/presence/event_list.h
    trunk/modules/presence/notify.c
    trunk/modules/presence/notify.h
    trunk/modules/presence/presence.c
    trunk/modules/presence/presence.h
    trunk/modules/presence/presentity.c
    trunk/modules/presence/publish.c
    trunk/modules/presence/subscribe.c
    trunk/modules/presence/subscribe.h
    trunk/modules/presence/utils_func.c
    trunk/modules/presence/utils_func.h

Added Paths:
-----------
    trunk/modules/presence/bind_presence.c
    trunk/modules/presence/bind_presence.h


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

_______________________________________________
Devel mailing list
Devel@openser.org
http://openser.org/cgi-bin/mailman/listinfo/devel







_______________________________________________
Devel mailing list
Devel@openser.org
http://openser.org/cgi-bin/mailman/listinfo/devel

Reply via email to