[Pidgin] #48: Make SIP/SIMPLE work with Microsoft Live Communication Server

Pidgin trac at pidgin.im
Mon Nov 24 14:36:25 EST 2008


#48: Make SIP/SIMPLE work with Microsoft Live Communication Server
---------------------------+------------------------------------------------
 Reporter:  MarkDoliner    |        Owner:  shulman
     Type:  patch          |       Status:  new    
Milestone:                 |    Component:  SIMPLE 
  Version:  2.0            |   Resolution:         
 Keywords:  MS LCS SIMPLE  |  
---------------------------+------------------------------------------------

Comment(by DanielBeichl):

 Replying to [comment:196 gburt]:
 > Fixxxer,
 >
 > In your commit
 (http://repo.or.cz/w/siplcs.git?a=commitdiff;h=30264e86c5eb890babf00445f5b306c5e1d48551)
 that makes use of the new epid/uuid code, in the changes to send_publish,
 why do you use generateUUIDfromEPID(getuuid()) for the value of
 endpointId=\"%s\"?  Shouldn't it be using the epid value instead?
 >
 > We should probably be caching the epid/uuid values - no need to generate
 them after the first time we use them.  Could probably generate them in
 the login callback?
 >
 > Also, when you run the code you committed, does it crash when you try to
 login?  I'm getting the same crash that djflux and Rondom see:
 >
 > {{{
 > #5  0x00007ff72d6ace24 in _IO_vfprintf_internal (s=0x7fff3d70f4c0,
 format=0x361238c0 <Address 0x361238c0 out of bounds>, ap=0x7fff3d70f5e0)
 at printf-parse.h:95
 > #6  0x00007ff72d6d0ee9 in __IO_vsprintf (string=0x7fff3d70f6e0
 "��p=�\177", format=0x361238c0 <Address 0x361238c0 out of bounds>,
 args=0x7fff3d70f5e0) at iovsprintf.c:43
 > #7  0x00007ff72d6b7118 in __sprintf (s=0x361238c0 <Address 0x361238c0
 out of bounds>, format=0x25 <Address 0x25 out of bounds>) at sprintf.c:34
 > #8  0x00007ff7244eb189 in generateUUIDfromEPID (epid=0x361238c0 <Address
 0x361238c0 out of bounds>) at uuid.c:85
 > #9  0x00007ff7244e95cd in do_register_exp (sip=0x7ff735f7cac0,
 expire=900) at sipe.c:1017
 > #10 0x00007ff7244ea76b in login_cb_ssl (data=0x7ff735f7b1a0,
 gsc=0x7ff735f7cf80, cond=<value optimized out>) at sipe.c:1049
 > #11 0x00007ff731225ec7 in purple_certificate_verify_complete () from
 /usr/lib64/libpurple.so.0
 > }}}
 >
 > Any interest in chatting in #pidgin-sipe on freenode?  I'll idle there
 in case somebody wants to chat.

 Perhaps i can elaborate on this problem ...
 In my implementation of the epid -> uuid generation code i have written a
 function readUUID()
 which contained a incorrect scanf line which may overwrite stack memory. I
 have pushed a corrected version. Please test if it fixes this error.

 Regarding the user-agent ...
 I created a dump and the difference is that in case the user agent is
 "Purple/1.2.0" our server
 here answers the last NTLM auth message with

 SIP/2.0 403 Forbidden
 251 ms-user-logon-data: RemoteUser
 ...
 Warning: 310 lcs.microsoft.com "You are currently not using the
 recommended version of the client"
 Server: ClientVersionFilter/3.0.0.0

 If i fake the user-agent to "UCCP/2.0.6362.0 OC/2.0.6362.0 (Microsoft
 Office Communicator)"
 it accepts the last REGISTER with SIP/2.0 200 OK

 regards and sorry for the introduced bug

 Daniel

-- 
Ticket URL: <http://developer.pidgin.im/ticket/48#comment:197>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list