reflectionircd/docs/specs/extended-invite.md

51 lines
1.8 KiB
Markdown
Raw Normal View History

2022-01-24 10:23:06 -05:00
---
title: Extended Invites
layout: spec
work-in-progress: true
copyrights:
-
name: "Emerson Veenstra"
email: "ircv3@emersonveenstra.net"
period: "2022"
---
## Notes for implementing work-in-progress version
This is a work-in-progress specification.
Software implementing this work-in-progress specification MUST NOT use the
unprefixed `extended-invite` capability name. Instead, implementations SHOULD
use the `draft/extended-invite` capability name to be interoperable with other
software implementing a compatible work-in-progress version.
The final version of the specification will use an unprefixed capability name.
## Introduction
This specification extends the `INVITE` command to allow for an optional reason.
The reason can be used to give more context around why the invite was sent.
## Implementation
Servers implementing this spec MUST also implement the `invite-notify` capability. Clients SHOULD
negotiate the `invite-notify` capability when negotiating `extended-invite`.
## Capabilities
Clients that have negotiated the `extended-invite` capability MAY add a final parameter on
an `/INVITE` command. This parameter is to give the target user context for the invite. This
parameter MUST NOT cause the message to exceed the maximum allowable line length of the
server.
Servers that implement `extended-invite` MUST accept `INVITE` commands with three parameters.
If the user receiving the invite has negotiated `extended-invite`, the server sends the
final parameter to that user. Additionally, the final parameter is added to the `INVITE` command
sent to any users that have negotiated both the `extended-invite` and `invite-notify` capabilities.
## Examples
For example:
C: INVITE emerson #project-test :We're testing out our project in here!
S: n!u@h INVITE emerson #project-test :We're testing out our project in here!