私は Sip2Peer を初めて使用し、Android の例を使用するように Bootstrap Peer と SBC を設定しようとしていました。サーバーに Apache Ant をインストールし、BootstrapPeer.java と SessionBorderController.java を実行しました。SBC を実行すると、次の警告が表示されます。
WARNING: file "users.db" not found: created new empty DB
touch users.db を使って作成したのですが、それでいいのかわかりません。
次に、Android 用の Sip2Peer アプリケーションで 2 つのエミュレーターを実行し、スマートフォンでも実行しました。私はこれらを次のように設定しました (両方の IP は同じで、セキュリティのために隠しているだけです):
Bootstrap Peer: bootstrap@147.83.XXX.XXX:5080
SCB Server: 147.83.XXX.XXX:6066
私のスマートフォンでは、3G 接続を使用しているため、SBC を構成しませんでした。NAT の背後にあるわけではありません。私の 2 つのエミュレーターは NAT の背後にあるため、構成しました。次に、両方のエミュレーターで SBC メニュー オプションをクリックし、3 つのデバイスすべてから参加メッセージを送信しました。
エミュレーターでそれを行うと、「Received:peer_list」というメッセージが表示されたトーストが表示されますが、スマートフォンには表示されません。SBCを使っていないからでしょうか?NAT の背後にいなければ必要ないと思っていました。
問題は、ピア リストを確認すると常に空であることです。Bootstrap ファイルと onReceivedJSONMsg の次の文にいくつかの println を設定しました。
//check the numPeerList field
int numPeer = (Integer) peerMsg.get("numPeerList");
この numPeer は常に 0 であるため、if 句には入りません。これは私のログの入り口です:
{"sender":"peerDroid@10.0.2.XXX:50250","timestamp":1345816615658, "byte":218, "type":"recv", "typeMessage":"peer_join"}
{"sender":"peerDroid@10.178.51.XXX:50250","timestamp":1345816615658, "byte":223, "type":"recv", "typeMessage":"peer_join"}
{"timestamp":1345816650244, "receiver":"peerDroid@10.0.2.XXX:50250", "byte":"70", "transaction":"successful", "RTT":"7", "type":"sent", "typeMessage":"peer_list"}
{"timestamp":1345816650244, "receiver":"peerDroid@10.178.51.XXX:50250", "byte":"70", "transaction":"failed", "RTT":"7", "type":"sent", "typeMessage":"peer_list"}
デバイス間でpingを送信しようとすると、動作し、受信します。動作していないもののリストです。
なぜ機能しないのか誰にもわかりませんか?
ありがとう!