<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content="MSHTML 6.00.2600.0" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV><FONT face=Arial size=2>I'm in hurry, so like christophe i will only 
copy/paste a piece of code that show how i parse type 4 msg ...&nbsp;in 
java.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>...</FONT></DIV>
<DIV><FONT face=Arial size=2>...</FONT></DIV>
<DIV><FONT face=Arial size=2>...</FONT></DIV>
<DIV><FONT face=Courier size=2>/* retreiving member online since time 
*/<BR>&nbsp;&nbsp;&nbsp; onlineSinceTime = tmp;</FONT></DIV>
<DIV><FONT face=Courier size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Courier size=2>&nbsp;&nbsp;&nbsp; if(type.getValue() == 
1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parseMessageType1(position, 
data);<BR>&nbsp;&nbsp;&nbsp; else if(type.getValue() == 
2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parseMessageType2(position, 
data);<BR>&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
parseMessageType4(position, data);</FONT></DIV>
<DIV><FONT face=Courier size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Courier size=2>private void parseMessageType4(int position, 
byte[] data){</FONT></DIV>
<DIV><FONT face=Courier size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Courier size=2>&nbsp;&nbsp;&nbsp; /* skipping the first 4 bytes 
of the TLV(5) */<BR>&nbsp;&nbsp;&nbsp; position += 4;</FONT></DIV>
<DIV><FONT face=Courier size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Courier size=2>&nbsp;&nbsp;&nbsp; /* skipping first unknown 
field */<BR>&nbsp;&nbsp;&nbsp; position += 4;</FONT></DIV>
<DIV><FONT face=Courier size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Courier size=2>&nbsp;&nbsp;&nbsp; /* retreiving message type 
field */<BR>&nbsp;&nbsp;&nbsp; msgType = new RawData(data, position, 
1);<BR>&nbsp;&nbsp;&nbsp; position ++;</FONT></DIV>
<DIV><FONT face=Courier size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Courier size=2>&nbsp;&nbsp;&nbsp; /* retreiving message flags 
field */<BR>&nbsp;&nbsp;&nbsp; msgFlags = new RawData(data, position, 
1);<BR>&nbsp;&nbsp;&nbsp; position ++;</FONT></DIV>
<DIV><FONT face=Courier size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Courier size=2>&nbsp;&nbsp;&nbsp; if(msgType.getValue() == 
0x04)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parseLinkMessage(position, 
data);<BR>&nbsp; }</FONT></DIV>
<DIV><FONT face=Courier size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Courier size=2>&nbsp; private void parseLinkMessage(int 
position, byte[] data){</FONT></DIV>
<DIV><FONT face=Courier size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Courier size=2>&nbsp;&nbsp;&nbsp; /* Retreiving message length 
*/<BR>&nbsp;&nbsp;&nbsp; RawData msgLen = new RawData(data, position, 
2);<BR>&nbsp;&nbsp;&nbsp; msgLen.invertIndianness();<BR>&nbsp;&nbsp;&nbsp; 
position += 2;</FONT></DIV>
<DIV><FONT face=Courier size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Courier size=2>&nbsp;&nbsp;&nbsp; /* Retreiving message + link 
*/<BR>&nbsp;&nbsp;&nbsp; String tmp = new String(data, position, 
msgLen.getValue() - 1);<BR>&nbsp;&nbsp;&nbsp; int divPosition = 
tmp.indexOf((char)0xFE);<BR>&nbsp;&nbsp;&nbsp; message = new 
String(tmp.substring(0, divPosition));<BR>&nbsp;&nbsp;&nbsp; url = new 
String(tmp.substring(divPosition + 1, tmp.length()));<BR>&nbsp;&nbsp;&nbsp; 
isType4LinkMessage = true;</FONT><FONT face=Courier size=2><BR>&nbsp; 
}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>it work just fine for my lib.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>hope it'll help.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>regards,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Fabrice</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>----- Original Message ----- </FONT>
<DIV><FONT face=Arial size=2>From: "Perry Werneck" &lt;</FONT><A 
href="mailto:pwicq@terra.com.br"><FONT face=Arial 
size=2>pwicq@terra.com.br</FONT></A><FONT face=Arial size=2>&gt;</FONT></DIV>
<DIV><FONT face=Arial size=2>To: &lt;</FONT><A 
href="mailto:icq-devel@blipp.com"><FONT face=Arial 
size=2>icq-devel@blipp.com</FONT></A><FONT face=Arial size=2>&gt;</FONT></DIV>
<DIV><FONT face=Arial size=2>Sent: Tuesday, November 26, 2002 12:40 
AM</FONT></DIV>
<DIV><FONT face=Arial size=2>Subject: [icq-devel] Problems processing tlv 0x2711 
in advanced message</FONT></DIV></DIV>
<DIV><FONT face=Arial><BR><FONT size=2></FONT></FONT></DIV><FONT face=Arial 
size=2>&gt; Hi,<BR>&gt; <BR>&gt; I'm having some problems processing URL 
messages with my client. The TLV 0x2711 <BR>&gt; packet sent from the server 
seens to be diferent from the one documented in <BR>&gt; Rdiger's page.<BR>&gt; 
<BR>&gt; Any clues?<BR>&gt; <BR>&gt; This is the TLV I received:<BR>&gt; 
<BR>&gt; 11/25/2002 21:34:22 icqkrnl&nbsp;&nbsp;&nbsp; TLV2711 (244 
bytes)<BR>&gt; 1b 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00&nbsp;&nbsp; 
................<BR>&gt; 00 00 00 00 00 00 03 00 00 00 00 cd ff 0e 00 
cd&nbsp;&nbsp; .............<BR>&gt; ff 00 00 00 00 00 00 00 00 00 00 00 00 
1a 00 00&nbsp;&nbsp; ...............<BR>&gt; 00 01 00 01 00 00 40 00 37 1c 58 
72 e9 87 d4 11&nbsp;&nbsp; </FONT><A href="mailto:......@.7.Xr"><FONT 
face=Arial size=2>......@.7.Xr</FONT></A><FONT face=Arial size=2>.<BR>&gt; a4 
c1 00 d0 b7 59 b1 d9 00 00 1b 00 00 00 53 65&nbsp;&nbsp; 
.зY......Se<BR>&gt; 6e 64 20 57 65 62 20 50 61 67 65 20 41 64 64 
72&nbsp;&nbsp; nd Web Page Addr<BR>&gt; 65 73 73 20 28 55 52 4c 29 00 00 00 00 
00 01 00&nbsp;&nbsp; ess (URL).......<BR>&gt; 00 00 00 00 00 00 00 00 78 00 00 
00 74 00 00 00&nbsp;&nbsp; ........x...t...<BR>&gt; 4a 61 76 61 20 54 69 70 20 
34 38 3a 20 48 6f 77&nbsp;&nbsp; Java Tip 48: How<BR>&gt; 20 74 6f 20 63 72 65 
61 74 65 20 61 20 72 65 75&nbsp;&nbsp;&nbsp; to create a reu<BR>&gt; 73 61 62 6c 
65 20 4d 65 73 73 61 67 65 42 6f 78&nbsp;&nbsp; sable MessageBox<BR>&gt; 20 63 
6c 61 73 73 fe 68 74 74 70 3a 2f 2f 77 77&nbsp;&nbsp;&nbsp; 
classhttp://ww<BR>&gt; 77 2e 6a 61 76 61 77 6f 72 6c 64 2e 63 6f 6d 
2f&nbsp;&nbsp; w.javaworld.com/<BR>&gt; 6a 61 76 61 77 6f 72 6c 64 2f 6a 61 76 
61 74 69&nbsp;&nbsp; javaworld/javati<BR>&gt; 70 73 2f 6a 77 2d 6a 61 76 61 74 
69 70 34 38 2e&nbsp;&nbsp; ps/jw-javatip48.<BR>&gt; 68 74 6d 
6c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
html<BR>&gt; <BR>&gt; The header according the documentation (seens like this is 
a no text message):<BR>&gt; <BR>&gt; 11/25/2002 21:34:22 
icqkrnl&nbsp;&nbsp;&nbsp; Header (53 bytes)<BR>&gt; 1b 00 08 00 00 00 00 00 00 
00 00 00 00 00 00 00&nbsp;&nbsp; ................<BR>&gt; 00 00 00 00 00 00 03 
00 00 00 00 cd ff 0e 00 cd&nbsp;&nbsp; .............<BR>&gt; ff 00 00 00 00 
00 00 00 00 00 00 00 00 1a 00 00&nbsp;&nbsp; ...............<BR>&gt; 00 01 00 
01 
00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
.....<BR>&gt; <BR>&gt; But, the extra bytes in the packet:<BR>&gt; <BR>&gt; 
11/25/2002 21:34:22 icqkrnl&nbsp;&nbsp;&nbsp; Extra (191 bytes)<BR>&gt; 00 40 00 
37 1c 58 72 e9 87 d4 11 a4 c1 00 d0 b7&nbsp;&nbsp; </FONT><A 
href="mailto:.@.7.Xr.."><FONT face=Arial 
size=2>.@.7.Xr..</FONT></A><FONT face=Arial size=2><BR>&gt; 59 b1 d9 00 
00 1b 00 00 00 53 65 6e 64 20 57 65&nbsp;&nbsp; Y......Send We<BR>&gt; 62 20 
50 61 67 65 20 41 64 64 72 65 73 73 20 28&nbsp;&nbsp; b Page Address (<BR>&gt; 
55 52 4c 29 00 00 00 00 00 01 00 00 00 00 00 00&nbsp;&nbsp; 
URL)............<BR>&gt; 00 00 00 78 00 00 00 74 00 00 00 4a 61 76 61 
20&nbsp;&nbsp; ...x...t...Java<BR>&gt; 54 69 70 20 34 38 3a 20 48 6f 77 20 74 6f 
20 63&nbsp;&nbsp; Tip 48: How to c<BR>&gt; 72 65 61 74 65 20 61 20 72 65 75 73 
61 62 6c 65&nbsp;&nbsp; reate a reusable<BR>&gt; 20 4d 65 73 73 61 67 65 42 6f 
78 20 63 6c 61 73&nbsp;&nbsp;&nbsp; MessageBox clas<BR>&gt; 73 fe 68 74 74 70 3a 
2f 2f 77 77 77 2e 6a 61 76&nbsp;&nbsp; shttp://www.jav<BR>&gt; 61 77 6f 72 6c 
64 2e 63 6f 6d 2f 6a 61 76 61 77&nbsp;&nbsp; aworld.com/javaw<BR>&gt; 6f 72 6c 
64 2f 6a 61 76 61 74 69 70 73 2f 6a 77&nbsp;&nbsp; orld/javatips/jw<BR>&gt; 2d 
6a 61 76 61 74 69 70 34 38 2e 68 74 6d 6c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
-javatip48.html<BR>&gt; <BR>&gt; <BR>&gt; -- <BR>&gt; <BR>&gt; 
&nbsp;&nbsp;&nbsp; Perry Werneck<BR>&gt; &nbsp;&nbsp;&nbsp; ICQ#27241234<BR>&gt; 
&nbsp;&nbsp;&nbsp; </FONT><A 
href="http://planeta.terra.com.br/informatica/trevize"><FONT face=Arial 
size=2>http://planeta.terra.com.br/informatica/trevize</FONT></A><BR><FONT 
face=Arial size=2>&gt; <BR>&gt; 
-------------------------------------------------<BR>&gt; icq-devel - The forum 
for ICQ protocol discussion<BR>&gt; For unsubscribe and other mailing list info, 
see:<BR>&gt; </FONT><A href="http://www.d.kth.se/~d95-mih/icq/icq-devel/"><FONT 
face=Arial 
size=2>http://www.d.kth.se/~d95-mih/icq/icq-devel/</FONT></A><BR><FONT 
face=Arial size=2>&gt; </FONT></BODY></HTML>