Protocols/OSCAR/SNAC/OSERVICE SERVICE REQUEST: Difference between revisions
(Created page with "{{Protocols/OSCAR}} {{Protocols/OSCAR/SNAC/Stats |origin={{Protocols/OSCAR/SNAC/OSERVICE__SERVICE_REQUEST/Origin}} |name=OSERVICE__SERVICE_REQUEST |id=0x0001, 0x0004 |service=...") |
No edit summary |
||
(7 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
{{Protocols/OSCAR/SNAC/Stats | {{Protocols/OSCAR/SNAC/Stats | ||
|origin={{Protocols/OSCAR/SNAC/OSERVICE__SERVICE_REQUEST/Origin}} | |origin={{Protocols/OSCAR/SNAC/OSERVICE__SERVICE_REQUEST/Origin}} | ||
|id=0x0001, 0x0004 | |||
|name=OSERVICE__SERVICE_REQUEST | |name=OSERVICE__SERVICE_REQUEST | ||
| | |foodgroup=OSERVICE | ||
|service= | |service=[[Protocols/OSCAR/Services/BOS|BOS]] | ||
|status={{Protocols/OSCAR/Foodgroups/OSERVICE/Status}} | |status={{Protocols/OSCAR/Foodgroups/OSERVICE/Status}} | ||
|version={{Protocols/OSCAR/Foodgroups/OSERVICE/Version}} }} | |version={{Protocols/OSCAR/Foodgroups/OSERVICE/Version}} }} | ||
Line 10: | Line 11: | ||
{{Protocols/OSCAR/SNAC/OSERVICE__SERVICE_REQUEST/Description}} | {{Protocols/OSCAR/SNAC/OSERVICE__SERVICE_REQUEST/Description}} | ||
=== SNAC Header | == Introduction == | ||
The server will either reject the request via an error reply or accept it and reply with a [[Protocols/OSCAR/SNAC/OSERVICE_SERVICE_RESPONSE|OSERVICE_SERVICE_RESPONSE]]. Note that this is a request for ''new'' service; this is not like a [[Protocols/OSCAR/Migration|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 [[Protocols/OSCAR/SNAC/OSERVICE_SERVICE_RESPONSE|OSERVICE_SERVICE_RESPONSE]] back with the connection information. The secondary servers include: | |||
{| class="wikitable" | |||
! Service | |||
! ID | |||
! Note | |||
|- | |||
| [[Protocols/OSCAR/Services/ADMIN|ADMIN]] | |||
| 0x0007 | |||
| Account administration service | |||
|- | |||
| [[Protocols/OSCAR/Services/ADVERT|ADVERT]] | |||
| 0x0005 | |||
| Advertising service | |||
|- | |||
| [[Protocols/OSCAR/Services/ALERT|ALERT]] | |||
| 0x0018 | |||
| For notices such as new mail | |||
|- | |||
| [[Protocols/OSCAR/Services/BART|BART]] | |||
| 0x0010 | |||
| For downloading Buddy Art | |||
|- | |||
| [[Protocols/OSCAR/Services/BUCP|BUCP]] | |||
| 0x0017 | |||
| For authorization, registration, and account deletion | |||
|- | |||
| [[Protocols/OSCAR/Services/CHAT_NAV|CHAT_NAV]] | |||
| 0x000D | |||
| Chat navigation service | |||
|- | |||
| [[Protocols/OSCAR/Services/CHAT|CHAT]] | |||
| 0x000E | |||
| Chat service | |||
|} | |||
== SNAC Header == | |||
{{Protocols/OSCAR/SNAC/Header | {{Protocols/OSCAR/SNAC/Header | ||
|foodgroup=00 01 | |foodgroup=00 01 | ||
|subgroup=00 04 | |subgroup=00 04 | ||
|flags=00 00 | |flags=00 00}} | ||
| | |||
== SNAC Data == | |||
{| class="wikitable" | |||
! Name | |||
! Type | |||
! Note | |||
|- | |||
| foodgroup | |||
| uint16 (word) | |||
| Group being requested | |||
|- | |||
| qualifyingParameters | |||
| Rest of SNAC array of [[Protocols/OSCAR/TLV|TLV]] | |||
| ''[Class: [[Protocols/OSCAR/SNAC/OSERVICE_SERVICE_REQUEST#TLV_Class:_OSERVICE_SERVICE_REQUEST_TAGS|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. | |||
{| class="wikitable" | |||
! 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 === | |||
<table width=640 cellSpacing=0 cellPadding=0 border=0> | |||
<tr> | |||
<td> | |||
<br> | |||
Used when client want to use new service. Server should respond with | |||
[[Protocols/OSCAR/SNAC_01_05|SNAC(01,05)]], that contain BOS server | |||
address and authorization cookie. | |||
<br><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=640 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr> | |||
<td width=169> 00 01</td> | |||
<td width=5> </td> | |||
<td>word</td> | |||
<td width=5> </td> | |||
<td width=55%>SNAC family</td> | |||
</tr> | |||
<tr> | |||
<td> 00 05</td> | |||
<td> </td> | |||
<td>word</td> | |||
<td> </td> | |||
<td>SNAC subtype</td> | |||
</tr> | |||
<tr> | |||
<td> 00 00</td> | |||
<td> </td> | |||
<td>word</td> | |||
<td> </td> | |||
<td>SNAC flags</td> | |||
</tr> | |||
<tr> | |||
<td> xx xx xx xx</td> | |||
<td> </td> | |||
<td>dword</td> | |||
<td> </td> | |||
<td>SNAC request-id</td> | |||
</tr> | |||
</table> | |||
</td></tr> | |||
<tr><td bgcolor=#E9E9E9 > | |||
<table width=100% cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr> | |||
<td width=169> xx xx</td> | |||
<td width=5> </td> | |||
<td>word</td> | |||
<td width=5> </td> | |||
<td width=55%>requested service (family) id</td> | |||
</tr> | |||
</table> | |||
<!-- TLV 0x?? --> | |||
<table width=640 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr><td height=8 colspan=3></td></tr> | |||
<tr><td width=20> </td> | |||
<td> | |||
<table width=610 bgcolor=darkgreen cellSpacing=0 cellPadding=0 border=0><tr><td> | |||
<table width=100% cellSpacing=2 cellPadding=0 align=center border=0> | |||
<tr><td bgcolor=#f9f9f9> | |||
<table width=610 cellSpacing=0 cellPadding=0 align=center border=0 > | |||
<tr><td> May contain TLV sequence here.</td></tr> | |||
</table> | |||
</td></tr> | |||
</table> | |||
</td></tr></table> | |||
</td><td width=5> </td> | |||
</tr> | |||
<tr><td height=5 colspan=3> </td></tr> | |||
</table> | |||
</td></tr></table> | |||
</td></tr></table> | |||
</td></tr></table> | |||
<br>Example SNAC dumps with flap header: | |||
<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> | |||
<font size=3><pre style="font-size: 13px"> | |||
2A 02 3E 02 00 0C 00 01 00 04 00 00 00 00 00 05 *.>............. | |||
00 0D .. | |||
</pre></font> | |||
</td></tr></table> | |||
</td></tr></table> | |||
=== 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 == | |||
{{Protocols/OSCAR/Foodgroups/OSERVICE/SNACs/Simple}} | {{Protocols/OSCAR/Foodgroups/OSERVICE/SNACs/Simple}} | ||
[[Category:With_Contrib]] | |||
[[Category:Stub]] | [[Category:Stub]] | ||
[[Category:AOL]] | [[Category:AOL]] |
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
|