Projects tigase _server server-core Issues #689
Add support for XEP-0215 External Service Discovery (#689)
Andrzej Wójcik (Tigase) opened 9 years ago
Due Date
2016-09-11

We should add support for "XEP-0215: External Service Discovery" to be able to advertise external services, ie. TURN servers, etc.

  • Andrzej Wójcik (Tigase) commented 9 years ago

    I implemented support for XEP-0215 External Service Discovery in component responsible for processing requests and XMPP processor for SessionManager responsible for forwarding requests to component.

    Component (which is implemented in class tigase.server.extdisco.ExternalServiceDiscoveryComponent@) is by default registered under name @ext-disco and disabled. To enable it you need to enable it in configuration.

    Example:

    • in DSL format:
    ext-disco () { }
    
    • as properties:
    ext-disco/active=true
    

    Additionally you need to activate urn:xmpp:extdisco:2 XMPP processor in SessionManager by:

    • in DSL - enable subbean of @sess-man@:
    sess-man {
        'urn:xmpp:extdisco:2'() {}
    }
    
    • properties file - add it's id to sess-man/beans property:
    sess-man/beans=urn:xmpp:extdisco:2
    

    List of external services returned by server is configurable in configuration file or using adhoc commands provided for this component (accessible only for server administrator).

    Example of custom configuration with 2 services being registered in configuration file. Each service entry consists of internal id followed by : separated list of properties, in form @name=value@. Allowed properties are listed with description in XEP-0215: External Service Discovery - Section 2. Protocol in Table 1: Attributes :

    • in DSL:
    sess-man {
        'urn:xmpp:extdisco:2'() {}
    }
    
    ext-disco () {
        externalServiceDiscoveryRepository {
            items = [
                "TURN server (TCP):host=turn.example.com:type=turn:name=TURN Server:transport=tcp",
                "FTP server:host=ftp.example.com:port=21:type=ftp:name=FTP Server:transport=tcp"
            ]
        }
    }
    
    • as properties (should be in single line):
    ext-disco/externalServiceDiscoveryRepository/items=TURN server (TCP):host=turn.example.com:type=turn:
    name=TURN Server:transport=tcp,FTP server:host=ftp.example.com:port=21:type=ftp:name=FTP Server:transport=tcp
    
  • Andrzej Wójcik (Tigase) commented 9 years ago

    Feature implemented and added documentation to Tigase XMPP Server project Admin Guide for 7.2.0

issue 1 of 1
Type
New Feature
Priority
Normal
Assignee
RedmineID
4312
Version
tigase-server-8.0.0
Spent time
0
Issue Votes (0)
Watchers (0)
Reference
tigase/_server/server-core#689
Please wait...
Page is in error, reload to recover