Opened 7 years ago

Closed 3 years ago

Last modified 3 years ago

#14753 closed enhancement (out of date)

Implement MSNP18 in libpurple

Reported by: basjuh Owned by: QuLogic
Milestone: Component: MSN
Version: 2.10.0 Keywords: msnp18 p2p p2pv2 slp groups
Cc:

Description

Hey Pidgin Team,

I just started a new semester at college studying computer science, which allows me to work on my own project for the next 10 weeks, so I've decided to help you guys out. One of the things I've noticed over the last year or two of using Pidgin is that MSN support isn't that great at all. Important features such as file transfers, contact pictures, and custom emoticons are broken, and tickets to fix these have been open for a long time. Since most of the developers of Pidgin seem to have a busy life, it seems like a good time for me te step in and contribute.

So in the upcomming weeks I'm going to do my best to analyse MSNP18 and implement it into libpurple, something I think a lot of people have been looking forward to. I will be mostly focussing on the core on the protocol, and getting p2p transfers working again. After that I'll focus on the Groups feature in MSNP18 which has been requested by quite a lot of people, and when I have time left audio and video conferencing would be nice too.

I'm really thrilled about working on this project and working with the Pidgin community. I hope I can make a useful contribution to this project.

Attachments (1)

msnp18.diff (2.1 KB) - added by basjuh 7 years ago.

Download all attachments as: .zip

Change History (38)

comment:1 follow-up: Changed 7 years ago by basjuh

  • Milestone set to Implementation In Progress

comment:2 Changed 7 years ago by Robby

You rock!

comment:3 Changed 7 years ago by BW~Merlin

I really really hope you can get some of the MSN features working again. As you said there is a pile of tickets about various MSN features and busy devs. More importantly I hope you get them working and get good marks in your course and can spare the time in future to maintain and fix other aspects of pidgin that need a bit of attention.

Good luck and I and many others look forward to seeing what you can do.

comment:4 Changed 7 years ago by Darkstrike

Thank you so much Basjuh! I love Pidgin compared to all the other clients, so simple and light on resources...no crap! I've been missing all of the important MSN features however since MSNP18 was implemented (Contact pictures and Personal Message updating, file transfers, custom emoticons, messaging contacts who are "Appearing Offline," the list goes on!)

I tried to learn to code once by taking an elective course in school, but it did not end well, else I would certainly love to help...

You have my sincere thanks, as well as that of all the other MSN users who stand by Pidgin.

Best of luck, and thanks so much once again! :)

comment:5 in reply to: ↑ 1 Changed 7 years ago by basjuh

Hey guys,

First of all, thanks a lot for all the encouragements!

So I thought I'll give you a little heads up on what I've been doing for the last 2 weeks. I've been pretty much trying to wrap my head around the MSN protocol. Which is a big mess, but it seems to be going okay. Got most of it figured out now. I also spent some time messing around with the msn source in libpurple and trying to figure it all out. And also spent some time comparing it with some other projects that have also implemented msn.

I'm guessing for the next week or so I'll be digging around in the new features of MSNP18, and after that it's time to implements it all.

Take care guys.

comment:6 Changed 7 years ago by Darkstrike

You're welcome, best of luck sir! :)

comment:7 Changed 7 years ago by anoftc

way to go, and best of luck in your enthusiasm :) current msn implementation of pidgin is kinda buggy, so anything less buggy would be greatly appreciated by us lame non-developer users

thank you in advance!!!

Bye, Zs

comment:8 Changed 7 years ago by basjuh

Just another quick question for any msn devs (if they still exist)

The code seems to be filled with TODO's saying when conversation is redesigned... Are there any kind of documents talking about this new design, or no plans yet?

Thanks

comment:9 Changed 7 years ago by anoftc

My experience is that Pidgin devs check tickets only randomly (or at least, there are way too few comments from them) ....

you might get easier contact with them at http://pidgin.im/cgi-bin/mailman/listinfo/devel

Thought, it would be nice to keep us informed through this ticket :)

Bye, Zs

comment:10 Changed 7 years ago by BW~Merlin

Thanks for the update, I really look forward to using your end results. I don't know if this is relevant at all but might be worth taking a look at http://developer.pidgin.im/ticket/14605

comment:11 in reply to: ↑ description Changed 7 years ago by basjuh

Hey Guys,

Another small update, So I've finally started working on some code, I now have a testbuild where MSNP18 works. I had to change a few commands because they switched some parameters around. Apart from that not much has really happened cause I was dealing with a pretty bad sinus infection, so I was mostly in my bed. But hey I'm better now, so time to continue.

