msnp-wiki/docs/commands/chg.md

97 lines
3.1 KiB
Markdown

# Introduction
`CHG` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without either a request or response payload.
Changes your presence status, and sets your Client Capabilities and MSNObject in later MSNP versions.
# Client/Request
`CHG TrID status {flags} {msnobj}`
Where `status` can be any of the below:
* `NLN`: Online
* `BSY`: Busy
* `IDL`: Idle
* `BRB`: Be Right Back
* `AWY`: Away (previously Away From Keyboard)
* `PHN`: On The Phone
* `LUN`: Out To Lunch
* `HDN`: Appear Offline (previously Invisible)
* `FLN`: Semi-offline. More on this below.
In [MSNP8](../versions/msnp8.md) and higher, `flags`, an optional parameter may be used to
specify your Client Capabilities.
In [MSNP9](../versions/msnp9.md) and higher, `msnobj`, an optional parameter may be used to
add additional information related to your user. Requires that `flags` MUST be set to use.
The MSNObject itself is a XML-like element.
## Status explanations
All statuses except `HDN` and `FLN` will treat you as online.
Which means all users on your Allow List (AL) and Reverse List (RL)
will get all presence changes via the NLN command.
The statuses `HDN` and `FLN` will treat you as offline.
Which means all users on your Allow List (AL) and Reverse List (RL)
will get a FLN command instead of an NLN command.
Also, all attempts to create a Switchboard session will fail automatically,
Exclusive to the `FLN` state, you are put in a very reduced state where you can
only recieve presence changes from other users and resynchronize your Lists.
# Server/Response
`CHG TrID status {flags} {msnobj}`
The server may also send this Asynchronously, if it does, the TrID will be 0.
# Examples
## Changing status to Online
```
C: CHG 1 NLN
S: CHG 1 NLN
```
## Changing status to Idle with Capability Flags
*This only works in [MSNP8](../versions/msnp8.md) and higher.*
```
C: CHG 2 IDL 1
S: CHG 2 IDL 1
```
## Changing status to Busy with Capability Flags and a MSNObject.
*This only works in [MSNP9](../versions/msnp9.md) and higher.*
*NOTE: This has been line-breaked.
Lines beginning with `..` followed by a space are continuations of the previous line.*
```
C: CHG 3 BSY 268435500 %3Cmsnobj%20Creator%3D%22example%40hotmail.com%22
.. %20Size%3D%2225235%22%20Type%3D%223%22
.. %20Location%3D%22uexA4DE.dat%22%20Friendly%3D%22AAA%3D%22
.. %20SHA1D%3D%22vP1ppB+xiFQ8ceZivRe0uCaYLIU%3D%22
.. %20SHA1C%3D%22DBRJPnGb+wBYawENkdor1bOdYUs%3D%22%2F%3E
S: CHG 3 BSY 268435500 %3Cmsnobj%20Creator%3D%22example%40hotmail.com%22
.. %20Size%3D%2225235%22%20Type%3D%223%22
.. %20Location%3D%22uexA4DE.dat%22%20Friendly%3D%22AAA%3D%22
.. %20SHA1D%3D%22vP1ppB+xiFQ8ceZivRe0uCaYLIU%3D%22
.. %20SHA1C%3D%22DBRJPnGb+wBYawENkdor1bOdYUs%3D%22%2F%3E
```
## Server Decides it wants you in Semi-Offline mode.
```
S: CHG 0 FLN
```
## Invalid argument
*NOTE: There is no defined behaviour for this command specifically.*
```
C: CHG 4 HOT
```
Server disconnects client.
# Known changes
* [MSNP8](../versions/msnp8.md): Added optional Client Capabilities parameter (as parameter 2).
* [MSNP9](../versions/msnp9.md): Added optional MSNObject parameter (as parameter 3).
* Removed in MSNP24.