Cohoba is a set of 'modules' working together around three perspectives: * Mission Control (needs review) - Connectivity checks (net-monitor) - Ensure that the connection are closed gracefully on sleep, shutdown, etc (power-manager sleep, hibernate,) - The mission Control must answer these questions: * What telepathy connections are open? * Sign on/off to all accounts/account x for me * Get me a text/voice/video channel with person X - It must also know where to retreive all setup accounts settings (ie. gnome-keyring, gconf, file,..) - It must handle incoming requests (incoming text channel, video channel,..) - It must handle conflicts (receiving two phone calls, using the camera with one active conversation, and a new one is incoming) - Preferred applications capplet can be modified to indicate preferred chat/video/voice channel handlers that will be activated by the mission control. This leads to modify dbus' .service files to include a mechanism to associate services with an interface they provide, and linking to .desktop files, so one could parse the services and get a meaningful description of programs capable of handling dbus interface x. For example: liferea.service: Service=RssReader.liferea Executable=/usr/bin/liferea Desktop=/usr/share/applications/liferea.desktop Interfaces=RssReader This would also benefit epiphany for example where we can't use dbus-activation because we don't know which rss reader is present on the system. - To be defined: The DBUS API of the mission control A capplet to setup accounts (possibly in about-me) A capplet to choose preferred channel handlers (possibly in preferred application capplet) A new library or a modification of libgnomedesktop or libdbus-glib, that allows to read dbus .service files, create a list of all applications capable of handling dbus interface X. * Own Presence This module should be able to: - Set the user presence (away, busy, invisible, ...) - Set the user presence message, nickname - Set the avatar (probably drag and drop and full-fledged file browser) Grab default avatar from the about-me icon - Integrate with software implying presence change: screensaver X mouse/keyboard activity meetings in e-d-s - Three ways of presenting this module: =Take the form of a dialog (capplet) =an applet with dropdown textarea =integrated in the contact list -Wild ideas: - Setup the answer machine handled by mission control ? * Contact list/Others Presence - Present a view of people (galago ?) - Each person has several actions (emai, talk, voice, video, sms) depending on contact state 'online/offline' - Contact management, add/remove/block/unblock - Contact management: *People can be tagged *Groups are defined as a set of tags, they contain people that have all the tags *Groups are recursive, if they match the tags too: Ex: Group[A] will contain Group[A,B] - Concept of Virtual groups: =favorites: Contacts always appearing at toplevel along with toplevel groups =recently-used: Special group containing the most recently talked-to people =most-used, etc, etc - 3 flavors of applet: - The main applet, has a menu with groups, contacts and options - The Group applet, presents a menu with the contacts in that group and options relative to the group - The Contact applet, presents a menu with actions on that contact and options relative to the contact