However IMO one engine should be used (Tracker) with a backend for the protocols (SMS, VoIP, GSM, ...). With flags a shortcut can be made. Like for example: tracker --search backend=gsm filter=none. From there, one can modify the filter or use more backends. My point is: why use different search program or different UI when using different protocol (VoIP or IM different than GSM or SMS)? Instead, make it unified, like the profiles don't care about protocol you use to communicate with either; they store them all. Then the 'gsm communication log' should use the frameworks as the 'general communication log'. If yes, why not simply use the same interface with default options which make sense from the protocol used (e.g. log called from GSM goes by default for GSM but allows more)?
One problem is 'Missing' has different context in IM/SMS/e-mail than in VoIP/SIP/GSM, and I'm not sure how to solve this because there is no authentication in IM/SMS the other side has read the message.