在安装在ec2 ubuntu实例上的ejabberd服务器上启用mod_proxy65



我正在开发一个iOS聊天应用程序,因此对于媒体传输工作,我需要启用mod_proxy65,并且我已经在ejabberd.cfg文件中启用了相同的默认设置:{mod_proxy65[]}。在客户端,我使用https://github.com/robbiehanson/XMPPFramework xmpp框架的iOS。在TURNSocket。我已经使用代理候选dev.myserver.com代替默认的jabber.org。现在当我尝试打开TURN连接时,收到和发送的iq序列如下:

SEND: <iq type="get" to="dev.myserver.com" id="A9876DD0-B13C-4DC7-B812-2A6E653288BC"><query xmlns="http://jabber.org/protocol/disco#items"/></iq>

RECV: <iq xmlns="jabber:client" from="dev.gungroo.com" to="smita@dev.myserver.com/24983171131368877324197828" id="A9876DD0-B13C-4DC7-B812-2A6E653288BC" type="result"><query xmlns="http://jabber.org/protocol/disco#items"><item jid="conference.dev.myserver.com"/><item jid="irc.dev.myserver.com"/><item jid="proxy.dev.myserver.com"/><item jid="pubsub.dev.myserver.com"/><item jid="vjud.dev.myserver.com"/></query></iq>

SEND: <iq type="get" to="proxy.dev.myserver.com" id="26D694FB-C679-478C-A3D1-A84B9A583534"><query xmlns="http://jabber.org/protocol/disco#info"/></iq>

RECV: <iq xmlns="jabber:client" from="proxy.dev.myserver.com" to="smita@dev.myserver.com/24983171131368877324197828" id="26D694FB-C679-478C-A3D1-A84B9A583534" type="result"><query xmlns="http://jabber.org/protocol/disco#info"><identity category="proxy" type="bytestreams" name="SOCKS5 Bytestreams"/><feature var="http://jabber.org/protocol/disco#info"/><feature var="vcard-temp"/><feature var="http://jabber.org/protocol/bytestreams"/><x xmlns="jabber:x:data" type="result"><field var="FORM_TYPE" type="hidden"><value>http://jabber.org/network/serverinfo</value></field></x></query></iq>

SEND: <iq type="get" to="proxy.dev.myserver.com" id="C60068A2-985C-4C5C-87B3-C9FFFB41FDF0"><query xmlns="http://jabber.org/protocol/bytestreams"/></iq>

RECV: <iq xmlns="jabber:client" from="proxy.dev.gungroo.com" to="smita@dev.myserver.com/24983171131368877324197828" id="C60068A2-985C-4C5C-87B3-C9FFFB41FDF0" type="result"><query xmlns="http://jabber.org/protocol/bytestreams"><streamhost jid="proxy.dev.myserver.com" host="10.212.103.159" port="7777"/></query></iq>

这里是问题,它返回给我服务器dev.myserver.com的内部ip地址(10.212.103.159),导致TURN连接失败。为什么不返回proxy.dev.myserver.com的外部IP地址?要在同一页面上:proxy.dev.myserver.com和dev.myserver.com都指向相同的外部ip。端口7777在我的服务器dev.myserver.com上是打开的。有谁做过同样的工作,请帮助??下面是最后一个iq(发送和接收),它显示了错误消息:

发送

<iq type="set" to="smita1@dev.myserver.com/38303823331368691199448799" id="2D376DBF-D437-48C8-B0FF-B10A5CD73240">
    <query xmlns="http://jabber.org/protocol/bytestreams" sid="2D376DBF-D437-48C8-B0FF-B10A5CD73240" mode="tcp">
        <streamhost xmlns="http://jabber.org/protocol/bytestreams" jid="proxy.dev.myserver.com" host="10.212.103.159" port="7777"/>
    </query>
</iq>

RECV

<iq xmlns="jabber:client" from="smita1@dev.myserver.com/38303823331368691199448799" to="smita@dev.myserver.com/278621573136869119737843" type="error" id="2D376DBF-D437-48C8-B0FF-B10A5CD73240">
    <query xmlns="http://jabber.org/protocol/bytestreams" sid="2D376DBF-D437-48C8-B0FF-B10A5CD73240" mode="tcp">
       <streamhost xmlns="http://jabber.org/protocol/bytestreams" jid="proxy.dev.myserver.com" host="10.212.103.159" port="7777"/>
    </query>
    <error type="cancel" code="501">
        <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
    </error>
</iq>
如果有人能给我指出问题所在就太好了。谢谢!

这帮助我解决了这个问题。Xx.xx.xx.xx是我的外部ip。{mod_proxy65,[{主机名("xx.xx.xx.xx")}]},

访问这个,我可以给出一个想法[xmpp框架- TURNSocket可以't接收自己发送的数据?)

也[http://xmpp.org/extensions/xep-0096.html],[XMPP发送/接收文件在iphone sdk…?)

最新更新