COI (Chat Over IMAP)

Enabling the plugins

COI is only configured at backends, and needs no changes in proxies or directors.

Webpush needs to be added to global mail_plugins and COI plugin needs to be added to mail_plugins of imap and lmtp protocols separately as follows:

mail_plugins = $mail_plugins notify push_notification webpush

protocol imap {
  mail_plugins = $mail_plugins imap_coi
}
protocol lmtp {
  mail_plugins = $mail_plugins lmtp_coi
}

COI uses imap metadata for configuration, so mail_attribute_dict has to be configured, for example:

mail_attribute_dict = file:%h/dovecot-attributes

Webpush configuration

Note

The actual pushes are not implemented yet, nothing is sent by the plugin.

Webpush imap capability needs to be enabled manually:

imap_capability = +WEBPUSH

Webpush plugin can be configured with the plugin settings:

  • webpush_subscription_expire sets how fast subscriptions have to be validated
  • webpush_subscription_limit sets how many subscriptions a user can have simultaneously
  • webpush_vapid_curve sets which EC curve is used for VAPID keys. Supported values are prime256v1, secp384r1 and secp521r1.

The defaults are:

plugin {
  push_notification_driver = webpush
  webpush_subscription_expire = 5 min
  webpush_subscription_limit = 10
  webpush_vapid_curve = prime256v1
}

COI configuration

The only COI plugin setting is coi_mailbox_root. It configures where the plugin creates Chat and Contacts folders. The default is:

plugin {
  coi_mailbox_root = COI
}