If your client has issued a TX_* message, and your server has successfully contacted the destination server, your client will receive either an RX_ACK message or an RX_NAK message. If everything goes well, the target server will return a positive acknowledgement, resulting in an RX_ACK message. If, however, the target server is unable to process the message for some unusual reason, it will return a negative acknowledgement, resuting in an RX_NAK message. If your server was unable to contact the target server at all, you will not receive either; instead, you will receive a FAILED_TX message.
The format for an RX_NAK message is:
RX_NAK tag code [detail]
where
| tag | is the label of the message that caused the error; |
| code | is the negative acknowledgement code in hexadecimal; and |
| detail | is an optional envelop detailing the cause of the rror |
Values for negative acknowledgement codes are defined as follows:
| value | name | meaning (in the voice of the receiver's server) | additional fields |
|---|---|---|---|
| 0x9001 | NAK_RECEIVER_OFFLINE | Your datagram was received, but I cannot process it because the user is off-line, and for some reason I cannot (or refuse to) buffer the message. Maybe I don't buffer messages, or maybe the receiver's buffer is full. | optional: envelop giving reason why message cannot be buffered |
| 0xA001 | NAK_RECEIVER_UNKNOWN | I do not know the receiver indicated in your datagram. | none |
| 0xA002 | NAK_SENDER_FORBIDDEN | Your client or your client's zone is not allowed to send datagrams to the receiver. | optional: envelop explaining why |
| 0xA003 | NAK_RECEIVER_FORBIDDEN | I am not allowing your receiver to receive messages right now. His account has been temporarily disabled. It's not your fault. | optional: envelop explaining why |
| 0xF001 | NAK_UNSUPPORTED_PROTOCOL | I do not speak the protocol indicated in your datagram. | none |
| 0xF002 | NAK_UNSUPPORTED_ACTION | I do not know or do not support the action indicated in your datagram. | none |
| 0xFFFF | NAK_CORRUPT | I do not recognize your datagram as a valid ODSIMS datagram. I think it contains errors. Since the UDP protocol, by which datagrams are delivered, inherently guarantees that delivered datagrams are error-free, we must assume that either you or I am implemented incorrectly. | none |
The values of these codes are intended to be distinct from the values of all server-to-server action codes, server-to-client positive acknowledgement codes, and server-to-client failure codes. Implementors may assume that this will always be the case.
This message is the opposite of RX_ACK.