<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.linux360.ro/index.php?action=history&amp;feed=atom&amp;title=Protocolul_Yahoo%21_Messenger</id>
		<title>Protocolul Yahoo! Messenger - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linux360.ro/index.php?action=history&amp;feed=atom&amp;title=Protocolul_Yahoo%21_Messenger"/>
		<link rel="alternate" type="text/html" href="http://wiki.linux360.ro/index.php?title=Protocolul_Yahoo!_Messenger&amp;action=history"/>
		<updated>2026-04-19T13:32:59Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>http://wiki.linux360.ro/index.php?title=Protocolul_Yahoo!_Messenger&amp;diff=3114&amp;oldid=prev</id>
		<title>Ingerul: primele corecturi de formatare</title>
		<link rel="alternate" type="text/html" href="http://wiki.linux360.ro/index.php?title=Protocolul_Yahoo!_Messenger&amp;diff=3114&amp;oldid=prev"/>
				<updated>2006-11-09T15:32:37Z</updated>
		
		<summary type="html">&lt;p&gt;primele corecturi de formatare&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 15:32, 9 November 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The YMSG packet structure ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==The YMSG packet structure==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The YMSG packet structure is as follows&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The YMSG packet structure is as follows (each byte is represented by 5 spaces in the following diagram, including the | at the end)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(each byte is represented by 5 spaces in the following diagram,&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;including the | at the end)&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;  &amp;lt;------- 4B -------&amp;gt;&amp;lt;------- 4B -------&amp;gt;&amp;lt;---2B---&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;  &amp;lt;------- 4B -------&amp;gt;&amp;lt;------- 4B -------&amp;gt;&amp;lt;---2B---&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot; &gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; +-------------------------------------------------+&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; +-------------------------------------------------+&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*65535 is the theoretical limit, since the length field is two &lt;/del&gt;bytes&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;; YMSG : The first four &lt;/ins&gt;bytes &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;of all packets are always YMSG - &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;protocol name&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;long.&amp;#160; Practically though, &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;data section does not exceed about 1000&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;bytes.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;All numeric fields are stored in network byte order.&amp;#160; i.e. Most &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;significant byte first&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;YMSG&amp;#160; &amp;#160; - &lt;/del&gt;The &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;first &lt;/del&gt;four bytes &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;of all packets &lt;/del&gt;are &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;always YMSG - &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/del&gt;protocol &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;name&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;; version : &lt;/ins&gt;The &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;next &lt;/ins&gt;four bytes are &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;for &lt;/ins&gt;the protocol &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;version number. For version 9, these are 0x09 0x00 0x00 0x00&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;: NOTE: The last three bytes of this may just be padding bytes&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;version - The next four &lt;/del&gt;bytes are &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;for &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;protocol version number&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;; pkt_len : A two byte value, in network byte order, stating how many &lt;/ins&gt;bytes are &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in the _data_ section of &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;packet&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;In practice&lt;/ins&gt;, this &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;value does not exceed about 1000&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; For version 9&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;these are 0x09 0x00 0x00 0x00&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; NOTE: The last three bytes of &lt;/del&gt;this &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;may just be padding bytes&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pkt_len - A two byte value, in network byte order, stating how many bytes &lt;/del&gt;are &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;in &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;_data_ &lt;/del&gt;section of &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the packet.&amp;#160; In practice, &lt;/del&gt;this &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;value does not exceed about 1000&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;; service : This is an opcode that tells the client/server what kind of service is requested/being responded to. There &lt;/ins&gt;are &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;45 known services. See &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;services &lt;/ins&gt;section of this &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;document for a full listing&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;service - This is an opcode that tells &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;client/&lt;/del&gt;server &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;what kind &lt;/del&gt;of &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; service is requested&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;being responded to&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; There are 45 known&amp;#160; &amp;#160; &amp;#160;  services&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; See &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;services section of this document for a full listing&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;; status : In case of a response from &lt;/ins&gt;the server&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, indicates the status &lt;/ins&gt;of &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the request (success/failure&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;etc&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;)&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;For a request, it is 0 in most cases, except for packets that set &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;user's status (set status, typing notify, etc&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;status&amp;#160; - In case of &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;response from the server&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;indicates &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;status&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; of &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;request (success/failure/etc.).&amp;#160; For a request&lt;/del&gt;, it is 0 in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;most cases, except for &lt;/del&gt;packets &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;that set &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;user's status (set status&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;typing notify, etc&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;; session : The session id is used primarily when connecting through &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;HTTP id proxy. It is set in all cases&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;but has no effect in a direct connection. When &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;client sends &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;first packet&lt;/ins&gt;, it is 0&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, the server responds with a session id that is used by the client and the server &lt;/ins&gt;in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;all further &lt;/ins&gt;packets&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. The server may change &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;session id&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in which case the client must use the new session id henceforth&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;session - &lt;/del&gt;The &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;session id &lt;/del&gt;is &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;used primarily when connecting through a HTTP &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;; DATA : &lt;/ins&gt;The &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;data section &lt;/ins&gt;is &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pkt_len bytes long&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;having &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;theoretical limit of 65535 bytes, since &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;length filed &lt;/ins&gt;is &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;two bytes long. Practically though&lt;/ins&gt;, the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;data section does not exceed about 1000 bytes. This section consists of &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;series of key/value pairs. All keys are numeric strings&lt;/ins&gt;. The &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;packet contains their numeric values &lt;/ins&gt;in the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ASCII character set.&amp;#160; e.g&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;id proxy.&amp;#160; It is set in all cases&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;but has no effect in a direct&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;  connection.&amp;#160; When &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;client sends &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;first packet, it &lt;/del&gt;is &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0&lt;/del&gt;, the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;server responds with &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;session id that is used by the client and the server in all further packets&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;The &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;server may change the session id, &lt;/del&gt;in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;which case &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;client must use the new session id henceforth&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;: &amp;lt;code&amp;gt;1 == 0x31, 21 == 0x32 0x31&amp;lt;/code&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;DATA&amp;#160; &amp;#160; - The data section is pkt_len bytes long and consists of a series&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; of key/value pairs.&amp;#160; &lt;/del&gt;All &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;keys &lt;/del&gt;are &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;numeric strings.&amp;#160; The packet&amp;#160; &amp;#160; &amp;#160; contains their numeric values &lt;/del&gt;in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the ASCII character set.&amp;#160; e.g.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;All &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;numeric fields &lt;/ins&gt;are &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;stored &lt;/ins&gt;in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;network &lt;/ins&gt;byte &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;order&lt;/ins&gt;.&amp;#160; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;i&lt;/ins&gt;.e. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Most significant byte first&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 1 == 0x31, 21 == 0x32 0x31&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The maximum number of digits in a key is unknown, although keys&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;  of up to three digits have been seen. Every key and value is terminated by a two &lt;/del&gt;byte &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sequence of 0xc0 0x80&lt;/del&gt;.&amp;#160; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Some keys may have empty values.&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; The actual keys sent, and their meanings depend on the service in use&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;e.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;g&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The packet data to send an instant message looks like this:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/del&gt;0x30 0xc080 yahoo_id 0xc080 0x31 0xc080 active_id 0xc080 0x35 &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The maximum number of digits in a key is unknown, although keys of up to three digits have been seen. Every key and value is terminated by a two byte sequence of 0xc0 0x80.&amp;#160; Some keys may have empty values. The actual keys sent, and their meanings depend on the service in use. e.g. The packet data to send an instant message looks like this:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/del&gt;0xc080 recipient_id 0xc080 0x3134 0xc080 message_text 0xc080&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;0x30 0xc080 yahoo_id 0xc080 0x31 0xc080 active_id 0xc080 0x35 &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;0xc080 recipient_id 0xc080 0x3134 0xc080 message_text 0xc080&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The 0xc080 byte sequence is a separator. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;The values 0x30, 0x31, 0x35 and 0x3134 are the keys. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;Convert them to their ASCII equivalents and you get 0, 1, 5, 14&amp;#160; (0x3134 == 0x31 0x34)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The 0xc080 byte sequence is a separator. The values 0x30, 0x31, 0x35 and 0x3134 are the keys. Convert them to their ASCII equivalents and you get 0, 1, 5, 14&amp;#160; (0x3134 == 0x31 0x34)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Services ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Services ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are 45 known services at the moment, although more may exist. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;All &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are 45 known services at the moment, although more may exist. All known services are listed below along with the hex values that they correspond to. Any service without a hex value is one more than the previous value.&amp;#160; i.e. YAHOO_SERVICE_LOGOFF=0x02 and YAHOO_SERVICE_ISBACK=0x04.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;known services are listed below along with the hex values that they &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;correspond to. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;Any service without a hex value is one more than the &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;previous value.&amp;#160; i.e. YAHOO_SERVICE_LOGOFF=0x02 and &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;YAHOO_SERVICE_ISBACK=0x04.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; YAHOO_SERVICE_LOGON&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; = 0x01&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; YAHOO_SERVICE_LOGON&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; = 0x01&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:version:1.11a:oldid:3112:newid:3114 --&gt;
