On Mon, 2009-02-02 at 00:30 +0100, Sidney Amani wrote: > Hi list, > > We are currently developing an Gcal mapiproxy module which allows > synchronization between Exchange calendar and Google Calendar. > We have a draft that Julien saw, and we are going to release a new > version, we would need some advices and recommendations to do so. > In order to manage multi-user we heard about mpm_session, is there > code using it we can inspire?
Hi Sidney, Nice to hear you wish to continue this module development ;-) Regarding mpm_session API, you can have a look at mapiproxy/modules/mpm_cache.c. The module doesn't use it a 100% but you should anyway find the snipset you're looking for. The overall idea with mpm_session is to associate a user session (server_id and context_id) with private data (void *) so each session can keep specific data. > To be able to delete and edit calendar events we need something to > match gcal events with exchange ones. > We heard about pdb database, any doc? any code? Hum I assume you meant TDB here. Have a look at samba4/lib/tdb/docs/README. This should cover your preliminary needs. TDB is IMHO a good database for this purpose - wild guess - as long as you are able to retrieve a unique ID from GCAL. You can next associate PR_FID/PR_MID (Key) and GCAL ID (data). e.g.: Key 0x1234000000000001/0x3330000000000001 Data: http://google.com/.../appointment_url > Delete Event > - detect Deletion, don't know the Mapi function name but shouldn't be > the hardest thing DeleteMessages? > gCal -> Outlook > > This part is still obscure but I think about getting all gCal events > from current time, and check if they are in our database else we add > them. By any hazard, does google calendar provides some kind of notification system? > We also check whether hashes are equal and we update the exchange > event and the hash if needed. > > But the question is when do we launch this synchronization ? > I think we can run it every minute, is this a bad idea? gcal -> Outlook sync is indeed a different problematic. You can: 1. have a stand-alone service running which will push modifications from gcal and push it into Exchange. The main drawback with this method is that the "service" needs to have credentials for both Exchange and gcal accounts. 2. Have a stand-alone service running and pushing modifications into a queue shared with your module. The module would be responsible for replicating changes as soon as the user perform operations on Exchange (idle or anything else). The main advantage is that you inject data within the user session, so you don't need to know about its credentials. 3. Run the synchronization code within mapiproxy. IMO not a good idea, this may be really slow... > Else libgcal provide functions to get gcal contacts so there is > probably potential interesting features with this... Indeed. > This mail is about announcing our module development and getting some advices. > Any help will be welcomed. Keep asking questions, we'll be happy to help as much as we can ;-) -- Julien Kerihuel [email protected] OpenChange Project Manager GPG Fingerprint: 0B55 783D A781 6329 108A B609 7EF6 FE11 A35F 1F79
signature.asc
Description: This is a digitally signed message part
_______________________________________________ devel mailing list [email protected] http://mailman.openchange.org/listinfo/devel
