Libpapillon Roadmap
-------------------
Last Update: 3 June 2006 by Michaël Larouche <michael.larouche@kdemail.net>

CHART:
---------
- : to do
+ : done
# : in progress
! : cancelled or postponed

M0 Login and Basic architecture
+ Already done.

M1 Contact List and Presence
+Create MimeHeader class
#Parse initial Hotmail message
+Do ChallengeTask
-ContactList
 -Retrieve contact list(and thus address book) using SOAP (contacts.msn.com Web service)
 -ContactListManager class
 -Add/Remove/Block contacts
 -Modify address book
 -Add/Remove groups
 -Move contacts between groups
-Presence
 #Set our own presence
 #Set our own information (nickname, personal message, etc.)
 #Get the initial presence of contacts
 #Get modification of presence from others
 #Get information change from contacts (nickname, personal message, etc..)
-Prefix filename of common classes with papillon (like Task and Client)

After this milestone, all(or mostly all) contactlist and presence manipulation will be in and we should be able to start the Kopete plugin.

M2 Switchboard
-Create the Switchboard connection manager for Papillon::Client
-Look for incoming switchboard session
-Create new Switchboard sessions
-Parse and create new messages
-Send typing information (Special type of message)
-Invite contacts
(Out of switchboard)-Offline messages retrival using SOAP (yet another "fun" Web service)
-Sending of Offline messages
-Sending and received Nudges (Special type of message)

After this milestone, basic switchboard operations will be in (expect P2P part in fact), and Kopete plugin will be usuable. (Maybe a first standalone release of libpapillon)

M3 P2P
-Design P2P framework
-Design MSN object (and push it with presence)
-Download and upload Display picture
-Download and upload Custom emoticons
-File transfer using Switchboard

After this milestone, basic P2P framework will be complete. Futher P2P features will come after.

M4 Webcam, Direct Transfers, HTTP and Proxy
-Implement Webcam P2P context
-Use reflection server for NAT
-Implement direct transfers for all P2P context
-Implement proxy support
-Implement MSNP over HTTP.

After this milestone, libpapillon will be equal to old Kopete MSN implementation(and more of course).

------------------------------------
Features maybe I'll implement:
-Shared folders
-Voice clips (need documentation)
-Voice conversation (need documentation)

Features that will never be implemented(NEVER):
-Winks (annoying, use CAB and Flash)
-Dynamic display pictures (use flash)
-Background sharing
