mirror of
https://git.sr.ht/~emerson/reflectionircd
synced 2025-08-05 16:59:10 +00:00
51 lines
1.8 KiB
Markdown
51 lines
1.8 KiB
Markdown
![]() |
---
|
||
|
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!
|