@BW~Merlin I looked into that, it looks really cool and nice that Microsoft is starting to use some open standards. Sadly the functionality is really limited and Microsoft has added a lot of their own closed protection crap, so will be hard to figure that out.

comment:12 Changed 7 years ago by Darkstrike

Wonderful news Basjuh - no rush, keep at it at your own pace and we are grateful :) - quality over quantity as they say, lol.

I'll just be happy to have Status / Display pictures working again!

comment:13 Changed 7 years ago by BW~Merlin

Once again thanks for the update, glade to hear your still at it.

comment:14 Changed 7 years ago by basjuh

Hey guys,

Another little status update, I'm a little bit behind on my schedule, cause throughout last week I was still kinda ill. But now I'm finally better. So for this week I hope to continue digging into the P2P problems, which is one of the most annoying problems.

comment:15 Changed 7 years ago by Darkstrike

Thanks again for the update Basjuh :)

Sorry to hear you were sick!

comment:16 follow-up: Changed 7 years ago by basjuh

Hey Happy New Year all,

It's been a while since my last status update, primarily cause of christmas and newyears, but I'm back. One thing I realised over the last few weeks is that doing all this work on MSN really isn't my kind of deal. However that doesn't mean I'm not gonna finish what I'm starting. I'm entering the final week of my project now, and I've been overloaded with a bunch of paperwork, gotta write a shitload of reports about what I've been doing. My highest priority is still getting P2P to work again, however its a lot more complicated than I first had imagined.

comment:17 in reply to: ↑ 16 ; follow-up: Changed 7 years ago by BW~Merlin

Replying to basjuh: One thing I realised over the last few weeks is that doing all this work on MSN really isn't my kind of deal. However that doesn't mean I'm not gonna finish what I'm starting.

Thanks for the update, sorry your not enjoying it but if it makes any difference the entire MSN using community of pidgin is grateful for any work you can do towards improving the MSN functionality of pidgin.

Good luck with your assessment.

comment:18 in reply to: ↑ 17 Changed 7 years ago by Darkstrike

Replying to BW~Merlin:

Replying to basjuh: One thing I realised over the last few weeks is that doing all this work on MSN really isn't my kind of deal. However that doesn't mean I'm not gonna finish what I'm starting.

Thanks for the update, sorry your not enjoying it but if it makes any difference the entire MSN using community of pidgin is grateful for any work you can do towards improving the MSN functionality of pidgin.

Good luck with your assessment.

Agreed! I am also sorry you are not enjoying the work as much as you thought and also sorry that it is more complicated than you would like...we are very grateful for any work you can put into the project, whether you can complete it or not :)

Thank you for continuing to try Basjuh!

comment:19 Changed 7 years ago by QuLogic

  • Keywords libpurple msn removed
  • Milestone changed from Implementation In Progress to Patches welcome

Hi basjuh,

I have been looking in to what's required to implement MSNp18. I don't like to write code twice, so if you have anything worthwhile, it would be best to share it sooner rather than later.

comment:20 Changed 7 years ago by basjuh

Yeah, sorry I haven't come up with much code throughout these weeks, theres just too much focus on writing a good report at my college.

What I found for MSNP18 is this:

Changes is these commands:

MSNP16: UBX <passport> <networkid> <length> MSNP18: UBX <networkid>:<passport> <length> in Pidgin: libpurple/protocols/msn/notification.c ubx_post_cmd

MSNP16: NLN <statuscode> <passport> <networkid> <nickname> <clientid> <dpobject> MSNP18: NLN <statuscode> <networkid>:<passport> <nickname> <clientid> <dpobject> in Pidgin libpurple/protocols/msn/notification.c nln_cmd

If you fix just those 2 commands Pidgin will run MSNP18 without crashing, all it needs is the splitting of the second parameter, I have a patch for this (ugly code). Could probably also done by making the command parser also split ':'.

And then theres the whole new Circle conversation, which I don't think a lot of people use (but it is a part of MSNP18 sadly).

In the UBX command you get notified of a circle conversation by: UBX <statuscode> <networkid>:<passport>;via=9:<email-of-owner-i-guess> ....

It starts using a new SDG command for sending those Circle messages.

And it changes the USR command to get authority in a new group: https://code.google.com/p/msnp-sharp/wiki/MSNP18_New_NS_Command

msnp-sharp has a good implementation of the circle conversions, maybe check that out.

And there were a few SLP changes with the switchboard data transfer, but not sure about those.

About the whole P2Pv2 things, my debugging skills are far from perfect, so I was not really able to find the problem at all... I've ran through most of the slp code but I could seem to find the problem. It seems to be a really small error, cause most of the v2 stuff is in there. Maybe you have found something?

Changed 7 years ago by basjuh

comment:21 Changed 7 years ago by Darkstrike

