# HG changeset patch # User MWild1 # Date 1271170237 0 # Node ID e61fe5ca5c477a377a335498469d0b6c74818040 # Parent fc73b01fb8259b4a1aecb633e6dd3fce9c510f8d Created wiki page through web user interface. diff -r fc73b01fb825 -r e61fe5ca5c47 mod_tcpproxy.wiki --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_tcpproxy.wiki Tue Apr 13 14:50:37 2010 +0000 @@ -0,0 +1,47 @@ +#summary TCP-over-XMPP :) +#labels Stage-Beta + += Introduction = + +It happens occasionally that I would like to use the XMPP server as a generic proxy for connecting to another service. It is especially awkward in some environments, and impossible in (for example) Javascript inside a web browser. + + += Details = + +Using mod_tcpproxy an XMPP client (including those using BOSH) can initiate a pipe to a given TCP/IP address and port. This implementation uses the [http://xmpp.org/extensions/xep-0047.html In-Band Bytestreams] XEP, simply extended with 2 new attributes in a new namespace, host and port. + +An example Javascript client can be found in the web/ directory of mod_tcpproxy in the repository. + += Configuration = +Just add tcpproxy as a component, for example: + +{{{Component "tcp.example.com" "tcpproxy"}}} + += Protocol = + +A new stream is opened like this: + +{{{ + + + +}}} + +The stanza attribute (currently) MUST be 'message', and a block-size, if given, is (currently) ignored. + +In response to this stanza you will receive a result upon connection success, or an error if the connection failed. You can then send to the connection by sending message stanzas as described in the IBB XEP. Incoming data will likewise be delivered as messages. + += Compatibility = +||0.7||Works|| +||0.6||Doesn't work|| + += Todo = + * ACLs (restrict to certain JIDs, and/or certain target hosts/ports) + * Honour block-size (undecided) + * Support iq stanzas for data transmission + * Signal to start SSL/TLS on a connection \ No newline at end of file