Overview
I have been thinking about a way to integrate the chats that we as a company have with each other to discuss issues from our issue tracking system. Ideally I’'d like these little chats to be logged in the Issue system for future reference. Short of copying and pasting the chat into an internal note I thought a plugin could be developed to automate this process.
Software Used
Openfire 3.3.0
Spark 2.5.2
Eventum (Issue Tracking System)
Interface
When someone starts chatting about an issue I would like them to hit a record button at the top right. It would then give them a list of issues assigned to them so they can choose what to record it under. Once that is chosen it would then be recording the conversation. Once they are done they can hit the stop button (the record button changing into a stop button during record.) and it will ask them for how much time they spent on the conversation so it can log this as well. The actual time can be pre-populated but they would be allowed to change it.
Both the chat and the time entry would then show up in Eventum, but that part is beyond this discussion. Some simple SQL queries can get it in there.
Openfire Backend
The Openfire server is local to the Eventum SQL installation and Spark may or may not be. So I figured the best way was the create both a Spark plugin and an Openfire plugin to facilitate this. The Openfire backend can insert the messages directly into Eventum and Spark would need to communicate the recording to Openfire.
Questions
What’'s the best way for the Spark plugin and Openfire to communicate? XMPP messages?
Is there a way to cache the recorded conversation so that it can be put into Eventum as 1 SQL statement after the recording is over?
How would I handle stale conversations that never stop recording or when a person logs out before stopping the recording?
Notes
I’'m sure more questions will come but I need to jump right in and start gathering information.