Just thought I would post a thanks again to you two for the work you are doing :)

Us MSN users are greatful!

comment:22 Changed 7 years ago by qulogic@…

(In ba1eb9b8a9a30e66ae62f2ee9e02571eb9ce27f5):
ChangeLog those last two changes.

Fixes #14302. Refs #14753.

comment:23 Changed 7 years ago by Darkstrike

!

Does this mean the changes have been implemented? :)

comment:24 Changed 7 years ago by qulogic@…

(In 5e6213531d20392ad819ad1bd7eaec4054b7079c):
* Plucked ba1eb9b8a9a30e66ae62f2ee9e02571eb9ce27f5 (qulogic@…): ChangeLog those last two changes.

Fixes #14302. Refs #14753.

comment:25 Changed 7 years ago by fuzzy76

This already sound better than the current msnp16 implementation, or...?

comment:26 Changed 7 years ago by Darkstrike

I'm afraid I don't quite understand all the technical speak from the developer system that the Pidgin devs use - do the above Qulogic posts mean that this ticket will be implemented in the near future?

comment:27 Changed 7 years ago by MarkDoliner

Anyone know if there's anything left to do for this ticket? I believe some changes went into 2.10.2.

comment:28 Changed 7 years ago by basjuh

As far as I know my changes are now upstream, and some of them are in 2.10.2. For MSNP18 im not sure what theres left todo, its not that big of a protocol chance from MSNP16. P2Pv2 however still seems to be the biggest problem for MSN users.

comment:29 follow-up: Changed 7 years ago by Darkstrike

Quick update:

Just installed the 2.10.2 update and display pictures still do not seem to be updating properly for me.

I am running Pidgin on Win7 64-bit - when checking my mom's computer (running WinXP 32-bit and the official WLM/MSN client), I set a new display picture for her which is showing up fine on her end on the official client, but it is not updating on my end on Pidgin.

Also, when changing my display picture on the Pidgin end, it is still not updating on the official client on her end...?

I'll check the offline messaging, custom emoticons and file transfers later tonight when I get home.

Long story short - seems the display picture changes aren't in 2.10.2...maybe the "Appear Offline" and offline messaging changes are though!

comment:30 in reply to: ↑ 29 ; follow-up: Changed 7 years ago by QuLogic

Replying to Darkstrike:

Long story short - seems the display picture changes aren't in 2.10.2...maybe the "Appear Offline" and offline messaging changes are though!

No-one ever claimed that display pictures were fixed. There are no "display picture changes".

comment:31 in reply to: ↑ 30 ; follow-up: Changed 7 years ago by Darkstrike

Replying to QuLogic:

Replying to Darkstrike:

Long story short - seems the display picture changes aren't in 2.10.2...maybe the "Appear Offline" and offline messaging changes are though!

No-one ever claimed that display pictures were fixed. There are no "display picture changes".

Sorry, I realize there were no changes for them now, however "support new protocol version MSNP18" is a bit misleading from that standpoint as MSNP18 included changes to the display picture code and MSNP18's implementation was the reason why they stopped working in Pidgin, so when I read that line I assumed all the kinks were worked out now. Not angry or anything, I just misunderstood :)

Glad that things are progressing though! (Yay for offline messaging working again!)

comment:32 in reply to: ↑ 31 Changed 7 years ago by Robby

Replying to Darkstrike:

<snip> MSNP18's implementation was the reason why they stopped working in Pidgin, so when I read that line I assumed all the kinks were worked out now. Not angry or anything, I just misunderstood :)

That is not true. Contact icons were broken in the (still moving) transition to P2Pv2 for MSNP16.

comment:33 Changed 7 years ago by Darkstrike

Just a bug report - at least for me on two computers running Win7 64-bit and WinXP 32-bit - since the new protocol update, I'm having instances where I'll go to chat to a user Pidgin says is online and once I send my message I receive a an error on how the message could not be sent because the user is offline. If I then close and restart the program, or disable and re-enable that protocol plugin, that person will then show as offline like they actually are and Offline Instant Messages will work fine. It seems the contact list isn't updating properly for me to show who is online or offline?

comment:34 Changed 7 years ago by rekkanoryo

QuLogic fixed that bug shortly after release. The fix will be in our next release.

comment:35 Changed 7 years ago by Darkstrike

Ok, thanks!

comment:36 Changed 3 years ago by dx

  • Resolution set to out of date
  • Status changed from new to closed

I'm not really sure why this ticket is still open, since latest purple 2.x seems to implement MSNP18, but either way, that protocol version is not supported by the servers anymore, see #16691 instead.

comment:37 Changed 3 years ago by Robby

  • Milestone Patches welcome deleted
Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!