[Nice] Compatibility with MS Office Communicator 2007 R2

Jakub Adam jakub.adam at ktknet.cz
Mon Aug 30 15:36:08 PDT 2010

Hi Youness,

I'm attaching new version of MSOC 2007R2 compatibility patch. I also made some progress
in compatibility with Office Communicator release 1, see below.

> There is just one more thing that I'm thinking about now.. considering that the
> OC2007R2 compatibility is the same as the WLM2009 (since you delegate the STUN
> compat to WLM2009 even in OC2007R2 mode), and that the only difference is adding
> the candidate-identifier (which is harmless to have) and since you're not using
> it yourself when receiving data, then I'd like to suggest the following :
> 1 - add the candidate-identifier in WLM2009 mode (it might require it in the
> future if they update their dll)
> This way you get your compatiblity mode, but less code/paths to maintain, and
> it's harmless.
> What do you think?

That's a good idea, merging these compatibilities shortened code a bit. Still,
I left STUN_USAGE_ICE_COMPATIBILITY_OC2007R2 there (renamed to
STUN_USAGE_ICE_COMPATIBILITY_WLM2009) because I somewhat don't like sending
CANDIDATE-IDENTIFIER in RFC5245 mode. Even it would work, someone reading the
code might be confused why an argument not mentioned in the RFC is added to
messages. Sending CANDIDATE-IDENTIFIER only in mode of compatibility with
Microsoft communicators will be nicer.

 >> OC2007 (release 1) uses ICEv6 (IETFDRAFT-ICENAT-06) which is an older
 >> version of ICE draft, that, as far as I know, is not supported by libnice.
 >> Please correct me if I'm wrong.
 > hehe, actually, it is! the "MSN" compatiblity is a derivative of ICE draft 6,
 > the WLM2009 is the derivative from ICE draft 19.. so basically, the older MSN
 > version uses the dll from OC2007, and the new WLM2009 used the dll from OC2007R2!

Thanks, this information was very valuable to me. I implemented support for OC2007
in SIPE. Unfortunatelly, "MSN" mode of libnice is not fully compatible, difference
is in USERNAME attribute. When sending binding request for connectivity check,
USERNAME is sent as remote_ufrag:component:local_ufrag:component using remote password
for computation of MESSAGE-INTEGRITY.

When the other OC2007 peer receives binding request, its reply uses the very same USERNAME
as the request, also using same key for MESSAGE-INTEGRITY. But libnice's MSN compatibility
swaps ufrags, also using different key for message integrity. From the request sender's
point of view, received reply has username as local_ufrag:component:remote_ufrag:component.
I made separate patch for this, adding a new compatibility mode NICE_COMPATIBILITY_OC2007.

This change touches Farsight where new compatibility mode must be added. I see no solution
where this or similar change can be avoided. As I know you are also working on Farsight,
I post that very small patch here, but please let me know if I should use a different
mailing list.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: farsight-Compatibility-with-OC2007.patch
Type: text/x-patch
Size: 1317 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/nice/attachments/20100831/04a05c3b/attachment-0003.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libnice-Compatibility-with-OC2007.patch
Type: text/x-patch
Size: 14639 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/nice/attachments/20100831/04a05c3b/attachment-0004.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libnice-Compatibility-with-OC2007-R2.patch
Type: text/x-patch
Size: 5966 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/nice/attachments/20100831/04a05c3b/attachment-0005.bin>

More information about the Nice mailing list