web-dev-qa-db-ja.com

TURN | STUNをXMPPと統合する

XMPPクライアントはどのようにしてTURNまたはSTUNサーバーを見つけますか? XEP-0215 は(どのサーバーまたはクライアントでも)サポートされていませんが、 XEP-0176 はXEP-0215の使用を提案していますか?

XMPPサーバーとTURNサーバーの両方を実行していますが、XMPPクライアントに通知するか、TURNサーバーを検出してもらいたいです。 Pidgin/empathy(私がサポートする必要のあるクライアント)は何をしますか?正規のクロスクライアントアプローチはありますか?おそらく:

  • ディスコに情報を埋め込む(XEP-0030-誤用される)
  • サーバーはXEP-0114を使用して「魔法」を実行します
  • クライアントはDNSレコードをチェックします
  • クライアントはホスト(JIDから派生)@既知のポートをチェックします
  • クライアントは何もしません(私はそうしないことを望みます)

ありがとう。

また、Jingle/ICE/RTPのコンテキストで質問していますが、これはXMPPでのTURNの使用に適用されます。

1
user19087

一部のXMPPクライアント(AdiumやPidginなどのlibpurpleベースのクライアントなど)は、DNSSRVレコードを使用します。

http://wiki.xmpp.org/web/SRV_Records#STUN_SRV_records

_stun._tcp.example.net. TTL IN SRV priority weight port target
_stun._udp.example.net. TTL IN SRV priority weight port target

例えば.

_stun._tcp.example.net. 86400 IN SRV 5 50 3478 server1.example.net.
_stun._tcp.example.net. 86400 IN SRV 10 30 3478 server2.example.net.
_stun._tcp.example.net. 86400 IN SRV 10 10 3478 server3.example.net.
_stun._tcp.example.net. 86400 IN SRV 10 10 3478 server4.example.net.
_stun._tcp.example.net. 86400 IN SRV 15 0 3478 backup.example.net.
_stun._udp.example.net. 86400 IN SRV 5 50 3478 server1.example.net.
_stuns._tcp.example.net. 86400 IN SRV 5 50 5349 server1.example.net.

http://wiki.xmpp.org/web/SRV_Records#TURN_SRV_records

_turn._tcp.example.net. TTL IN SRV priority weight port target
_turn._udp.example.net. TTL IN SRV priority weight port target
_turns._tcp.example.net. TTL IN SRV priority weight port target

例えば.

_turn._tcp.example.net. 86400 IN SRV 5 50 3478 server1.example.net.
_turn._tcp.example.net. 86400 IN SRV 10 30 3478 server2.example.net.
_turn._tcp.example.net. 86400 IN SRV 10 10 3478 server3.example.net.
_turn._tcp.example.net. 86400 IN SRV 10 10 3478 server4.example.net.
_turn._tcp.example.net. 86400 IN SRV 15 0 3478 backup.example.net.
_turn._udp.example.net. 86400 IN SRV 5 50 3478 server1.example.net.
_turns._tcp.example.net. 86400 IN SRV 5 50 5349 server1.example.net.
1
Hekmon