I’ve been struggling with Smack/Jingle and it occurred to me that someone out there may be able to solve the problem more easily than me, so if someone thinks they can handle it, please let me know and I’d love to send some money your way for the effort.
I think there are a few issues that need to be resolved, so I’m making a few goals. Not all of these goals need to be met (only the first one), but it’s important to me to that nothing is done to go against any of these goals:
Goal 1 (Audio Video Chat on Mac OS X):
I need to be able to have audio/video chat working on mac OS X. I have made some progress in this area using various tools. I am currently stuck here: http://community.igniterealtime.org/message/207334
I don’t think my problem is really OS X specific, although it may be partly on OS X problem.
I would very much like the ability to share screens and custom data as well, but I think that will follow.
Goal 2 (Better Docs for Smack/Jingle):
Lots of people are baffled by how to get Jingle to work with smack and exactly what’s required. A little TLC in this area would help a lot.
Goal 3 (Specific design issue in Smack/Jingle):
I happened to notice a design problem in my perusal of the code that makes doing video difficult. The PayloadType class has an inner class that’s also a subclass: PayloadType.Audio. However, rather than delegating additional functionality through virtual functions, as would be proper object oriented design, other classes include type checks or direct typecasting from PayloadType to PayloadType.Audio. This is just plain bad design, in otherwise excellent code. I have a partial fix for this already, but there may be some side-effects. Specifically, I’m not sure how jingle works with multiple payloads, (one video + one audio, for example) and that might take a tiny bit more tweaking to get working.