0

我是 Sip2Peer 的新手,我试图将我的 Bootstrap Peer 和 SBC 设置为使用 Android 示例。我在我的服务器中安装了 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

在我的智能手机中,我没有配置 SBC,因为我使用的是 3G 连接,它不在 NAT 后面。我的两个模拟器在 NAT 后面,所以我配置了它。然后我在两个模拟器中单击了 SBC 菜单选项,并从所有三个设备发送了加入消息。

当我在模拟器中执行此操作时,会出现带有消息“Received:peer_list”的 Toast,但它不会出现在我的智能手机中。是因为我没有使用 SBC 吗?如果我不在 NAT 后面,我认为不需要它。

问题是,如果我检查对等列表,它总是空的。我在我的引导文件和 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,它会起作用,我会收到它们,这是不起作用的列表。

有谁知道为什么它不起作用?

谢谢!

4

1 回答 1

2

可能您应该为不同的设备使用不同的对等密钥,因此引导对等点会将您的所有设备视为不同的对等点。

您可以在方法中更改对等方的密钥PeerActivity.init()

于 2012-12-01T17:13:50.147 回答