我正在开发一个 iOS 聊天应用程序,因此要使媒体传输正常工作,我需要启用 mod_proxy65,并且我在 ejabberd.cfg 文件中启用了相同的默认设置:{mod_proxy65[]}
. 在客户端,我正在使用适用于 iOS 的https://github.com/robbiehanson/XMPPFramework xmpp 框架。在 TURNSocket.mi 中使用了代理候选项dev.myserver.com
代替 default jabber.org
。现在当我尝试打开TURN连接时,接收和发送的iq系列如下:
发送:<iq type="get" to="dev.myserver.com" id="A9876DD0-B13C-4DC7-B812-2A6E653288BC"><query xmlns="http://jabber.org/protocol/disco#items"/></iq>
接收:<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>
发送:<iq type="get" to="proxy.dev.myserver.com" id="26D694FB-C679-478C-A3D1-A84B9A583534"><query xmlns="http://jabber.org/protocol/disco#info"/></iq>
接收:<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>
发送:<iq type="get" to="proxy.dev.myserver.com" id="C60068A2-985C-4C5C-87B3-C9FFFB41FDF0"><query xmlns="http://jabber.org/protocol/bytestreams"/></iq>
接收:<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>
接收器
<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>
如果有人能指出我的问题,那就太好了。谢谢!