From: Sjors G. <sj...@sj...> - 2011-04-15 18:55:10
|
Op 15 apr 2011, om 16:04 heeft Sjors Gielen het volgende geschreven: > Op 15 apr 2011, om 12:38 heeft Sjors Gielen het volgende geschreven: > >> First of all, I think I'm going to implement invitations. I've looked through msntransport and the MIME type for invitations is nowhere in there, but the invitation keywords "INVITE", "BYE" etc are there. I think the complete SLP dialog is in msntransport/src/msnslp/dialog.h, but I don't know what layer this is; the dialog is built up of Transactions which the msnslp bot can create itself. So if, for every chat, the msnslp bot keeps track of a list of dialogs, would that be a good way to start this? > > Apparantly, the things I've been seeing were invitations into MSNFTP. Is MSNFTP still used nowadays? I somehow remember it is old and unused, but KMess 2.0.x still seems to do it by default. I can implement it in the msnslp bot, but if it's useless to begin with, why bother. That's why I'm asking ;-) Apparantly, MSNFTP is _newer_ than MSNP2P, it's the currently preferred way. Both MSNFTP and MSNP2P are described on this page: <http://www.hypothetic.org/docs/msn/client/file_transfer.php>. MSNP2P is used as a fallback to MSNFTP and is still used either way for the display picture and other msnobject transfers (I think). So we should implement both, but with a slight edge to MSNP2P as it is needed either way. MSNFTP is quite easy to handle. MSNP2P is where the msntransport library comes in. All application/x-msnmsgrp2p packets should be sent through the library. It will parse the P2P header, the SLP contents, and the actual requests and responses. Actual behaviour, such as file/msnobject saving, can happen by implementing EUF handlers (EUF = End User Feature). An interface (base class) for those handlers is in the library; you register them through the Platform and when you hand messages to the Platform, the EUF handler methods will be called. I don't understand everything happening in the library, but this is the focus I will have implementing this the coming days. I will try to interface with the msntransport library for doing MSNP2P in the test bot, and once I reach a sort-of stable state where, for example, MsnObjects can be retrieved, I will start moving stuff into the library. Once it has pretty MSNP2P support, I will start adding MSNFTP, but the largest milestone will have been reached. :) Please let me know what you guys think, any suggestions or ideas. Sjors |