&lt;/table&gt;</summary>
		<author><name>Ingerul</name></author>	</entry>

	<entry>
		<id>http://wiki.linux360.ro/index.php?title=Protocolul_Yahoo!_Messenger&amp;diff=3112&amp;oldid=prev</id>
		<title>Ingerul: articolul original de pe wikipedia</title>
		<link rel="alternate" type="text/html" href="http://wiki.linux360.ro/index.php?title=Protocolul_Yahoo!_Messenger&amp;diff=3112&amp;oldid=prev"/>
				<updated>2006-11-09T14:56:24Z</updated>
		
		<summary type="html">&lt;p&gt;articolul original de pe wikipedia&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== The YMSG packet structure ==&lt;br /&gt;
The YMSG packet structure is as follows:&lt;br /&gt;
&lt;br /&gt;
(each byte is represented by 5 spaces in the following diagram,&lt;br /&gt;
including the | at the end)&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;------- 4B -------&amp;gt;&amp;lt;------- 4B -------&amp;gt;&amp;lt;---2B---&amp;gt;&lt;br /&gt;
    +-------------------+-------------------+---------+&lt;br /&gt;
    |   Y   M   S   G   |      version      | pkt_len |&lt;br /&gt;
    +---------+---------+---------+---------+---------+&lt;br /&gt;
    | service |      status       |    session_id     |&lt;br /&gt;
    +---------+-------------------+-------------------+&lt;br /&gt;
    |                                                 |&lt;br /&gt;
    :                    D A T A                      :&lt;br /&gt;
    |                   0 - 65535*                    |&lt;br /&gt;
    +-------------------------------------------------+&lt;br /&gt;
    &lt;br /&gt;
