⢠CHAT ROOMS / IM The chat functionality is fairly complete, but some parts are exposed rather clumsily or not at all due to the limitations of the Pidgin/libpurple APIs. The good news is that when we publish this plugin as open source, we can improve those APIs to expose our functionality in a saner way. Things we don't support yet for this reason â but which we *could* expose somehow in the meantime if there is demand for it â include: ⢠Removing chat room members. ⢠Deleting / administration of / leaving chat rooms. ⢠Notification settings for IM/chat (always/mention/never). ⢠Displaying full name of users who are not "buddies". ⢠List of chat rooms with unread message counts, especially in the buddy list. ⢠Creating new group chats (not rooms). Other TODO items which are less constrained by the Pidgin APIs: ⢠Automatically populate buddy list with chat rooms, as we do for contacts. ⢠Markdown support: this works for incoming but you have to explicitly type "/md ... " in your outbound messages to send it. This is the same as the web client but we should do better and convert from HTML generated by Pidgin's UI editor/formatter. ⢠FILE TRANSFER ⢠We support receiving photo attachments, but complete support for sending/receiving arbitrary attachments is being worked on in a Github PR. ⢠MEETINGS Basic meeting handling is functional â we can schedule meetings and join them, and the participant list is displayed. ⢠Audio This is now basically working, but needs cleanup. In particular the transport code needs to be properly implemented so that it can handle reconnects, and use DTLS in preference to the TCP websocket. ⢠Screen share Implementing screen share RX and representing it as an incoming video stream in Pidgin should be relatively simple. Outbound also shouldn't be so hard, based on libshadow and the code in the Lync plugin. ⢠Video Video is mostly RTP-based, so should be a lot easier to throw together than audio was. ⢠DIRECT MEDIA CALLS The Chime app gives you a way to make audio/video calls directly to individuals. We can currently receive those calls, since they basically show up as meetings. We need to work out the protocol API which set up such a 1:1 call, and implement them so that you can make an audio/video call directly to an IM contact. ⢠PRESENCE / AVAILABILITY Investigate and properly implement the device availability workflow, use the 'Automatic' status instead of 'Available', and ensure we have coverage of the other states that a peer can be in. ⢠PIDGIN 3.x Port to Pidgin 3.x