We're updating the issue view to help you get more done. 

Allow external components to bind more than one domain

Description

JEP-114 (http://www.jabber.org/jeps/jep-0114.html) only allows one domain to be registered by an external component. The domain is specified in the TO attribute of the intial stream header. Therefore, if an external component needs to bind many domains then the component will need to establish many connections with the server.

Based on Jabberd2 component proto-JEP (http://jabberd.jabberstudio.org/dev/docs/component.shtml#sect-id2593096) we can extend our current implementation to let an external component using one connection to bind many domains.

This is the spec we are following:

. Components will still have to send in the TO attrinbute of the stream header the initial domain for the component.
. Components can bind more domains by sending <bind> stanzas
. New domains have to be under the intial domain. Eg. Initial domain=aim.myserver.com, extra domain should be = conference.aim.myserver.com. Otherwise a forbidden error will be returned
. The server will send a disco request to the new domain and if the component supports disco at the new domain then the new domain will be listed in the disco#items of the server

Example 1. Component sends stream header to server
<stream:stream
xmlns='jabber:component:accept'
xmlns:stream='http://etherx.jabber.org/streams'
to='aim.myserver.com'>

Example of successful binding:
C: <bind name='conference.aim.myserver.com'/>
S: <bind/>

Example of failed binding:
C: <bind name='conference.aim.myserver.com'/>
S: <bind name='conference.aim.myserver.com'/>
S: <error type='cancel'>
S: <conflict xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
S: </error>
S: <bind/>

Possible errors are:
Code Meaning
400 The "name" attribute is missing or invalid
403 The component is not authorised to bind using this name and/or options
409 The name that is already bound

Environment

None

Acceptance Test - Entry

None

Assignee

Gaston Dombiak

Reporter

Gaston Dombiak

Labels

None

Expected Effort

None

Ignite Forum URL

None

Components

Fix versions

Affects versions

Priority

Major
Configure