Protocols/OSCAR/SNAC/OSERVICE SERVICE REQUEST: Difference between revisions
No edit summary |
No edit summary |
||
Line 325: | Line 325: | ||
== 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
|