This email is mostly addressed to Thomas Butter, but I thought others might be
interested.
I want to make our SIP/SIMPLE PRPL works with MS LCS. I've taken some packet
captures and dug into the protocol a bit. I compared a Gaim signon with a
Live Communicator signon.
Some differences (I don't know if any of these are important):
* Gaim messages include a branch in the "Via:" field, LCC does not.
* In the "Contact:" field, Gaim sets methods="MESSAGE,
SUBSCRIBE, NOTIFY", but LCC sets this to "INVITE, MESSAGE,
INFO, SUBSCRIBE, OPTIONS, BYE, CANCEL, NOTIFY, ACK, REFER,
BENOTIFY"
* In the "Contact:" field, LCC sets "proxy=replace" but Gaim
does not set this.
* Gaim sets Max-Forwards to 10, LCC sets it to 70.
* User-Agents are different.
* Gaim sends "Expires: 900", LCC does not send this field.
* LCC sends "Supported: com.microsoft.msrtc.presence,
adhoclist", Gaim does not send this field.
* LCC sends "Supported: ms-forking", Gaim does does not
send this field.
* LCC sends "ms-keep-alive: UAC;hop-hop=yes", Gaim does
not send this field.
* LCC sends "Event: registration", Gaim does not send
this field.
* LCC sends "Allow-Events: presence", Gaim does not send
this field.
* The NTLM type 3 responses are a little different.
Questions:
1. Have you or anyone else been able to successfully sign into MS LCS using Gaim?
2. Do any other SIP servers use NT or NTLM authentication? Any public
servers? Something I can test with?
3. How thoroughly has Gaim's ntlm.c code been tested? I saw that it is also
used for some kind of proxy authentication? Have you used that successfully?
4. It looks like the domain, username and hostname should all be in UCS-2LE
instead of ASCII (the same as the password used in the NTLM hash process).
This may be dependent on a flag being set. It looks like when we send the
type 1 message we claim to support Unicode and not OEM strings, but yet we
send OEM strings. Am I looking at that correctly? I'm using
http://curl.haxx.se/rfc/ntlm.html as a reference for the flags.
Thanks,
Mark
|