*65535 is the theoretical limit, since the length field is two bytes&lt;br /&gt;
long.  Practically though, the data section does not exceed about 1000&lt;br /&gt;
bytes.&lt;br /&gt;
&lt;br /&gt;
All numeric fields are stored in network byte order.  i.e. Most &lt;br /&gt;
significant byte first.&lt;br /&gt;
&lt;br /&gt;
YMSG    - The first four bytes of all packets are always YMSG - the           protocol name.&lt;br /&gt;
&lt;br /&gt;
version - The next four bytes are for the protocol version number.&lt;br /&gt;
          For version 9, these are 0x09 0x00 0x00 0x00&lt;br /&gt;
          NOTE: The last three bytes of this may just be padding bytes.&lt;br /&gt;
&lt;br /&gt;
pkt_len - A two byte value, in network byte order, stating how many bytes are in the _data_ section of the packet.  In practice, this value does not exceed about 1000.&lt;br /&gt;
&lt;br /&gt;
service - This is an opcode that tells the client/server what kind of           service is requested/being responded to.  There are 45 known       services.  See the services section of this document for a full listing.&lt;br /&gt;
&lt;br /&gt;
status  - In case of a response from the server, indicates the status          of the request (success/failure/etc.).  For a request, it is 0 in most cases, except for packets that set the user's status (set status, typing notify, etc.)&lt;br /&gt;
&lt;br /&gt;
session - The session id is used primarily when connecting through a HTTP &lt;br /&gt;
id proxy.  It is set in all cases, but has no effect in a direct           connection.  When the client sends the first packet, it is 0, the server responds with a session id that is used by the client and the server in all further packets.  The server may change the session id, in which case the client must use the new session id henceforth.&lt;br /&gt;
&lt;br /&gt;
DATA    - The data section is pkt_len bytes long and consists of a series          of key/value pairs.  All keys are numeric strings.  The packet      contains their numeric values in the ASCII character set.  e.g.&lt;br /&gt;
          1 == 0x31, 21 == 0x32 0x31&lt;br /&gt;
