[SPAM] Re: MSN Protocol documentation

Youness Alaoui kakaroto at kakaroto.homelinux.net
Mon Feb 11 23:58:56 EST 2008


Hi,
Thanks!
There is actually an open source codec for both the ML20 video codec (libmimic thanks to Ole Andre) and for the Siren audio codec (libsiren 
thanks to myself :p) The audio can work without problems using the siren codec, and the webcam feature (unidirectional) works just fine with 
the ML20 codec.. the problem is with the bidirectional audio+video which uses WMV3.. libavcodec has an open source implementation of the WMV3 
codec, but it only has the decoder, not the encoder. 
Note that MSN has a lot of different v/v protocols.. 
1 - The 'old style' video call which uses a very old protocol and is still there only for interoperability with windows messenger (not WLM). 
That protocol is compatible with gnomemeeting.
2 - The 'Video Call' feature which is bidirectional audio and video and uses the new MSNP2P protocol for the signaling, WMV3 video codec and 
Siren audio codec
3 - The 'Computer Call' feature which is bidirectional audio and uses SIP/RTP and supports multiple different possible codecs (which are 
x-msrta, Siren, G722.1 (clock rate of 16000), x-msrta, AAL2-G726-32, G723, PCMA and PCMU (clock rate of 8000)).
4 - The 'Webcam' feature which is unidirectional video only, using MSNP2P for signaling and the ML20 codec
5 - the 'Voice clips' feature which is unidirectional audio, in form of 'clips' of a maximum of 15 seconds in length, uses MSNP2P and the 
Siren codec.

(This should probably go into the wiki :p)

So from all of these implementation, None of them worked for a long time, apart from the 'old style video call' which aMSN implemented 
using a modified version of linphone in the early 2001. Then we dropped it because it became impossible to maintain. Then Ole Andre reverse 
engineered the ML20 codec and made an open source library for it, then the webcam feature was added in some clients (like aMSN), then I 
reverse engineered the Siren codec and made an open source library for it, then voice clips were added into aMSN, and now. I was also able to 
get the 'Computer call' feature to work using SIP and PCMA as codec, but I never incorporated that into aMSN (because it depends on many libs 
and MSNP13). And now finally, I'm working on the 'Video Call' feature. 

In short, yes, there is already a solution for MSN video using aMSN and it works great on Mac, and it's been there for almost 3 years now. 
The Audio/Video codecs are open source, so you won't need mplayer or 'stolen' dlls...
But you can't get a real-time audio conversation. For Audio, you can still use the 'voice clips', but that's annoying.. but hopefully, soon 
we'll be able to ship a working audio AND video implementation.

Hope that helps!
KaKaRoTo

On Mon, Feb 11, 2008 at 08:14:32PM -0700, Alan Humpherys wrote:
> Great job on the WMV3 decoding!  The lack of an open source codec for the 
> MSN voice/video protocol has been a serious impediment to getting MSN v/v 
> working on the Mac.  (My understanding was that Linux previously only 
> worked because mplayer used the windows media player DLL in compatibility 
> mode.)
>
> Alan
>
>
> On Feb 9, 2008, at 9:35 PM, Youness Alaoui wrote:
>
>> arghh.. not intentional.. I just hit 'r' and didn't notice it sent it in 
>> private.. forwarding to the ML now, so guys, read the previous 2 mails
>> before continuing...
>>
>> ok, I see about vv==av :p yes, a dedicated section is definitely 
>> necessary, considering the amount of data we'll have to put in there..
>>
>> On a side note, I've just (5 minutes ago) been able to decode a WMV3 
>> stream received from WLM in the audio/video conference thingy :D
>> The audio is the problem now because of the stupid snack extension for tcl 
>> opening/closing the audio device on every chunk of sound (every
>> 50ms).. and now, I have to write a Tcl extension for libavcodec... apart 
>> from that, the only remaining challenge is encoding WMV3 (no encoder
>> exists in open source), but I'll try to send ML20 frames and see if WLM 
>> uses the FCC in the header to decode, or if it uses the WMV3
>> decoder hardcoded and skips the FCC field... if it works, then aMSN might 
>> be the first open source solution with interop audio/video
>> conversations :D
>>
>>
>> KaKaRoTo


More information about the Openim mailing list