Software / code / prosody-modules
Comparison
mod_tcpproxy/README.markdown @ 1803:4d73a1a6ba68
Convert all wiki pages to Markdown
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 28 Aug 2015 18:03:58 +0200 |
| parent | 1782:mod_tcpproxy/README.wiki@29f3d6b7ad16 |
| child | 1820:8de50be756e5 |
comparison
equal
deleted
inserted
replaced
| 1802:0ab737feada6 | 1803:4d73a1a6ba68 |
|---|---|
| 1 --- | |
| 2 labels: | |
| 3 - 'Stage-Beta' | |
| 4 summary: 'TCP-over-XMPP :)' | |
| 5 ... | |
| 6 | |
| 7 Introduction | |
| 8 ============ | |
| 9 | |
| 10 It happens occasionally that I would like to use the XMPP server as a | |
| 11 generic proxy for connecting to another service. It is especially | |
| 12 awkward in some environments, and impossible in (for example) Javascript | |
| 13 inside a web browser. | |
| 14 | |
| 15 Details | |
| 16 ======= | |
| 17 | |
| 18 Using mod\_tcpproxy an XMPP client (including those using BOSH) can | |
| 19 initiate a pipe to a given TCP/IP address and port. This implementation | |
| 20 uses the [In-Band Bytestreams](http://xmpp.org/extensions/xep-0047.html) | |
| 21 XEP, simply extended with 2 new attributes in a new namespace, host and | |
| 22 port. | |
| 23 | |
| 24 An example Javascript client can be found in the web/ directory of | |
| 25 mod\_tcpproxy in the repository. | |
| 26 | |
| 27 Configuration | |
| 28 ============= | |
| 29 | |
| 30 Just add tcpproxy as a component, for example: | |
| 31 | |
| 32 `Component "tcp.example.com" "tcpproxy"` | |
| 33 | |
| 34 Protocol | |
| 35 ======== | |
| 36 | |
| 37 A new stream is opened like this: | |
| 38 | |
| 39 <iq type="set" id="newconn1" to="tcp.example.com"> | |
| 40 <open xmlns='http://jabber.org/protocol/ibb' | |
| 41 sid='connection1' | |
| 42 stanza='message' | |
| 43 xmlns:tcp='http://prosody.im/protocol/tcpproxy' | |
| 44 tcp:host='example.com' | |
| 45 tcp:port='80' /> | |
| 46 </iq> | |
| 47 | |
| 48 The stanza attribute (currently) MUST be 'message', and a block-size, if | |
| 49 given, is (currently) ignored. | |
| 50 | |
| 51 In response to this stanza you will receive a result upon connection | |
| 52 success, or an error if the connection failed. You can then send to the | |
| 53 connection by sending message stanzas as described in the IBB XEP. | |
| 54 Incoming data will likewise be delivered as messages. | |
| 55 | |
| 56 Compatibility | |
| 57 ============= | |
| 58 | |
| 59 ----- -------------- | |
| 60 0.7 Works | |
| 61 0.6 Doesn't work | |
| 62 ----- -------------- | |
| 63 | |
| 64 Todo | |
| 65 ==== | |
| 66 | |
| 67 - ACLs (restrict to certain JIDs, and/or certain target hosts/ports) | |
| 68 - Honour block-size (undecided) | |
| 69 - Support iq stanzas for data transmission | |
| 70 - Signal to start SSL/TLS on a connection |