我是 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,它会起作用,我会收到它们,这是不起作用的列表。
有谁知道为什么它不起作用?
谢谢!