The maximum number of digits in a key is unknown, although keys           of up to three digits have been seen. Every key and value is terminated by a two byte sequence of 0xc0 0x80.  Some keys may have empty values.          The actual keys sent, and their meanings depend on the service in use.&lt;br /&gt;
e.g. The packet data to send an instant message looks like this:&lt;br /&gt;
&lt;br /&gt;
          0x30 0xc080 yahoo_id 0xc080 0x31 0xc080 active_id 0xc080 0x35 &lt;br /&gt;
          0xc080 recipient_id 0xc080 0x3134 0xc080 message_text 0xc080&lt;br /&gt;
&lt;br /&gt;
The 0xc080 byte sequence is a separator.  The values 0x30, 0x31, 0x35 and 0x3134 are the keys.  Convert them to their ASCII equivalents and you get 0, 1, 5, 14  (0x3134 == 0x31 0x34)&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
There are 45 known services at the moment, although more may exist.  All &lt;br /&gt;
known services are listed below along with the hex values that they &lt;br /&gt;
correspond to.  Any service without a hex value is one more than the &lt;br /&gt;
previous value.  i.e. YAHOO_SERVICE_LOGOFF=0x02 and &lt;br /&gt;
YAHOO_SERVICE_ISBACK=0x04.&lt;br /&gt;
&lt;br /&gt;
        YAHOO_SERVICE_LOGON            = 0x01&lt;br /&gt;
        YAHOO_SERVICE_LOGOFF&lt;br /&gt;
        YAHOO_SERVICE_ISAWAY&lt;br /&gt;
        YAHOO_SERVICE_ISBACK&lt;br /&gt;
        YAHOO_SERVICE_IDLE             = 0x05&lt;br /&gt;
        YAHOO_SERVICE_MESSAGE&lt;br /&gt;
        YAHOO_SERVICE_IDACT&lt;br /&gt;
        YAHOO_SERVICE_IDDEACT&lt;br /&gt;
        YAHOO_SERVICE_MAILSTAT&lt;br /&gt;
        YAHOO_SERVICE_USERSTAT         = 0x0a&lt;br /&gt;
        YAHOO_SERVICE_NEWMAIL&lt;br /&gt;
        YAHOO_SERVICE_CHATINVITE&lt;br /&gt;
        YAHOO_SERVICE_CALENDAR&lt;br /&gt;
        YAHOO_SERVICE_NEWPERSONALMAIL&lt;br /&gt;
        YAHOO_SERVICE_NEWCONTACT       = 0x0f&lt;br /&gt;
        YAHOO_SERVICE_ADDIDENT         = 0x10&lt;br /&gt;
        YAHOO_SERVICE_ADDIGNORE&lt;br /&gt;
        YAHOO_SERVICE_PING&lt;br /&gt;
        YAHOO_SERVICE_GROUPRENAME&lt;br /&gt;
        YAHOO_SERVICE_SYSMESSAGE       = 0x14&lt;br /&gt;
        YAHOO_SERVICE_PASSTHROUGH2     = 0x16&lt;br /&gt;
        YAHOO_SERVICE_CONFINVITE       = 0x18&lt;br /&gt;
        YAHOO_SERVICE_CONFLOGON&lt;br /&gt;
        YAHOO_SERVICE_CONFDECLINE      = 0x1a&lt;br /&gt;
        YAHOO_SERVICE_CONFLOGOFF&lt;br /&gt;
        YAHOO_SERVICE_CONFADDINVITE&lt;br /&gt;
        YAHOO_SERVICE_CONFMSG&lt;br /&gt;
        YAHOO_SERVICE_CHATLOGON&lt;br /&gt;
        YAHOO_SERVICE_CHATLOGOFF       = 0x1f&lt;br /&gt;
        YAHOO_SERVICE_CHATMSG          = 0x20&lt;br /&gt;
        YAHOO_SERVICE_GAMELOGON        = 0x28&lt;br /&gt;
        YAHOO_SERVICE_GAMELOGOFF&lt;br /&gt;
        YAHOO_SERVICE_GAMEMSG          = 0x2a&lt;br /&gt;
        YAHOO_SERVICE_FILETRANSFER     = 0x46&lt;br /&gt;
        YAHOO_SERVICE_VOICECHAT        = 0x4a&lt;br /&gt;
        YAHOO_SERVICE_NOTIFY           = 0x4b&lt;br /&gt;
        YAHOO_SERVICE_P2PFILEXFER      = 0x4d&lt;br /&gt;
        YAHOO_SERVICE_PEERTOPEER       = 0x4f&lt;br /&gt;
        YAHOO_SERVICE_AUTHRESP         = 0x54&lt;br /&gt;
        YAHOO_SERVICE_LIST             = 0x55&lt;br /&gt;
        YAHOO_SERVICE_AUTH             = 0x57&lt;br /&gt;
        YAHOO_SERVICE_ADDBUDDY         = 0x83&lt;br /&gt;
        YAHOO_SERVICE_REMBUDDY         = 0x84&lt;br /&gt;
        YAHOO_SERVICE_IGNORECONTACT    = 0x85&lt;br /&gt;
        YAHOO_SERVICE_REJECTCONTACT    = 0x86&lt;br /&gt;
