Logging format for Contact interaction events

working on a telepathy logger I noticed an issue of how logging/retrieving contact interactions could be a challenge.
There are 3 types of interaction with contacts:
* Messaging
* Calling
* Filetransfer

=== MESSAGING ===

So with Messaging I have to proposed solutions and would like you to pick out the best fit.
Both have the event metadata in common.
* Access/Leave Event: When a conversation is initiated/ended by any of the parties (starting/ending a channel)
* Send/Recv Event: When sending out a msg or receiving a msg
* Origin: The user account used for this interaction (telepathy based)
* Actor: dbus://(service file)

As you can see I am using 2 Subjects again. And at last the payload has come in handy. It is easier for me to ask for all sent file or received files and THEN filtering them out according to their status. Unless we have a SEND_COMPLETE/SEND_FAILED and RECEIVE_COMPLETE/RECEIVE_FAILED, it is really hard to make sense of knowing what happened with the sent/received file. So I find the only soltuion for now is actually a post-send post-recv entry with the description

=== CALLING ===

Calling is pretty straight forward. We will have 2 subjects once describing the contact and the other describing the call
the event interpretations used will be: ACCEPT, DENY, EXPIRE for incoming calls and CREATE for outgoing. Once a call start we will use the ACCESS EVENT and when ended we will use the LEAVE EVENT, upon a leave event we will use the payload to describe the call duration and maybe also who hung up first or the reason of the leave event.
The only issue we have with calls is there is no interpretation for the subject describing a call :(

So with that being said I would like to bring up the subject that now we will be using multiple subjects and payload. We do not support querying events with multiple subjects yet. I hope we can discuss this ASAP.
Please don't hesitate to discuss here what you think of my proposal.

=== COMMENTS ===
kamstrup: On the overall I think the 2-subject solution makes sense. However I also think that it might be relevant to consider which use cases the logged data will be involved in. To make sure you adequately cover them. Also - nice to see you're using payloads - that's exactly how I imagined them used :-)

kamstrup: Regarding file send/recv in particular. I think it hightlights a small problem we have in our basic data model. How do we model and event that starts one way but can end with two different outcomes? Maybe logging a "temporary event" that you delete when you know the final answer?