Have anyone implemented something like that.
No. At least i havent heard about this. There were some talks about this in the Openfire group chat a few years ago, but no work was done. I think there is or was a ticket for this in JIRA, but cant find anything relevant. Well, i think this is a hard task, but we of course will be grateful if you will contribute your work to the community in the end