&lt;br /&gt;
Most of the service codes should be self explanatory.  Those that aren't &lt;br /&gt;
are listed here:&lt;br /&gt;
&lt;br /&gt;
        IDACT/IDDEACT - activate/deactivate an identity&lt;br /&gt;
        NOTIFY        - typing/game notification&lt;br /&gt;
        FILETRASNFER  - transfer a file using the yahoo filetransfer         server as an intermediate&lt;br /&gt;
        P2PFILEXFER   - transfer a file between two peers, yahoo server not used&lt;br /&gt;
        PEERTOPEER    - check if peer to peer connections are possible&lt;br /&gt;
        AUTH          - Send initial login packet (username), response contains challenge string&lt;br /&gt;
        AUTHRESP      - Send response to challenge string, or, if received from server, contains reason for login failure&lt;br /&gt;
        LOGON/LOGOFF  - a buddy logged in/out&lt;br /&gt;
&lt;br /&gt;
== Status codes ==&lt;br /&gt;
The status code is a four byte value.  Most status codes are two bytes &lt;br /&gt;
long.  The status codes (in decimal except for offline and typing) are:&lt;br /&gt;
&lt;br /&gt;
        YAHOO_STATUS_AVAILABLE    = 0&lt;br /&gt;
        YAHOO_STATUS_BRB&lt;br /&gt;
        YAHOO_STATUS_BUSY&lt;br /&gt;
        YAHOO_STATUS_NOTATHOME&lt;br /&gt;
        YAHOO_STATUS_NOTATDESK&lt;br /&gt;
        YAHOO_STATUS_NOTINOFFICE  = 5&lt;br /&gt;
        YAHOO_STATUS_ONPHONE&lt;br /&gt;
        YAHOO_STATUS_ONVACATION&lt;br /&gt;
        YAHOO_STATUS_OUTTOLUNCH&lt;br /&gt;
        YAHOO_STATUS_STEPPEDOUT   = 9&lt;br /&gt;
        YAHOO_STATUS_INVISIBLE    = 12&lt;br /&gt;
        YAHOO_STATUS_CUSTOM       = 99&lt;br /&gt;
        YAHOO_STATUS_IDLE         = 999&lt;br /&gt;
        YAHOO_STATUS_OFFLINE      = 0x5a55aa56&lt;br /&gt;
        YAHOO_STATUS_TYPING       = 0x16&lt;br /&gt;
