diff --git a/xep-0065.xml b/xep-0065.xml index 4c5754fb..297d0c6e 100644 --- a/xep-0065.xml +++ b/xep-0065.xml @@ -200,8 +200,8 @@
Before attempting to initiate a bytestream, the Initiator may want to know if the Target supports the bytestream protocol. It may do so using &xep0030; as follows:
If the Target supports bytestreams, it MUST answer to that effect in the service discovery result.
The server will return all of the known JIDs in its disco list.
In this case, the bytestreams proxy is hosted on a third party server "example.net", where the proxy itself has an address of "streamhostproxy.example.net".
For each item in the disco#items result, the Initiator must query to determine if it is a bytestreams proxy. It may do so using Service Discovery as follows:
The proxy will return its information. The Initiator SHOULD inspect each identity to see if it contains an identity of category "proxy" and type "bytestreams".
If the StreamHost is a Proxy, the Initiator must first request the full network address used for bytestreaming (obviously this is not required if the StreamHost is the Initiator). This is done by sending an IQ-get to the proxy in the bytestreams namespace, as follows:
If the Initiator does not have permissions to initiate bytestreams on the Proxy for whatever reason (e.g., a proxy implementation may enable administrators to ban JIDs or domains from using the Proxy), the Proxy MUST return a &forbidden; error to the Initiator (for information about error syntax, refer to &xep0086;):
If the Proxy is unable to act as a StreamHost, the Proxy SHOULD return a ¬allowed; error to the Initiator:
The protocol format is shown below.
If the Target is unwilling to accept the bytestream, it MUST return a ¬acceptable; error to the Initiator.
If the Target tries but is unable to connect to any of the StreamHosts and it does not wish to attempt a connection from its side, it MUST return a ¬found; error to the Initiator.
After the Target has authenticated with the StreamHost, it MUST send an IQ-result to the Initiator indicating which StreamHost was used.
In order for the bytestream to be used, it MUST first be activated by the StreamHost. If the StreamHost is the Initiator, this is straightforward and does not require any in-band protocol. However, if the StreamHost is a Proxy, the Initiator MUST send an in-band request to the StreamHost. This is done by sending an IQ-set to the Proxy, including an <activate/> element whose XML character data specifies the full JID of the Target.
If the Proxy can fulfill the request, it MUST then respond to the Initiator with an IQ-result.
If the Proxy cannot fulfill the request, it MUST return an IQ-error to the Initiator; the following conditions are defined:
@@ -592,8 +593,8 @@ STATUS = X'00'If an implementation supports UDP associations, it MUST advertise that separately by returning a feature of 'http://jabber.org/protocol/bytestreams#udp' in response to Service Discovery information requests.
If the Target supports UDP associations, it MUST answer to that effect in the service discovery result.
Upon successful receipt by the StreamHost, the StreamHost MUST reply with a message notification indicating success: