[7a1c90d] | 1 | <?xml version="1.0"?> |
---|
| 2 | <!DOCTYPE oscar SYSTEM "Protocol.dtd"> |
---|
| 3 | |
---|
| 4 | <oscar> |
---|
| 5 | |
---|
| 6 | <!-- OSCAR primitives --> |
---|
| 7 | |
---|
| 8 | <define name="flap"> |
---|
| 9 | <byte>42</byte> <!-- FLAP packet start indicator --> |
---|
| 10 | <byte name="channel">2</byte> |
---|
| 11 | <word name="seqno" /> |
---|
| 12 | <data length_prefix="word" name="msg" /> |
---|
| 13 | </define> |
---|
| 14 | |
---|
| 15 | <define name="snac"> |
---|
| 16 | <word name="family" /> |
---|
| 17 | <word name="subtype" /> |
---|
| 18 | <byte name="flags1" /> |
---|
| 19 | <byte name="flags2" /> |
---|
| 20 | <dword name="reqid" /> |
---|
| 21 | <data name="data" /> |
---|
| 22 | </define> |
---|
| 23 | |
---|
| 24 | <define name="TLV"> |
---|
| 25 | <word name="type" /> |
---|
| 26 | <data length_prefix="word" name="data" /> |
---|
| 27 | </define> |
---|
| 28 | <define name="subtyped_TLV"> |
---|
| 29 | <word name="type" /> |
---|
| 30 | <byte name="subtype" /> |
---|
| 31 | <data length_prefix="byte" name="data" /> |
---|
| 32 | </define> |
---|
| 33 | |
---|
| 34 | |
---|
| 35 | <define name="userinfo"> |
---|
| 36 | <data name="screenname" length_prefix="byte" /> |
---|
| 37 | <word name="evil" /> |
---|
| 38 | <tlvchain count_prefix="word"> |
---|
| 39 | <tlv type="1"><word name="flags" /></tlv> |
---|
| 40 | <tlv type="2"><dword name="membersince" /></tlv> |
---|
| 41 | <tlv type="3"><dword name="onsince" /></tlv> |
---|
| 42 | <tlv type="4"><word name="idle" /></tlv> |
---|
| 43 | <tlv type="13"><data length="16" count="-1" name="capabilities" /></tlv> |
---|
| 44 | <tlv type="25"><data length="2" count="-1" name="shortcaps" /></tlv> |
---|
| 45 | <tlv type="29"> |
---|
| 46 | <tlvchain subtyped="yes"> |
---|
| 47 | <tlv type="1" subtype="1"><data name="icon_md5sum" /></tlv> |
---|
| 48 | <tlv type="2" subtype="-1"><data length_prefix="word" name="extended_status" /></tlv> |
---|
| 49 | </tlvchain> |
---|
| 50 | </tlv> |
---|
| 51 | |
---|
| 52 | <tlv type="5"> <!-- Only found in channel 3 IMs, why is it in this structure??? --> |
---|
| 53 | <tlvchain> |
---|
| 54 | <tlv type="12"><data name="invitation_message" /></tlv> |
---|
| 55 | <tlv type="10001"> |
---|
| 56 | <word /> |
---|
| 57 | <data length_prefix="byte" name="chat_url" /> |
---|
| 58 | </tlv> |
---|
| 59 | </tlvchain> |
---|
| 60 | </tlv> |
---|
| 61 | |
---|
| 62 | |
---|
| 63 | <!-- Self-info only --> |
---|
| 64 | <tlv type="15"><dword name="session_length" /></tlv> |
---|
| 65 | <tlv type="10"><dword name="ip" /></tlv> |
---|
| 66 | |
---|
| 67 | <!-- This contains a second copy of this structure - why?! --> |
---|
| 68 | <tlv type="512" name="sub_info" /> |
---|
| 69 | </tlvchain> |
---|
| 70 | </define> |
---|
| 71 | |
---|
| 72 | |
---|
| 73 | <!-- Random protocol crap --> |
---|
| 74 | |
---|
| 75 | <define name="service_request" family="1" subtype="4"> |
---|
| 76 | <word name="type" /> |
---|
| 77 | |
---|
| 78 | <!-- Chat extra --> |
---|
| 79 | <tlvchain> |
---|
| 80 | <tlv type="1" name="chat"> |
---|
| 81 | <word name="exchange" /> |
---|
| 82 | <data length_prefix="byte" name="url" /> |
---|
| 83 | <word>0</word> |
---|
| 84 | </tlv> |
---|
| 85 | </tlvchain> |
---|
| 86 | </define> |
---|
| 87 | <define name="error" family="-1" subtype="1"> |
---|
| 88 | <word name="errno" /> |
---|
| 89 | <tlvchain> |
---|
| 90 | <tlv type="4"><data name="error_details" /></tlv> |
---|
| 91 | </tlvchain> |
---|
| 92 | </define> |
---|
| 93 | <define name="service_redirect_response" family="1" subtype="5"> |
---|
| 94 | <tlvchain> |
---|
| 95 | <tlv type="13"><word name="service_type" /></tlv> |
---|
| 96 | <tlv type="6"><data name="auth_cookie" /></tlv> |
---|
| 97 | <tlv type="5"><data name="server_ip" /></tlv> |
---|
| 98 | </tlvchain> |
---|
| 99 | </define> |
---|
| 100 | |
---|
| 101 | |
---|
| 102 | <!-- Signing on --> |
---|
| 103 | |
---|
| 104 | <define name="BOS_signon" family="0" subtype="1" channel="1" flags2="6"> |
---|
| 105 | <data name="cookie" /> |
---|
| 106 | </define> |
---|
| 107 | |
---|
| 108 | <define name="signon" family="23" subtype="2"> |
---|
| 109 | <tlvchain> |
---|
| 110 | <tlv type="1"><data name="screenname" /></tlv> |
---|
| 111 | |
---|
| 112 | <!-- For AIM-style signons --> |
---|
| 113 | <tlv type="37"><data name="auth_response" /></tlv> |
---|
| 114 | <!-- |
---|
| 115 | Set this if the password was hashed before putting |
---|
| 116 | it into the auth_response |
---|
| 117 | --> |
---|
| 118 | <tlv type="76"><data name="pass_is_hashed" /></tlv> |
---|
| 119 | |
---|
| 120 | <!-- For ICQ-style signons --> |
---|
| 121 | <tlv type="2"><data name="password" /></tlv> |
---|
| 122 | |
---|
| 123 | <tlv type="3"><data name="clistr" /></tlv> |
---|
| 124 | <tlv type="22"><word name="supermajor" /></tlv> |
---|
| 125 | <tlv type="23"><word name="major" /></tlv> |
---|
| 126 | <tlv type="24"><word name="minor" /></tlv> |
---|
| 127 | <tlv type="25"><word name="subminor" /></tlv> |
---|
| 128 | <tlv type="26"><word name="build" /></tlv> |
---|
| 129 | <tlv type="20"><dword name="subbuild" /></tlv> |
---|
| 130 | <tlv type="15"><data>en</data></tlv> |
---|
| 131 | <tlv type="14"><data>us</data></tlv> |
---|
| 132 | <tlv type="74"><byte>1</byte></tlv> |
---|
| 133 | </tlvchain> |
---|
| 134 | </define> |
---|
| 135 | <define name="ICQ_signon_request" channel="1"> |
---|
| 136 | <dword>1</dword> |
---|
| 137 | <ref name="signon" /> |
---|
| 138 | </define> |
---|
| 139 | |
---|
| 140 | <define name="initial_signon_request" family="23" subtype="6"> |
---|
| 141 | <tlvchain> |
---|
| 142 | <tlv type="1"><data name="screenname" /></tlv> |
---|
| 143 | <tlv type="75" default_generate="yes" /> |
---|
| 144 | <tlv type="90" default_generate="yes" /> |
---|
| 145 | </tlvchain> |
---|
| 146 | </define> |
---|
| 147 | |
---|
| 148 | <!-- How server sends challenge for challenge/response authentication to client --> |
---|
| 149 | <define name="authentication_key" family="23" subtype="7"> |
---|
| 150 | <data name="key" length_prefix="word" /> |
---|
| 151 | </define> |
---|
| 152 | |
---|
| 153 | <!-- Random crap that's part of signon, protocol negotiation --> |
---|
| 154 | <define name="authorization_response" family="23" subtype="3"> |
---|
| 155 | <tlvchain> |
---|
| 156 | <!-- If there's an error --> |
---|
| 157 | <tlv type="8"><word name="error" /></tlv> |
---|
| 158 | <tlv type="4"><data name="error_details" /></tlv> |
---|
| 159 | |
---|
| 160 | <!-- Basic info --> |
---|
| 161 | <tlv type="1"><data name="screenname" /></tlv> |
---|
| 162 | <tlv type="17"><data name="email" /></tlv> |
---|
| 163 | <tlv type="6"><data name="auth_cookie" /></tlv> |
---|
| 164 | <tlv type="5"><data name="server_ip" /></tlv> |
---|
| 165 | |
---|
| 166 | <!-- Other stuff --> |
---|
| 167 | <tlv type="19"><word name="registration_status" /></tlv> |
---|
| 168 | <tlv type="84"><data name="password_change_url" /></tlv> |
---|
| 169 | </tlvchain> |
---|
| 170 | </define> |
---|
| 171 | <define name="rate_class_info"> |
---|
| 172 | <word name="class_id" /> |
---|
| 173 | <dword name="window_size" /> |
---|
| 174 | <data name="levels"> |
---|
| 175 | <dword name="clear" /> |
---|
| 176 | <dword name="alert" /> |
---|
| 177 | <dword name="limit" /> |
---|
| 178 | <dword name="disconnect" /> |
---|
| 179 | <dword name="current" /> |
---|
| 180 | <dword name="max" /> |
---|
| 181 | </data> |
---|
| 182 | <dword name="last_time" /> |
---|
| 183 | <byte name="current_state" /> |
---|
| 184 | </define> |
---|
| 185 | <define name="rate_info_response" family="1" subtype="7"> |
---|
| 186 | <data count_prefix="word" name="classes"> |
---|
| 187 | <ref name="rate_class_info" /> |
---|
| 188 | </data> |
---|
| 189 | <data count="-1" name="classmembers"> |
---|
| 190 | <word name="class_id" /> |
---|
| 191 | <data count_prefix="word" name="snacs"> |
---|
| 192 | <word name="family" /> |
---|
| 193 | <word name="subtype" /> |
---|
| 194 | </data> |
---|
| 195 | </data> |
---|
| 196 | </define> |
---|
| 197 | <define name="rate_acknowledgement" family="1" subtype="8"> |
---|
| 198 | <word count="-1" name="classes" /> |
---|
| 199 | </define> |
---|
| 200 | <define name="personal_info_request" family="1" subtype="14" /> |
---|
| 201 | <define name="buddylist_rights_request" family="19" subtype="2" /> |
---|
| 202 | <define name="buddylist_request" family="19" subtype="4" /> |
---|
| 203 | |
---|
| 204 | <define name="locate_rights_request" family="2" subtype="2" /> |
---|
| 205 | <define name="locate_rights_response" family="2" subtype="3"> |
---|
| 206 | <tlvchain> |
---|
| 207 | <tlv type="1"><word name="max_profile_len">1024</word></tlv> |
---|
| 208 | <tlv type="2"><word name="max_capabilities">16</word></tlv> |
---|
| 209 | <tlv type="3"><word>10</word></tlv> |
---|
| 210 | <tlv type="4"><word>4096</word></tlv> |
---|
| 211 | </tlvchain> |
---|
| 212 | </define> |
---|
| 213 | |
---|
| 214 | <define name="buddy_rights_request" family="3" subtype="2" /> |
---|
| 215 | <define name="buddy_rights_response" family="3" subtype="3"> |
---|
| 216 | <tlvchain> |
---|
| 217 | <tlv type="1"><word name="maxbuddies">600</word></tlv> |
---|
| 218 | <tlv type="2"><word name="maxwatchers">750</word></tlv> |
---|
| 219 | <tlv type="3"><word name="maxnotifies">512</word></tlv> |
---|
| 220 | </tlvchain> |
---|
| 221 | </define> |
---|
| 222 | |
---|
| 223 | <define name="IM_parameters"> |
---|
| 224 | <word name="channel">0</word> |
---|
| 225 | <dword name="flags">3</dword> |
---|
| 226 | <word name="max_size">8000</word> |
---|
| 227 | <word name="max_send_warn">999</word> |
---|
| 228 | <word name="max_recv_warn">999</word> |
---|
| 229 | <word name="min_msg_interval">0</word> |
---|
| 230 | <word>0</word> |
---|
| 231 | </define> |
---|
| 232 | <define name="add_IM_parameters" family="4" subtype="2"><ref name="IM_parameters" /></define> |
---|
| 233 | <define name="IM_parameter_request" family="4" subtype="4"><ref name="IM_parameters" /></define> |
---|
| 234 | <define name="IM_parameter_response" family="4" subtype="5"><ref name="IM_parameters" /></define> |
---|
| 235 | |
---|
| 236 | <define name="BOS_rights_request" family="9" subtype="2" /> |
---|
| 237 | <define name="BOS_rights_response" family="9" subtype="3"> |
---|
| 238 | <tlvchain> |
---|
| 239 | <tlv type="1"><word name="max_permits">200</word></tlv> |
---|
| 240 | <tlv type="2"><word name="max_denies">200</word></tlv> |
---|
| 241 | </tlvchain> |
---|
| 242 | </define> |
---|
| 243 | |
---|
| 244 | <define name="self_information" family="1" subtype="15"><ref name="userinfo" /></define> |
---|
| 245 | <define name="minimum_report_interval" family="11" subtype="2" /> |
---|
| 246 | <define name="MOTD" family="1" subtype="19" /> |
---|
| 247 | <define name="server_ready" family="1" subtype="3"> |
---|
| 248 | <word count="-1" name="families" /> |
---|
| 249 | </define> |
---|
| 250 | <define name="set_service_versions" family="1" subtype="23"> |
---|
| 251 | <data count="-1" name="service"> |
---|
| 252 | <word name="service_id" /> |
---|
| 253 | <word name="service_version" /> |
---|
| 254 | </data> |
---|
| 255 | </define> |
---|
| 256 | <define name="set_tool_versions" family="1" subtype="2"> |
---|
| 257 | <data count="-1" name="service"> |
---|
| 258 | <word name="service_id" /> |
---|
| 259 | <word name="service_version" /> |
---|
| 260 | <word name="tool_id" /> |
---|
| 261 | <word name="tool_version" /> |
---|
| 262 | </data> |
---|
| 263 | </define> |
---|
| 264 | <define name="rate_info_request" family="1" subtype="6" /> |
---|
| 265 | <define name="rate_change" family="1" subtype="10"> |
---|
| 266 | <enum type="word" name="message_type"> |
---|
| 267 | <edef name="change" value="1" /> |
---|
| 268 | <edef name="warning" value="2" /> |
---|
| 269 | <edef name="alert" value="3" /> |
---|
| 270 | <edef name="clear" value="4" /> |
---|
| 271 | </enum> |
---|
| 272 | <ref name="rate_class_info" /> |
---|
| 273 | </define> |
---|
| 274 | <define name="outgoing_warning" family="4" subtype="8"> |
---|
| 275 | <word name="is_anonymous" /> |
---|
| 276 | <data name="screenname" length_prefix="byte" /> |
---|
| 277 | </define> |
---|
| 278 | <define name="incoming_warning" family="1" subtype="16"> |
---|
| 279 | <word name="new_level" /> |
---|
| 280 | <ref name="userinfo" /> |
---|
| 281 | </define> |
---|
| 282 | <define name="memory_request" family="1" subtype="31" /> <!-- This was an attempt to block third-party clients by requesting MD5s of portions of the AIM.EXE binary; it is no longer used, huzzah --> |
---|
| 283 | <define name="host_versions" family="1" subtype="24"> |
---|
| 284 | <data count="-1" name="server"> |
---|
| 285 | <word name="service_id" /> |
---|
| 286 | <word name="service_version" /> |
---|
| 287 | </data> |
---|
| 288 | </define> |
---|
| 289 | <define name="buddylist_done" family="19" subtype="7" /> |
---|
| 290 | |
---|
| 291 | |
---|
| 292 | |
---|
| 293 | <!-- Buddylist stuff --> |
---|
| 294 | |
---|
| 295 | <define name="buddylist_3_response" family="19" subtype="3"> |
---|
| 296 | <tlvchain> |
---|
| 297 | <tlv type="4"><word count="-1" name="maximums" /></tlv> |
---|
| 298 | <tlv type="2"><word>254</word></tlv> |
---|
| 299 | <tlv type="3"><word>508</word></tlv> |
---|
| 300 | <tlv type="5"><word>0</word></tlv> |
---|
| 301 | <tlv type="6"><word>97</word></tlv> |
---|
| 302 | <tlv type="7"><word>10</word></tlv> |
---|
| 303 | </tlvchain> |
---|
| 304 | </define> |
---|
| 305 | <define name="buddylist" family="19" subtype="6"> <!-- This is supremely weird and fucked up, no bloody way we'll be able to get it in the XML; notably, it is split across multiple SNACs, but not on any sort of coherent boundary, and you have to slice random bits off the front and back... See OSCAR/Callbacks.pm handler for this protobit. --> |
---|
| 306 | <data name="data" /> |
---|
| 307 | </define> |
---|
| 308 | <define name="buddylist_modification_acknowledgement" family="19" subtype="14"> |
---|
| 309 | <word name="error" count="-1" /> |
---|
| 310 | </define> |
---|
| 311 | <define name="buddylist_error" family="19" subtype="15"> |
---|
| 312 | <data name="data" /> |
---|
| 313 | </define> |
---|
| 314 | |
---|
| 315 | <!-- Packets are limited to 8k in size, which we could exceed if we try to put too many |
---|
| 316 | modifications into one packet. Since we need to flatten one modification at a time |
---|
| 317 | and stop when we hit the size cap, this stuff is a bit peculiar. --> |
---|
| 318 | <define name="buddylist_modification"> |
---|
| 319 | <data name="entry_name" length_prefix="word" /> |
---|
| 320 | <word name="group_id" /> |
---|
| 321 | <word name="buddy_id" /> |
---|
| 322 | <word name="entry_type" /> |
---|
| 323 | <data name="entry_data" length_prefix="word" /> |
---|
| 324 | </define> |
---|
| 325 | <define name="buddylist_add" family="19" subtype="8"><data name="mods" /></define> |
---|
| 326 | <define name="buddylist_modify" family="19" subtype="9"><data name="mods" /></define> |
---|
| 327 | <define name="buddylist_delete" family="19" subtype="10"><data name="mods" /></define> |
---|
| 328 | |
---|
| 329 | <!-- We also provide this more regular version for use in parsing changes sent by the server --> |
---|
| 330 | <define name="buddylist_change"> |
---|
| 331 | <data name="changes" count="-1"> |
---|
| 332 | <ref name="buddylist_modification" /> |
---|
| 333 | </data> |
---|
| 334 | </define> |
---|
| 335 | |
---|
| 336 | <define name="start_buddylist_modifications" family="19" subtype="17" /> |
---|
| 337 | <define name="end_buddylist_modifications" family="19" subtype="18" /> |
---|
| 338 | |
---|
| 339 | |
---|
| 340 | |
---|
| 341 | <!-- User information --> |
---|
| 342 | |
---|
| 343 | <define name="get_info" family="2" subtype="21"> |
---|
| 344 | <word>0</word> |
---|
| 345 | <word>1</word> |
---|
| 346 | <data length_prefix="byte" name="screenname" /> |
---|
| 347 | </define> |
---|
| 348 | <define name="get_away" family="2" subtype="21"> |
---|
| 349 | <word>0</word> |
---|
| 350 | <word>3</word> |
---|
| 351 | <data length_prefix="byte" name="screenname" /> |
---|
| 352 | </define> |
---|
| 353 | <define name="incoming_profile" family="2" subtype="6"> |
---|
| 354 | <ref name="userinfo" /> |
---|
| 355 | <tlvchain> |
---|
| 356 | <tlv type="2"><data name="profile" /></tlv> |
---|
| 357 | <tlv type="4"><data name="awaymsg" /></tlv> |
---|
| 358 | </tlvchain> |
---|
| 359 | </define> |
---|
| 360 | |
---|
| 361 | <define name="set_info" family="2" subtype="4"> |
---|
| 362 | <tlvchain> |
---|
| 363 | <tlv type="1"><data name="profile_mimetype" /></tlv> |
---|
| 364 | <tlv type="2"><data name="profile" /></tlv> |
---|
| 365 | |
---|
| 366 | <tlv type="3"><data name="awaymsg_mimetype" /></tlv> |
---|
| 367 | <tlv type="4"><data name="awaymsg" /></tlv> |
---|
| 368 | |
---|
| 369 | <tlv type="5"><data name="capabilities" length="16" count="-1" /></tlv> |
---|
| 370 | <tlv type="6"> |
---|
| 371 | <tlvchain><tlv type="4"><word>2</word></tlv></tlvchain> |
---|
| 372 | </tlv> |
---|
| 373 | </tlvchain> |
---|
| 374 | </define> |
---|
| 375 | |
---|
| 376 | <define name="set_idle" family="1" subtype="17"> |
---|
| 377 | <dword name="duration" /> |
---|
| 378 | </define> |
---|
| 379 | |
---|
| 380 | <!-- Extended information --> |
---|
| 381 | |
---|
| 382 | <define name="typing_notification" family="4" subtype="20"> |
---|
| 383 | <dword>0</dword> |
---|
| 384 | <dword>0</dword> |
---|
| 385 | <word>1</word> |
---|
| 386 | <data length_prefix="byte" name="screenname" /> |
---|
| 387 | <word name="typing_status" /> |
---|
| 388 | </define> |
---|
| 389 | |
---|
| 390 | <define name="incoming_extended_information" family="1" subtype="33"> |
---|
| 391 | <!-- Gee, thank you for this wonderful structure, AOL... Love you too. --> |
---|
| 392 | <!-- Only one item in the TLV chain will be present, client should key off of which one --> |
---|
| 393 | <tlvchain subtyped="yes"> |
---|
| 394 | <tlv type="0" subtype="65"><data name="upload_checksum" /></tlv> |
---|
| 395 | <tlv type="1" subtype="65"><data name="upload_checksum" /></tlv> |
---|
| 396 | |
---|
| 397 | <tlv type="0" subtype="129"><data name="resend_checksum" /></tlv> |
---|
| 398 | <tlv type="1" subtype="129"><data name="resend_checksum" /></tlv> |
---|
| 399 | |
---|
| 400 | <tlv type="2" subtype="-1"><data length_prefix="word" name="status_message" /></tlv> |
---|
| 401 | </tlvchain> |
---|
| 402 | </define> |
---|
| 403 | |
---|
| 404 | <define name="set_extended_status" family="1" subtype="30"> |
---|
| 405 | <tlvchain> |
---|
| 406 | <tlv type="29" name="status_message"> |
---|
| 407 | <word>2</word> |
---|
| 408 | <byte>4</byte> |
---|
| 409 | <data length_prefix="byte"> |
---|
| 410 | <data length_prefix="word" name="message" /> |
---|
| 411 | <word>0</word> |
---|
| 412 | </data> |
---|
| 413 | </tlv> |
---|
| 414 | <tlv type="6" name="stealth"> |
---|
| 415 | <!-- |
---|
| 416 | 0x100 is the 'stealth' flag |
---|
| 417 | Presumably there are other things that can go here... |
---|
| 418 | --> |
---|
| 419 | <dword name="state" /> |
---|
| 420 | </tlv> |
---|
| 421 | </tlvchain> |
---|
| 422 | </define> |
---|
| 423 | |
---|
| 424 | <define name="icon_upload" family="16" subtype="2"> |
---|
| 425 | <tlvchain> |
---|
| 426 | <tlv type="1"><data name="icon" /></tlv> |
---|
| 427 | </tlvchain> |
---|
| 428 | </define> |
---|
| 429 | |
---|
| 430 | |
---|
| 431 | |
---|
| 432 | <!-- Buddylist --> |
---|
| 433 | |
---|
| 434 | <define name="buddy_status_update" family="3" subtype="11"> |
---|
| 435 | <ref name="userinfo" /> |
---|
| 436 | </define> |
---|
| 437 | <define name="buddy_signoff" family="3" subtype="12"> |
---|
| 438 | <data length_prefix="byte" name="screenname" /> |
---|
| 439 | </define> |
---|
| 440 | |
---|
| 441 | |
---|
| 442 | <!-- IMs --> |
---|
| 443 | |
---|
| 444 | <define name="standard_IM_header"> |
---|
| 445 | <data length="8" name="cookie" /> |
---|
| 446 | <word name="channel">1</word> |
---|
| 447 | </define> |
---|
| 448 | <define name="standard_IM_footer"> |
---|
| 449 | <tlvchain> |
---|
| 450 | <tlv type="2"> |
---|
| 451 | <tlvchain> |
---|
| 452 | <tlv type="1281"> |
---|
| 453 | <word>257</word> |
---|
| 454 | <word>257</word> |
---|
| 455 | </tlv> |
---|
| 456 | <tlv type="257"> |
---|
| 457 | <word>0</word> |
---|
| 458 | <word>0</word> |
---|
| 459 | <data name="message" /> |
---|
| 460 | </tlv> |
---|
| 461 | </tlvchain> |
---|
| 462 | </tlv> |
---|
| 463 | <tlv type="4" name="is_automatic" /> |
---|
| 464 | <tlv type="3" name="request_server_confirmation" /> |
---|
| 465 | <tlv type="11" name="supports_typing_status" /> |
---|
| 466 | <tlv type="8" name="icon_data"> |
---|
| 467 | <dword name="icon_length" /> |
---|
| 468 | <word>1</word> |
---|
| 469 | <word name="icon_checksum" /> |
---|
| 470 | <dword name="icon_timestamp" /> |
---|
| 471 | </tlv> |
---|
| 472 | </tlvchain> |
---|
| 473 | </define> |
---|
| 474 | <define name="rendezvous_IM"> |
---|
| 475 | <tlvchain> |
---|
| 476 | <tlv type="5"> |
---|
| 477 | <enum type="word" name="status"> |
---|
| 478 | <edef name="propose" value="0" /> |
---|
| 479 | <edef name="cancel" value="1" /> |
---|
| 480 | <edef name="accept" value="2" /> |
---|
| 481 | </enum> |
---|
| 482 | |
---|
| 483 | <data length="8" name="cookie" /> |
---|
| 484 | |
---|
| 485 | <!-- Indicates request type --> |
---|
| 486 | <data length="16" name="capability" /> |
---|
| 487 | |
---|
| 488 | <tlvchain> |
---|
| 489 | <!-- 1 == push, 2 == pull --> |
---|
| 490 | <tlv type="10"><word name="push_pull" /></tlv> |
---|
| 491 | <tlv type="11"><word name="error" /></tlv> |
---|
| 492 | <tlv type="15" default_generate="yes" /> |
---|
| 493 | |
---|
| 494 | <!-- File transfer stuff --> |
---|
| 495 | <tlv type="2"><dword name="client_1_ip" /></tlv> |
---|
| 496 | <tlv type="3"><dword name="client_2_ip" /></tlv> |
---|
| 497 | <tlv type="4"><dword name="client_external_ip" /></tlv> |
---|
| 498 | <tlv type="5"><word name="port" /></tlv> |
---|
| 499 | <tlv type="22"><dword name="proxy_ip" /></tlv> |
---|
| 500 | |
---|
| 501 | |
---|
| 502 | <!-- Proposal message --> |
---|
| 503 | <tlv type="12"><data name="invitation_msg" /></tlv> |
---|
| 504 | <tlv type="13"><data name="charset">us-ascii</data></tlv> |
---|
| 505 | <tlv type="14"><byte name="language">48</byte></tlv> |
---|
| 506 | |
---|
| 507 | <!-- See 'rendezvous service-specific data' --> |
---|
| 508 | <tlv type="10001"><data name="svcdata" /></tlv> |
---|
| 509 | <tlv type="10002"><data name="svcdata_charset" /></tlv> |
---|
| 510 | </tlvchain> |
---|
| 511 | </tlv> |
---|
| 512 | </tlvchain> |
---|
| 513 | </define> |
---|
| 514 | |
---|
| 515 | <define name="incoming_IM" family="4" subtype="7"> |
---|
| 516 | <ref name="standard_IM_header" /> |
---|
| 517 | <ref name="userinfo" /> |
---|
| 518 | <data name="message_body" /> |
---|
| 519 | </define> |
---|
| 520 | <define name="outgoing_IM" family="4" subtype="6"> |
---|
| 521 | <ref name="standard_IM_header" /> |
---|
| 522 | <data name="screenname" length_prefix="byte" /> |
---|
| 523 | <data name="message_body" /> |
---|
| 524 | </define> |
---|
| 525 | |
---|
| 526 | <define name="IM_acknowledgement" family="4" subtype="12"> |
---|
| 527 | <data length="8" name="cookie" /> |
---|
| 528 | <word name="channel" /> |
---|
| 529 | <data length_prefix="byte" name="screenname" /> |
---|
| 530 | </define> |
---|
| 531 | |
---|
| 532 | |
---|
| 533 | |
---|
| 534 | <!-- Chat --> |
---|
| 535 | |
---|
| 536 | <define name="chat_invitation_accept" family="13" subtype="4"> |
---|
| 537 | <word name="exchange">4</word> |
---|
| 538 | <data length_prefix="byte" name="url" /> |
---|
| 539 | <word>0</word> |
---|
| 540 | <byte>2</byte> |
---|
| 541 | </define> |
---|
| 542 | <define name="chat_invitation_decline" family="4" subtype="11"> |
---|
| 543 | <data length="8" name="cookie" /> |
---|
| 544 | <word name="channel">2</word> |
---|
| 545 | <data length_prefix="byte" name="screenname" /> |
---|
| 546 | <tlvchain> |
---|
| 547 | <!-- 0=not supported, 1=declined, 2=client is not accepting transfers --> |
---|
| 548 | <tlv type="3"><word name="code">1</word></tlv> |
---|
| 549 | </tlvchain> |
---|
| 550 | </define> |
---|
| 551 | |
---|
| 552 | <define name="chat_navigator_rights_request" family="13" subtype="2" /> |
---|
| 553 | <define name="chat_navigator_room_create" family="13" subtype="8"> |
---|
| 554 | <ref name="chat_room_info" /> |
---|
| 555 | </define> |
---|
| 556 | |
---|
| 557 | <define name="chat_data"> |
---|
| 558 | <tlvchain count_prefix="word"> |
---|
| 559 | <tlv type="106"><data name="name" /></tlv> |
---|
| 560 | <tlv type="111"><word name="occupant_count" /></tlv> |
---|
| 561 | <tlv type="115" name="occupants" count="-1"> |
---|
| 562 | <ref name="userinfo" /> |
---|
| 563 | </tlv> |
---|
| 564 | |
---|
| 565 | <tlv type="209"><word name="max_msg_len" /></tlv> |
---|
| 566 | <tlv type="211"><data name="name" /></tlv> |
---|
| 567 | <tlv type="214"><data name="charset">us-ascii</data></tlv> |
---|
| 568 | <tlv type="215" default_generate="yes"><data name="language">en</data></tlv> |
---|
| 569 | <tlv type="219"><data name="encoding" /></tlv> |
---|
| 570 | </tlvchain> |
---|
| 571 | </define> |
---|
| 572 | <define name="chat_room_info"> |
---|
| 573 | <word name="exchange" /> |
---|
| 574 | <data length_prefix="byte" name="url">create</data> |
---|
| 575 | <word name="instance">65535</word> |
---|
| 576 | <byte name="detail_level">1</byte> |
---|
| 577 | <ref name="chat_data" /> |
---|
| 578 | </define> |
---|
| 579 | <word /> |
---|
| 580 | <data length_prefix="byte"> |
---|
| 581 | <byte /> |
---|
| 582 | <data name="name" /> |
---|
| 583 | </data> |
---|
| 584 | <word /> |
---|
| 585 | <byte name="detail_level" /> |
---|
| 586 | <tlvchain count_prefix="word"> |
---|
| 587 | <tlv type="111"><word name="occupant_count" /></tlv> |
---|
| 588 | <tlv type="115"> |
---|
| 589 | <data name="occupants" count="-1"> |
---|
| 590 | <ref name="userinfo" /> |
---|
| 591 | </data> |
---|
| 592 | </tlv> |
---|
| 593 | </tlvchain> |
---|
| 594 | |
---|
| 595 | |
---|
| 596 | <define name="chat_navigator_response" family="13" subtype="9"> |
---|
| 597 | <tlvchain> |
---|
| 598 | <!-- These two come from the 'chat navigator rights request' --> |
---|
| 599 | <tlv type="2"><byte name="max_concurrent_rooms" /></tlv> |
---|
| 600 | <tlv type="3" count="-1" name="exchange"> |
---|
| 601 | <word name="exchange" /> |
---|
| 602 | <ref name="chat_data" /> |
---|
| 603 | </tlv> |
---|
| 604 | |
---|
| 605 | <!-- These two come from the create room request --> |
---|
| 606 | <tlv type="4" count="-1" name="room"> |
---|
| 607 | <ref name="chat_room_info" /> |
---|
| 608 | </tlv> |
---|
| 609 | </tlvchain> |
---|
| 610 | </define> |
---|
| 611 | |
---|
| 612 | |
---|
| 613 | <define name="chat_room_status" family="14" subtype="2"> |
---|
| 614 | <ref name="chat_room_info" /> |
---|
| 615 | </define> |
---|
| 616 | <define name="chat_buddy_arrival" family="14" subtype="3"> |
---|
| 617 | <data name="arrivals" count="-1"> |
---|
| 618 | <ref name="userinfo" /> |
---|
| 619 | </data> |
---|
| 620 | </define> |
---|
| 621 | <define name="chat_buddy_departure" family="14" subtype="4"> |
---|
| 622 | <data name="departures" count="-1" length_prefix="byte" /> |
---|
| 623 | </define> |
---|
| 624 | |
---|
| 625 | |
---|
| 626 | <define name="chat_IM"> |
---|
| 627 | <data length="8" name="cookie" /> |
---|
| 628 | <word>3</word> <!-- channel --> |
---|
| 629 | <tlvchain> |
---|
| 630 | <tlv type="1" default_generate="yes" /> |
---|
| 631 | <tlv type="3"><data name="sender" length_prefix="byte" /></tlv> |
---|
| 632 | <tlv type="6" name="reflect" /> |
---|
| 633 | <tlv type="7" name="is_automatic" /> |
---|
| 634 | <tlv type="5"> |
---|
| 635 | <tlvchain> |
---|
| 636 | <tlv type="4"><data name="type">text/x-aolrtf</data></tlv> |
---|
| 637 | <tlv type="2"><data name="charset">us-ascii</data></tlv> |
---|
| 638 | <tlv type="3"><data name="language">en</data></tlv> |
---|
| 639 | <tlv type="5"><data>binary</data></tlv> |
---|
| 640 | <tlv type="1"><data name="message" /></tlv> |
---|
| 641 | </tlvchain> |
---|
| 642 | </tlv> |
---|
| 643 | </tlvchain> |
---|
| 644 | </define> |
---|
| 645 | <define name="outgoing_chat_IM" family="14" subtype="5"><ref name="chat_IM" /></define> |
---|
| 646 | <define name="incoming_chat_IM" family="14" subtype="6"><ref name="chat_IM" /></define> |
---|
| 647 | |
---|
| 648 | |
---|
| 649 | |
---|
| 650 | <!-- Administrative services --> |
---|
| 651 | |
---|
| 652 | <define name="admin_request_response" family="7" subtype="5"> |
---|
| 653 | <word name="request_type" /> |
---|
| 654 | <tlvchain count_prefix="word"> |
---|
| 655 | <tlv type="1"><data name="new_screenname" /></tlv> |
---|
| 656 | <tlv type="17"><data name="new_email" /></tlv> |
---|
| 657 | <tlv type="8"><word name="error_code" /></tlv> |
---|
| 658 | <tlv type="4"><data name="error_url" /></tlv> |
---|
| 659 | <tlv type="3"><word name="subrequest" /></tlv> |
---|
| 660 | </tlvchain> |
---|
| 661 | </define> |
---|
| 662 | <define name="buddy_icon_uploaded" family="16" subtype="3" /> |
---|
| 663 | <define name="buddy_icon_download" family="16" subtype="4"> |
---|
| 664 | <data name="screenname" length_prefix="byte" /> |
---|
| 665 | <byte>1</byte> |
---|
| 666 | <word>1</word> |
---|
| 667 | <byte>1</byte> |
---|
| 668 | <data name="md5sum" length_prefix="byte" /> |
---|
| 669 | </define> |
---|
| 670 | <define name="buddy_icon_downloaded" family="16" subtype="5"> |
---|
| 671 | <data name="screenname" length_prefix="byte" /> |
---|
| 672 | <word name="flags" /> |
---|
| 673 | <byte name="number" /> |
---|
| 674 | <data name="checksum" length_prefix="byte" /> |
---|
| 675 | <data name="icon" length_prefix="word" /> |
---|
| 676 | </define> |
---|
| 677 | |
---|
| 678 | <define name="confirm_account_request" family="7" subtype="6" /> |
---|
| 679 | <define name="confirm_account_response" family="7" subtype="7"> |
---|
| 680 | <!-- If present and 19, indicates error, otherwise success --> |
---|
| 681 | <word name="status" /> |
---|
| 682 | </define> |
---|
| 683 | |
---|
| 684 | <define name="change_account_info" family="7" subtype="4"> |
---|
| 685 | <!-- Not all of these need to be present. --> |
---|
| 686 | <tlvchain> |
---|
| 687 | <tlv type="1"><data name="new_screenname" /></tlv> |
---|
| 688 | |
---|
| 689 | <tlv type="17"><data name="new_email" /></tlv> |
---|
| 690 | |
---|
| 691 | <tlv type="2"><data name="newpass" /></tlv> |
---|
| 692 | <tlv type="18"><data name="oldpass" /></tlv> |
---|
| 693 | </tlvchain> |
---|
| 694 | </define> |
---|
| 695 | |
---|
| 696 | |
---|
| 697 | <!-- ICQ --> |
---|
| 698 | |
---|
| 699 | <define name="ICQ_meta"> |
---|
| 700 | <tlvchain> |
---|
| 701 | <tlv type="1"> |
---|
| 702 | <data length_prefix="word" prefix_order="vax" > |
---|
| 703 | <dword name="our_uin" order="vax" /> |
---|
| 704 | <word name="type" order="vax" /> |
---|
| 705 | <word name="seqno" order="vax" /> |
---|
| 706 | <data name="typedata" /> |
---|
| 707 | </data> |
---|
| 708 | </tlv> |
---|
| 709 | </tlvchain> |
---|
| 710 | </define> |
---|
| 711 | <define name="ICQ_meta_request" family="21" subtype="2"><ref name="ICQ_meta" /></define> |
---|
| 712 | <define name="ICQ_meta_response" family="21" subtype="3"><ref name="ICQ_meta" /></define> |
---|
| 713 | |
---|
| 714 | <!-- Type 2000 --> |
---|
| 715 | <define name="ICQ_meta_info_request"> |
---|
| 716 | <word name="subtype" order="vax">1202</word> |
---|
| 717 | <dword name="uin" order="vax" /> |
---|
| 718 | </define> |
---|
| 719 | |
---|
| 720 | |
---|
| 721 | <!-- Type 2010 --> |
---|
| 722 | <define name="ICQ_meta_info_response"> |
---|
| 723 | <word name="subtype" order="vax" /> |
---|
| 724 | |
---|
| 725 | <!-- 10 == success --> |
---|
| 726 | <byte name="status" /> |
---|
| 727 | |
---|
| 728 | <data name="response_data" /> |
---|
| 729 | </define> |
---|
| 730 | |
---|
| 731 | <!-- Type 2010 subtypes --> |
---|
| 732 | |
---|
| 733 | <!-- 200 --> |
---|
| 734 | <define name="ICQ_meta_info_response:_basic"> |
---|
| 735 | <data name="nickname" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 736 | <data name="firstname" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 737 | <data name="lastname" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 738 | <data name="email" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 739 | |
---|
| 740 | <data name="home"> |
---|
| 741 | <data name="city" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 742 | <data name="state" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 743 | <data name="phone_num" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 744 | <data name="fax_num" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 745 | <data name="address" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 746 | <data name="cell_phone_num" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 747 | <data name="zip_code" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 748 | <word name="country_code" order="vax" /> |
---|
| 749 | </data> |
---|
| 750 | |
---|
| 751 | <byte name="gmt_offset" /> |
---|
| 752 | <byte name="authorization" /> |
---|
| 753 | <byte name="web_aware" /> |
---|
| 754 | <byte name="direct_connect_permissions" /> |
---|
| 755 | <byte name="publish_primary_email" /> |
---|
| 756 | </define> |
---|
| 757 | <!-- 210 --> |
---|
| 758 | <define name="ICQ_meta_info_response:_office"> |
---|
| 759 | <data name="city" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 760 | <data name="state" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 761 | <data name="phone_num" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 762 | <data name="fax_num" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 763 | <data name="address" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 764 | <data name="zip_code" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 765 | <word name="country_code" order="vax" /> |
---|
| 766 | |
---|
| 767 | <data name="company" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 768 | <data name="department" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 769 | <data name="position" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 770 | <word name="occupation" order="vax" /> |
---|
| 771 | <data name="office_website" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 772 | </define> |
---|
| 773 | <!-- 220 --> |
---|
| 774 | <define name="ICQ_meta_info_response:_background"> |
---|
| 775 | <word name="age" order="vax" /> |
---|
| 776 | <byte name="gender" /> |
---|
| 777 | <data name="homepage" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 778 | <word name="birth_year" order="vax" /> |
---|
| 779 | <byte name="birth_month" /> |
---|
| 780 | <byte name="bith_day" /> |
---|
| 781 | <byte name="language_1" /> |
---|
| 782 | <byte name="language_2" /> |
---|
| 783 | <byte name="language_3" /> |
---|
| 784 | <word /> |
---|
| 785 | <data name="origin_city" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 786 | <data name="origin_state" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 787 | <word name="origin_country" order="vax" /> |
---|
| 788 | <byte name="marital_status" /> |
---|
| 789 | </define> |
---|
| 790 | <!-- 230 --> |
---|
| 791 | <define name="ICQ_meta_info_response:_notes"> |
---|
| 792 | <data name="notes" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 793 | </define> |
---|
| 794 | <!-- 235 --> |
---|
| 795 | <define name="ICQ_meta_info_response:_email"> |
---|
| 796 | <data count_prefix="byte" name="addresses"> |
---|
| 797 | <byte name="publish" /> |
---|
| 798 | <data name="address" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 799 | </data> |
---|
| 800 | </define> |
---|
| 801 | <!-- 240 --> |
---|
| 802 | <define name="ICQ_meta_info_response:_interests"> |
---|
| 803 | <data count_prefix="byte" name="interests"> |
---|
| 804 | <word name="category" order="vax" /> |
---|
| 805 | <data name="interest" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 806 | </data> |
---|
| 807 | </define> |
---|
| 808 | <!-- 250 --> |
---|
| 809 | <define name="ICQ_meta_info_response:_affiliations"> |
---|
| 810 | <data count_prefix="byte" name="past_affiliations"> |
---|
| 811 | <word name="category" order="vax" /> |
---|
| 812 | <data name="keyword" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 813 | </data> |
---|
| 814 | <data count_prefix="byte" name="affiliations"> |
---|
| 815 | <word name="category" order="vax" /> |
---|
| 816 | <data name="keyword" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 817 | </data> |
---|
| 818 | </define> |
---|
| 819 | <!-- 270 --> |
---|
| 820 | <define name="ICQ_meta_info_response:_homepage"> |
---|
| 821 | <byte name="enabled" /> |
---|
| 822 | <word name="category" order="vax" /> |
---|
| 823 | <data name="keywords" length_prefix="word" prefix_order="vax" null_terminated="yes" /> |
---|
| 824 | <byte /> |
---|
| 825 | </define> |
---|
| 826 | |
---|
| 827 | |
---|
| 828 | <!-- Rendezvous service-specific data --> |
---|
| 829 | <define name="chat_invite_rendezvous_data"> |
---|
| 830 | <word name="exchange">4</word> |
---|
| 831 | <data length_prefix="byte" name="url" /> |
---|
| 832 | <word>0</word> |
---|
| 833 | </define> |
---|
| 834 | <define name="file_transfer_rendezvous_data"> |
---|
| 835 | <!-- 1 if only sending a single file, otherwise 2 --> |
---|
| 836 | <word name="file_count_status" /> |
---|
| 837 | <word name="file_count" /> |
---|
| 838 | <dword name="size" /> |
---|
| 839 | <data count="-1" null_terminated="yes" name="files" /> |
---|
| 840 | </define> |
---|
| 841 | <define name="buddy_list_transfer_rendezvous_data"> |
---|
| 842 | <data count="-1" name="group"> |
---|
| 843 | <data length_prefix="word" name="name" /> |
---|
| 844 | <data count_prefix="word" name="buddies"> |
---|
| 845 | <data length_prefix="word" name="name" /> |
---|
| 846 | </data> |
---|
| 847 | </data> |
---|
| 848 | </define> |
---|
| 849 | |
---|
| 850 | |
---|
| 851 | <!-- Direct-connect and file transfer stuff --> |
---|
| 852 | <define name="file_transfer_header"> |
---|
| 853 | <data length="4">OFT2</data> |
---|
| 854 | <word name="header_length">256</word> |
---|
| 855 | |
---|
| 856 | <!-- 0x0101 for syn, 0x0202 for ack, 0x0204 for fin --> |
---|
| 857 | <word name="type" /> |
---|
| 858 | |
---|
| 859 | <data length="8" name="cookie" /> |
---|
| 860 | |
---|
| 861 | <word name="encrypt">0</word> |
---|
| 862 | <word name="compress">0</word> |
---|
| 863 | <word name="file_count" /> |
---|
| 864 | <word name="files_left" /> |
---|
| 865 | <word name="part_count">1</word> |
---|
| 866 | <word name="parts_left">1</word> |
---|
| 867 | <dword name="byte_count" /> |
---|
| 868 | <dword name="bytes_left" /> |
---|
| 869 | <dword name="mtime" /> |
---|
| 870 | <dword name="checksum" /> |
---|
| 871 | <dword name="received_initial_checksum">4294901760</dword> |
---|
| 872 | <dword name="received_size">0</dword> |
---|
| 873 | <dword name="ctime" /> |
---|
| 874 | <dword name="initial_checksum">4294901760</dword> |
---|
| 875 | <dword name="bytes_received" /> |
---|
| 876 | <dword name="received_checksum" /> |
---|
| 877 | <data length="32" pad="0" name="client_id">Cool FileXfer</data> |
---|
| 878 | <byte name="flags">32</byte> |
---|
| 879 | <byte name="name_offset">28</byte> |
---|
| 880 | <byte name="size_offset">17</byte> |
---|
| 881 | <data length="69" pad="0" /> |
---|
| 882 | <data length="16" pad="0" name="mac_file_info" /> |
---|
| 883 | <word name="encoding">0</word> |
---|
| 884 | <word name="language">0</word> |
---|
| 885 | <data length="64" pad="0" name="filename" /> |
---|
| 886 | </define> |
---|
| 887 | |
---|
| 888 | |
---|
| 889 | <!-- Migration: See http://iserverd1.khstu.ru/oscar/sequences.html#migration --> |
---|
| 890 | <define name="pause" family="1" subtype="11" /> |
---|
| 891 | <define name="pause_ack" family="1" subtype="12"> |
---|
| 892 | <word count="-1" name="families" /> |
---|
| 893 | </define> |
---|
| 894 | <define name="unpause" family="1" subtype="13" /> |
---|
| 895 | <define name="migrate" family="1" subtype="18"> |
---|
| 896 | <word count_prefix="word" name="families" /> |
---|
| 897 | <tlvchain> |
---|
| 898 | <tlv type="5"><data name="peer" /></tlv> |
---|
| 899 | <tlv type="6"><data name="cookie" /></tlv> |
---|
| 900 | </tlvchain> |
---|
| 901 | </define> |
---|
| 902 | |
---|
| 903 | |
---|
| 904 | <!-- Direct connect proxy --> |
---|
| 905 | <!-- In front of any of these is a 16-bit network order length --> |
---|
| 906 | <define name="direct_connect_proxy_hdr"> |
---|
| 907 | <word name="magic">1098</word> |
---|
| 908 | <word name="msg_type" /> |
---|
| 909 | <dword>0</dword> |
---|
| 910 | <data name="data" /> |
---|
| 911 | </define> |
---|
| 912 | <define name="direct_connect_proxy_init"> <!-- msg_type 2 --> |
---|
| 913 | <ref name="direct_connect_proxy_hdr" /> |
---|
| 914 | <word>0</word> |
---|
| 915 | <data length_prefix="byte" name="screenname" /> |
---|
| 916 | <data length="8" name="cookie" /> |
---|
| 917 | <tlvchain> |
---|
| 918 | <tlv type="1"><data name="capability" /></tlv> |
---|
| 919 | </tlvchain> |
---|
| 920 | </define> |
---|
| 921 | <define name="direct_connect_proxy_reply"> <!-- msg_type 3 --> |
---|
| 922 | <ref name="direct_connect_proxy_hdr" /> |
---|
| 923 | <word>544</word> |
---|
| 924 | <word name="port" /> |
---|
| 925 | <dword name="ip" /> |
---|
| 926 | </define> |
---|
| 927 | </oscar> |
---|
| 928 | |
---|