&lt;br /&gt;
You may choose either AVAILABLE or INVISIBLE as your initial login status.  &lt;br /&gt;
TYPING is used only when sending a TYPING notification packet.&lt;br /&gt;
&lt;br /&gt;
== Session states ==&lt;br /&gt;
A Yahoo! session has two states, Authentication and Messaging.&lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
The session starts in the authentication state.  The client sends the username&lt;br /&gt;
to the server.  The server responds with a challenge string.  The client&lt;br /&gt;
responds to this challenge with two response strings.  If authentication is &lt;br /&gt;
successful, the connection goes into the messaging state, else, an error&lt;br /&gt;
response is sent back.&lt;br /&gt;
&lt;br /&gt;
=== Messaging state ===&lt;br /&gt;
After successful authentication, the session goes into the messaging state.&lt;br /&gt;
The server sends the buddy list, ignore list, identity list and a list of&lt;br /&gt;
cookies to the client.  These might all be sent in a single packet.  It then&lt;br /&gt;
sends the list of online buddies along with their status codes.  All this is&lt;br /&gt;
sent without the client requesting anything.&lt;br /&gt;
&lt;br /&gt;
At this time, any offline messages are also delivered to the client.&lt;br /&gt;
&lt;br /&gt;
In the messaging state, a client may send/receive messages, join conferences,&lt;br /&gt;
send/receive files, change state, etc.&lt;br /&gt;
&lt;br /&gt;
Messaging state is terminated when the user goes offline by sending a LOGOFF packet.&lt;br /&gt;
&lt;br /&gt;
== Requests ==&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
The first packet sent from the client is the authentication request &lt;br /&gt;
packet.  This consists of the user's yahoo id, or any identity &lt;br /&gt;
corresponding to that yahoo id.  The AUTH packet has one key/value pair.&lt;br /&gt;
&lt;br /&gt;
	service: YAHOO_SERVICE_AUTH&lt;br /&gt;
	status:  YAHOO_STATUS_AVAILABLE&lt;br /&gt;
&lt;br /&gt;
	1: yahoo_id&lt;br /&gt;
&lt;br /&gt;
The server responds with a Challenge string.  The client then hashes the &lt;br /&gt;
username and password with this challenge string, and sends it back as an &lt;br /&gt;
AUTH_RESP packet.&lt;br /&gt;
&lt;br /&gt;
	service: YAHOO_SERVICE_AUTHRESP&lt;br /&gt;
	status:  initial login status&lt;br /&gt;
&lt;br /&gt;
	0: yahoo_id&lt;br /&gt;
	6: response_string_1&lt;br /&gt;
	96: response_string_2&lt;br /&gt;
	1: active_id&lt;br /&gt;
&lt;br /&gt;
=== Sending a message ===&lt;br /&gt;
&lt;br /&gt;
	service: YAHOO_SERVICE_MESSAGE&lt;br /&gt;
	status:  0&lt;br /&gt;
&lt;br /&gt;
	0: yahoo_id&lt;br /&gt;
	1: active_id&lt;br /&gt;
	5: recipient_id&lt;br /&gt;
	14: message to send&lt;br /&gt;
&lt;br /&gt;
=== Send typing start/stop notification ===&lt;br /&gt;
&lt;br /&gt;
	'''''service''''': YAHOO_SERVICE_NOTIFY&lt;br /&gt;
	status:  YAHOO_STATUS_TYPING&lt;br /&gt;
&lt;br /&gt;
	4: active_id&lt;br /&gt;
	5: recipient_id&lt;br /&gt;
	13: 1 or 0 depending on whether this is a typing start or stop             packet&lt;br /&gt;
	14: &amp;lt;space&amp;gt;&lt;br /&gt;
	49: TYPING	/* The literal string */&lt;br /&gt;
&lt;br /&gt;
=== Set status ===&lt;br /&gt;
	service: YAHOO_SERVICE_ISBACK or YAHOO_SERVICE_ISAWAY&lt;br /&gt;
	status:  the status to set to&lt;br /&gt;
