Protocols/OSCAR/SNAC/OSERVICE SERVICE REQUEST: Difference between revisions
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 188: | Line 188: | ||
=== From Aleksandr Shutko: Service request sequence example dump === | |||
<table width=640 bgcolor=darkblue cellSpacing=0 cellPadding=0 border=0><tr><td> | |||
<table width=100% cellSpacing=2 cellPadding=0 border=0><tr><td bgcolor=#4040FF > | |||
<table width=100% cellSpacing=0 cellPadding=0 border=0> | |||
<tr><td><b><font color="white"> Service request sequence example dump </font></b></td> | |||
<td width=20% align=right><b><font color="white"> </font></b></td> | |||
</tr></table></td></tr></table> | |||
</td></tr></table> | |||
<table width=640 cellSpacing=0 cellPadding=0 border=0><tr><td><br> | |||
<table width=640 bgcolor=darkblue cellSpacing=0 cellPadding=0 border=0><tr><td> | |||
<table width=100% cellSpacing=2 cellPadding=0 border=0><tr><td bgcolor=#E9E9E9> | |||
<table width=610 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr><td colspan=3 height=4> </td></tr><tr> | |||
<td width=7> </td><td valign=top> | |||
<font size=3><pre style="font-size: 13px"> | |||
// client sends service 0x10 request on BOS connection | |||
2A 02 12 AB 00 0C 00 01 00 04 00 00 5D 0E 00 04 *...........]... | |||
00 10 .. | |||
// server reply with server ip 64.12.31.136 & auth cookie | |||
2A 02 26 06 01 2C 00 01 00 05 80 00 5D 0E 00 04 *.&..,......]... | |||
00 06 00 01 00 02 00 04 00 0D 00 02 00 10 00 05 ................ | |||
00 0C 36 34 2E 31 32 2E 33 31 2E 31 33 36 00 06 ..64.12.31.136.. | |||
01 00 7B F3 F0 F3 A4 A5 6C 67 C5 DF 4B 78 4C 43 ..{.....lg..KxLC | |||
C7 6C 3D 44 32 8D 96 82 DA 6A 41 7E 83 27 F4 D9 .l=D2....jA~.'.. | |||
B8 A5 83 6B 54 95 1B 91 B9 FE 6D A3 B6 86 FC 21 ...kT.....m....! | |||
C7 F0 53 C1 A5 38 D6 07 D7 CA AA 7F 3E B6 FE D9 ..S..8......>... | |||
AD D7 AE 31 1B 6A A4 52 40 23 38 25 98 40 73 96 ...1.j.R@#8%.@s. | |||
E7 17 B8 31 C3 44 E8 98 15 1F DD E0 5C 31 48 7B ...1.D......\1H{ | |||
7D E5 92 E8 35 14 C4 1E 1C 9C 4F FB F8 55 76 B1 }...5.....O..Uv. | |||
68 DB CE 72 06 43 1A 77 78 12 83 AD EB 27 D3 2D h..r.C.wx....'.- | |||
2A 69 47 A5 FC DE C5 89 16 2E 74 52 BB 5C 6B BE *iG.......tR.\k. | |||
66 86 AB 83 3E C3 7C E8 24 C5 16 CE 4A 34 13 95 f...>.|.$...J4.. | |||
1B E4 56 35 EA 18 FC D5 F7 24 0F 64 6A E6 D4 5D ..V5.....$.dj..] | |||
BF 14 57 CE 4B 1D 7E CF 8F FD 1F CA 35 FA 29 97 ..W.K.~.....5.). | |||
21 DC F7 1C 1A 36 24 CD CC 5F 05 9C 44 A6 23 DF !....6$.._..D.#. | |||
BB 09 B2 36 17 36 91 26 0B 84 75 EA D2 FC BD 70 ...6.6.&..u....p | |||
0F C6 6C 67 D0 64 99 82 A4 C2 00 10 D8 8C FF D9 ..lg.d.......... | |||
71 9F 50 25 8A 2A BD C6 5E 27 8B 33 BE 81 21 D1 q.P%.*..^'.3..!. | |||
2B 4B +K | |||
------------------------------------------------------------------- | |||
// Then client makes tcp connection to 64.12.31.136 | |||
// Connection established. Server sends 0x00000001 (invitation) | |||
2A 01 B9 06 00 0C 00 00 00 01 80 01 00 04 00 00 *............... | |||
FF FF .. | |||
// Client sends auth cookie | |||
2A 01 01 07 01 08 00 00 00 01 00 06 01 00 7B F3 *.............{. | |||
F0 F3 A4 A5 6C 67 C5 DF 4B 78 4C 43 C7 6C 3D 44 ....lg..KxLC.l=D | |||
32 8D 96 82 DA 6A 41 7E 83 27 F4 D9 B8 A5 83 6B 2....jA~.'.....k | |||
54 95 1B 91 B9 FE 6D A3 B6 86 FC 21 C7 F0 53 C1 T.....m....!..S. | |||
A5 38 D6 07 D7 CA AA 7F 3E B6 FE D9 AD D7 AE 31 .8......>......1 | |||
1B 6A A4 52 40 23 38 25 98 40 73 96 E7 17 B8 31 .j.R@#8%.@s....1 | |||
C3 44 E8 98 15 1F DD E0 5C 31 48 7B 7D E5 92 E8 .D......\1H{}... | |||
35 14 C4 1E 1C 9C 4F FB F8 55 76 B1 68 DB CE 72 5.....O..Uv.h..r | |||
06 43 1A 77 78 12 83 AD EB 27 D3 2D 2A 69 47 A5 .C.wx....'.-*iG. | |||
FC DE C5 89 16 2E 74 52 BB 5C 6B BE 66 86 AB 83 ......tR.\k.f... | |||
3E C3 7C E8 24 C5 16 CE 4A 34 13 95 1B E4 56 35 >.|.$...J4....V5 | |||
EA 18 FC D5 F7 24 0F 64 6A E6 D4 5D BF 14 57 CE .....$.dj..]..W. | |||
4B 1D 7E CF 8F FD 1F CA 35 FA 29 97 21 DC F7 1C K.~.....5.).!... | |||
1A 36 24 CD CC 5F 05 9C 44 A6 23 DF BB 09 B2 36 .6$.._..D.#....6 | |||
17 36 91 26 0B 84 75 EA D2 FC BD 70 0F C6 6C 67 .6.&..u....p..lg | |||
D0 64 99 82 A4 C2 00 10 D8 8C FF D9 71 9F 50 25 .d..........q.P% | |||
8A 2A BD C6 5E 27 8B 33 BE 81 21 D1 2B 4B .*..^'.3..!.+K | |||
// Server sends supported services list - SNAC(01,03) | |||
2A 02 B9 07 00 0E 00 01 00 03 00 00 81 2E E2 C4 *............... | |||
00 01 00 10 .... | |||
// Client ask for services version numbers - SNAC(01,17) | |||
2A 02 01 08 00 12 00 01 00 17 00 00 00 00 00 17 *............... | |||
00 01 00 04 00 10 00 01 ........ | |||
// Server sends its services version numbers - SNAC(01,18) | |||
2A 02 B9 08 00 12 00 01 00 18 00 00 81 2E E2 E4 *............... | |||
00 01 00 04 00 10 00 01 ........ | |||
// Client ask server for rate limits info - SNAC(01,06) | |||
2A 02 01 09 00 0A 00 01 00 06 00 00 00 00 00 06 *............... | |||
// Server sends rate limits information - SNAC(01,07) | |||
2A 02 B9 09 01 97 00 01 00 07 00 00 00 00 00 06 *............... | |||
00 05 00 01 00 00 00 50 00 00 09 C4 00 00 07 D0 .......P........ | |||
00 00 05 DC 00 00 03 20 00 00 16 E4 00 00 17 70 ....... .......p | |||
00 00 00 00 00 00 02 00 00 00 50 00 00 0B B8 00 ..........P..... | |||
00 07 D0 00 00 05 DC 00 00 03 E8 00 00 17 70 00 ..............p. | |||
00 17 70 00 00 03 16 00 00 03 00 00 00 14 00 00 ..p............. | |||
13 EC 00 00 13 88 00 00 0F A0 00 00 0B B8 00 00 ................ | |||
17 70 00 00 17 70 00 00 03 16 00 00 04 00 00 00 .p...p.......... | |||
14 00 00 15 7C 00 00 14 B4 00 00 10 68 00 00 0B ....|.......h... | |||
B8 00 00 17 70 00 00 1F 40 00 00 03 16 00 00 05 ....p...@....... | |||
00 00 00 0A 00 00 15 7C 00 00 14 B4 00 00 10 68 .......|.......h | |||
00 00 0B B8 00 00 17 70 00 00 1F 40 00 00 03 16 .......p...@.... | |||
00 00 01 00 30 00 01 00 01 00 01 00 02 00 01 00 ....0........... | |||
03 00 01 00 04 00 01 00 05 00 01 00 06 00 01 00 ................ | |||
07 00 01 00 08 00 01 00 09 00 01 00 0A 00 01 00 ................ | |||
0B 00 01 00 0C 00 01 00 0D 00 01 00 0E 00 01 00 ................ | |||
0F 00 01 00 10 00 01 00 11 00 01 00 12 00 01 00 ................ | |||
13 00 01 00 14 00 01 00 15 00 01 00 16 00 01 00 ................ | |||
17 00 01 00 18 00 01 00 19 00 01 00 1A 00 01 00 ................ | |||
1B 00 01 00 1C 00 01 00 1D 00 01 00 1F 00 01 00 ................ | |||
20 00 01 00 21 00 01 00 22 00 01 00 23 00 01 00 ...!..."...#... | |||
24 00 01 00 25 00 10 00 01 00 10 00 03 00 10 00 $...%........... | |||
04 00 10 00 05 00 10 00 06 00 10 00 07 00 10 00 ................ | |||
08 00 10 00 09 00 10 00 0A 00 10 00 0B 00 10 00 ................ | |||
0C 00 10 00 0D 00 02 00 00 00 03 00 02 00 01 00 ................ | |||
1E 00 10 00 02 00 04 00 00 00 05 00 00 ............. | |||
// Client ack connection rate limits - SNAC(01,08) | |||
2A 02 01 0A 00 14 00 01 00 08 00 00 00 00 00 08 *............... | |||
00 01 00 02 00 03 00 04 00 05 .......... | |||
// Client sends READY command - SNAC(01,02) | |||
2A 02 01 0B 00 1A 00 01 00 02 00 00 00 00 00 02 *............... | |||
00 01 00 04 00 10 08 E4 00 10 00 01 00 10 08 E4 ................ | |||
// Now client starts use this service - SNAC(10,06) | |||
2A 02 01 0C 00 29 00 10 00 06 00 00 2A 95 00 06 *....)......*... | |||
09 33 34 38 39 33 34 37 37 34 01 00 01 01 10 0B .348934774...... | |||
56 66 D6 16 5E 31 75 20 8D 3F 0C 38 38 87 4C Vf..^1u .?.88.L | |||
........ | |||
</pre></font> | |||
</font> | |||
</td><td width=7> </td></tr> | |||
<tr><td colspan=3> </td></tr></table> | |||
</td></tr></table> | |||
</td></tr></table> | |||
</td></tr></table> | |||
== From Aleksandr Shutko: Service request sequence == | |||
<table width=640 bgcolor=darkblue cellSpacing=0 cellPadding=0 border=0><tr><td> | |||
<table width=100% cellSpacing=2 cellPadding=0 border=0><tr><td bgcolor=#4040FF > | |||
<table width=100% cellSpacing=0 cellPadding=0 border=0> | |||
<tr> | |||
<td><b><font color="white"> OSCAR sequences </font></b></td> | |||
<td width=40% align=right><b><font color="white"> </font></b></td> | |||
</tr> | |||
</table> | |||
</td></tr> | |||
</table> | |||
</td></tr></table> | |||
<br> | |||
<table width=640 bgcolor=darkblue cellSpacing=0 cellPadding=0 border=0><tr><td> | |||
<table width=100% cellSpacing=2 cellPadding=0 border=0><tr><td bgcolor=#E9E9E9> | |||
<table width=100% cellSpacing=0 cellPadding=0 bgcolor="#4040FF" border=0> | |||
<tr> | |||
<td><b><font size=2 color="white"> Service request sequence description</font></b></td> | |||
</tr> | |||
</table> | |||
</td></tr> | |||
<tr><td bgcolor=#E9E9E9><table width=100% cellSpacing=0 cellPadding=0 border=0> | |||
<tr><td colspan=3 height=5></td></tr><tr><td width=5> </td><td> | |||
| |||
Service request is a way to get service not supported by BOS server. For | |||
example AOL server currently doesn't support [[Protocols/OSCAR/SNAC_10|SSBI]] | |||
service on main BOS connection. So service request is a first thing you should do if | |||
you want to deal with SSBI. This sequence looks like login, but not so complicated. | |||
Just look at the sequence example dump [[Protocols/OSCAR/SNAC/OSERVICE_SERVICE_REQUEST|here]]. | |||
<br><br> | |||
<table width=100% cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr><td width=20></td><td> | |||
<table width=580 bgcolor=darkblue cellSpacing=0 cellPadding=0 border=0><tr><td> | |||
<table width=100% cellSpacing=2 cellPadding=0 border=0><tr><td bgcolor=#7070D0><b><font size=2 color=white> Correct service request sequence</font></b></td></tr> | |||
<tr><td bgcolor=#E5E5E5> | |||
<table width=580 cellSpacing=1 cellPadding=1 border=0> | |||
<tr> | |||
<td bgcolor=#f9f9f9 width=35 valign=top> <b>>></b></td> | |||
<td bgcolor=#f9f9f9 width=120 valign=top> <b>[[Protocols/OSCAR/SNAC_01_04|SNAC(01,04)]]</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> Client ask server for service on BOS connection</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor=#f9f9f9 width=35 valign=top> <b><<</b></td> | |||
<td bgcolor=#f9f9f9 width=120 valign=top> <b>[[Protocols/OSCAR/SNAC_01_05|SNAC(01,05)]]</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> Server reply with ip addres, port and auth cookie to client</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor=#f9f9f9 colspan=3 height=25 valign=middle><font size=2> Now client makes connection to specified service server</font></td> | |||
</tr> | |||
<tr> | |||
<td bgcolor=#f9f9f9 width=40 valign=top> <b><></b></td> | |||
<td bgcolor=#f9f9f9 width=110 valign=top> <b>connect</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> Client connects to service server</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor=#f9f9f9 valign=top> <b>>></b></td> | |||
<td bgcolor=#f9f9f9 valign=top> <b>[[Protocols/OSCAR/Sign_On#Stage_2:_Connecting_to_BOSS|cli_cookie]]</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> Client sends cookie</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor=#f9f9f9 valign=top> <b><<</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> <b>[[Protocols/OSCAR/SNAC_01_03|SNAC(01,03)]]</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> Server sends supported services list</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor=#f9f9f9 valign=top> <b>>></b></td> | |||
<td bgcolor=#f9f9f9 valign=top> <b>[[Protocols/OSCAR/SNAC_01_17|SNAC(01,17)]]</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> Client ask for services version numbers</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor=#f9f9f9 valign=top> <b><<</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> <b>[[Protocols/OSCAR/SNAC_01_18|SNAC(01,18)]]</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> Server sends its services version numbers</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor=#f9f9f9 valign=top> <b>>></b></td> | |||
<td bgcolor=#f9f9f9 valign=top> <b>[[Protocols/OSCAR/SNAC_01_06|SNAC(01,06)]]</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> Client ask server for rate limits info</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor=#f9f9f9 valign=top> <b><<</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> <b>[[Protocols/OSCAR/SNAC_01_07|SNAC(01,07)]]</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> Server sends rate limits information</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor=#f9f9f9 valign=top> <b>>></b></td> | |||
<td bgcolor=#f9f9f9 valign=top> <b>[[Protocols/OSCAR/SNAC_01_08|SNAC(01,08)]]</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> Client ack connection rate limits</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor=#f9f9f9 valign=top> <b>>></b></td> | |||
<td bgcolor=#f9f9f9 valign=top> <b>[[Protocols/OSCAR/SNAC_01_02|SNAC(01,02)]]</b></td> | |||
<td bgcolor=#f9f9f9 valign=top> Client READY command</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor=#f9f9f9 colspan=3 height=25 valign=middle><font size=2> Now client have BOS & service connections...</font></td> | |||
</tr> | |||
</table> | |||
</td></tr></table> | |||
</td></tr></table> | |||
</td></tr></table> | |||
<br> | |||
</td><td width=15> | |||
</td></tr></table> | |||
</td></tr></table> | |||
</td></tr></table> | |||
== OSERVICE SNACs == | == OSERVICE SNACs == | ||
{{Protocols/OSCAR/Foodgroups/OSERVICE/SNACs/Simple}} | {{Protocols/OSCAR/Foodgroups/OSERVICE/SNACs/Simple}} |
Latest revision as of 10:44, 14 February 2021
OSCAR Protocol |
Introduction • Terms • Clients |
Basic |
Datatypes • FLAP • SNAC • TLV |
UUIDs • Errors • Tool IDs |
Host Interaction |
Rate Limits • Migration • Messages |
Other Services |
ADMIN • ADVERT • ALERT |
BART • BOS • BUCP • CHAT |
CHAT_NAV |
Tutorials |
Sign On • BART • Rendezvous |
ICBM • Locate • Buddies |
Foodgroups |
OSERVICE (0x0001) |
LOCATE (0x0002) |
BUDDY (0x0003) |
ICBM (0x0004) |
ADVERT (0x0005) |
INVITE (0x0006) |
ADMIN (0x0007) |
POPUP (0x0008) |
PD (0x0009) |
USER_LOOKUP (0x000A) |
STATS (0x000B) |
TRANSLATE (0x000C) |
CHAT_NAV (0x000D) |
CHAT (0x000E) |
ODIR (0x000F) |
BART (0x0010) |
FEEDBAG (0x0013) |
ICQ (0x0015) |
BUCP (0x0017) |
ALERT (0x0018) |
PLUGIN (0x0022) |
UNNAMED_FG_24 (0x0024) |
MDIR (0x0025) |
ARS (0x044A) |
ID | Origin | Name | Foodgroup | Service | Status | Version |
---|---|---|---|---|---|---|
0x0001, 0x0004 | Client | OSERVICE__SERVICE_REQUEST | OSERVICE | BOS | Active | 4.0 |
This SNAC requests that the specified service (foodgroup) be provided to it in a way further specified by qualifying parameters.
Introduction
The server will either reject the request via an error reply or accept it and reply with a OSERVICE_SERVICE_RESPONSE. Note that this is a request for new service; this is not like a migration case where the current FLAP connection might be dropped.
Services
There are other backend hosts that a client may need to connect to for more advanced commands. To connect to a secondary host, a client sends up a SERVICE_REQUEST and receives a OSERVICE_SERVICE_RESPONSE back with the connection information. The secondary servers include:
Service | ID | Note |
---|---|---|
ADMIN | 0x0007 | Account administration service |
ADVERT | 0x0005 | Advertising service |
ALERT | 0x0018 | For notices such as new mail |
BART | 0x0010 | For downloading Buddy Art |
BUCP | 0x0017 | For authorization, registration, and account deletion |
CHAT_NAV | 0x000D | Chat navigation service |
CHAT | 0x000E | Chat service |
SNAC Header
Foodgroup | uint16 (word) | 00 01 |
Subgroup | uint16 (word) | 00 04 |
Flags | uint16 (word) | 00 00 |
Request ID | uint32 (dword) | xx xx xx xx |
SNAC Data
Name | Type | Note |
---|---|---|
foodgroup | uint16 (word) | Group being requested |
qualifyingParameters | Rest of SNAC array of TLV | [Class: OSERVICE__SERVICE_REQUEST_TAGS] Modifiers for the request, such as a TLS request |
TLV Class: OSERVICE__SERVICE_REQUEST_TAGS
These are the tags the client uses to control what type of service request it wants.
Name | Tag | Type | Notes |
---|---|---|---|
OSERVICE__TLV_TAGS_SSL_USE_SSL | 0x8C | empty | No value; if present use SSL |
From Aleksandr Shutko: SNAC(01,04) OSERVICE__SERVICE_REQUEST
|
Example SNAC dumps with flap header:
|
From Aleksandr Shutko: Service request sequence example dump
|
|
From Aleksandr Shutko: Service request sequence
|
|
OSERVICE SNACs
|