view mod_extdisco/README.md @ 6556:7477e97a9045

mod_firewall: Apply pre-reload state before re-reading config This change makes load/reload a bit more robust. module.load() runs before module.restore() and it reads from the config and updates the state (if needed). However, after this, module.restore() could run and apply the old state again.
author Matthew Wild <mwild1@gmail.com>
date Sun, 24 May 2026 20:03:20 +0100
parents 8d75d5f82a83
children
line wrap: on
line source

---
summary: External Service Discovery
superseded_by: mod_external_services
labels:
- 'Stage-Obsolete'
...


::: {.alert .alert-warning}
This module is obsolete, please use [mod_external_services] (nearly exact replacement) 
or [mod_turn_external] (narrow scope for turn), both included in prosody.
:::

Introduction
============

This module adds support for [XEP-0215: External Service Discovery],
which lets Prosody advertise non-XMPP services.

Configuration
=============

Example services from the XEP:

``` {.lua}
modules_enabled = {
    -- other modules ...
    "extdisco";
}

external_services = {
    ["stun.shakespeare.lit"] = {
        port="9998";
        transport="udp";
        type="stun";
    };
    ["relay.shakespeare.lit"] = {
        password="jj929jkj5sadjfj93v3n";
        port="9999";
        transport="udp";
        type="turn";
        username="nb78932lkjlskjfdb7g8";
    };
    ["192.0.2.1"] = {
        port="8888";
        transport="udp";
        type="stun";
    };
    ["192.0.2.1"] = {
        port="8889";
        password="93jn3bakj9s832lrjbbz";
        transport="udp";
        type="turn";
        username="auu98sjl2wk3e9fjdsl7";
    };
    ["ftp.shakespeare.lit"] = { 
        name="Shakespearean File Server";
        password="guest";
        port="20";
        transport="tcp";
        type="ftp";
        username="guest";
    };
}
```

Compatibility
=============

Incompatible with
[mod_turncredentials](https://modules.prosody.im/mod_turncredentials).