&lt;br /&gt;
	10: status_code&lt;br /&gt;
	if custom_status:&lt;br /&gt;
		19: custom away message&lt;br /&gt;
		47: 0 or 1 depending on whether it is away or not&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Logoff ===&lt;br /&gt;
&lt;br /&gt;
	service: YAHOO_SERVICE_LOGOFF&lt;br /&gt;
	status:  YAHOO_STATUS_AVAILABLE&lt;br /&gt;
&lt;br /&gt;
	no key value pairs&lt;br /&gt;
&lt;br /&gt;
=== Keep alive - sent every 20 minutes ===&lt;br /&gt;
&lt;br /&gt;
	service: YAHOO_SERVICE_PING&lt;br /&gt;
	status:  YAHOO_STATUS_AVAILABLE&lt;br /&gt;
&lt;br /&gt;
	no key value pairs&lt;br /&gt;
&lt;br /&gt;
=== Add buddy ===&lt;br /&gt;
&lt;br /&gt;
	service: YAHOO_SERVICE_ADDBUDDY&lt;br /&gt;
	status:  YAHOO_STATUS_AVAILABLE&lt;br /&gt;
&lt;br /&gt;
	1: yahoo_id&lt;br /&gt;
	7: buddy_to_add&lt;br /&gt;
	65: group to add to&lt;br /&gt;
&lt;br /&gt;
=== Remove buddy ===&lt;br /&gt;
&lt;br /&gt;
	service: YAHOO_SERVICE_REMBUDDY&lt;br /&gt;
	status:  YAHOO_STATUS_AVAILABLE&lt;br /&gt;
&lt;br /&gt;
	1: yahoo_id&lt;br /&gt;
	7: buddy_to_remove&lt;br /&gt;
	65: group to remove from&lt;br /&gt;
&lt;br /&gt;
=== Reject buddy add ===&lt;br /&gt;
&lt;br /&gt;
	service: YAHOO_SERVICE_REJECTCONTACT&lt;br /&gt;
	status:  YAHOO_STATUS_AVAILABLE&lt;br /&gt;
&lt;br /&gt;
	1: yahoo_idnnm,&lt;br /&gt;
	7: buddy_to_reject&lt;br /&gt;
	14: reject message&lt;br /&gt;
==See also==&lt;br /&gt;
*[[YMSG]]&lt;br /&gt;
*[[Comparison of instant messaging protocols]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://jymsg9.sourceforge.net  YMSG Java API - Yahoo! Instant Messenger Support for Java]&lt;br /&gt;
* [http://hamsam.sourceforge.net Hamsam - Multi-protocol instant messaging API for Java]&lt;br /&gt;
* [http://libyahoo2.sourceforge.net libyahoo2 - A C library for Yahoo! Messenger]&lt;br /&gt;
* [http://cpan.uwinnipeg.ca/htdocs/Net-YMSG/Net/YMSG.html Net::YMSG - Perl Interface to the Yahoo! Messenger IM protocol]&lt;br /&gt;
* [http://www.yaheh.ca/ YahEh - Open Source VB Yahoo Chat Client]&lt;br /&gt;
&lt;br /&gt;
==Observatii==&lt;br /&gt;
M-am apucat de studiat protocolul folosit de Yahoo! Messenger deoarece vreau sa-l folosesc intr-un proiect. Articolul de fata l-am luat de pe wikipedia, si reprezinta cea mai buna documentatie legata de acest protocol pe care am putut-o gasi pe internet. Daca voi stiti si alte surse, va rog sa-mi spuneti.&lt;br /&gt;
&lt;br /&gt;
In privinta articolului voi urma urmatorii pasi:&lt;br /&gt;
* reformatarea si corectarea articolului original in engleza&lt;br /&gt;
* contributie la wikipedia&lt;br /&gt;
* completarea articolului cu observatiile mele legate de acest protocol&lt;br /&gt;
* contributie la wikipedia (daca voi fi multumit de ce iese)&lt;br /&gt;
* traducere in limba romana (daca voi avea timp)&lt;/div&gt;</summary>
		<author><name>Ingerul</name></author>	</entry>

	</feed>