Android 不同网络上的SIP

Android 不同网络上的SIP,android,video-streaming,sip,voip,lan,Android,Video Streaming,Sip,Voip,Lan,我正在制作一个Android应用程序,用SIP连接设备。连接后,主叫方将视频流发送到接收器,所有视频流在同一局域网内都能正常工作,但我无法使其在不同的网络或蜂窝网络上工作;电话正常,但视频不正常,我认为是因为公共IP不会在视频发送的地方启动私有IP。你能帮助我吗?我需要晕眩或类似的东西吗 关于这一点的另一个问题是,它是否适用于具有公共IP的SIM卡?问题是SIP INVITE和SIP 200 OK(用于INVITE)中的SDP包含的IP地址仅在您自己的网络中有效。假设用户代理服务器(=UAS)位

我正在制作一个Android应用程序,用SIP连接设备。连接后,主叫方将视频流发送到接收器,所有视频流在同一局域网内都能正常工作,但我无法使其在不同的网络或蜂窝网络上工作;电话正常,但视频不正常,我认为是因为公共IP不会在视频发送的地方启动私有IP。你能帮助我吗?我需要晕眩或类似的东西吗


关于这一点的另一个问题是,它是否适用于具有公共IP的SIM卡?

问题是SIP INVITE和SIP 200 OK(用于INVITE)中的SDP包含的IP地址仅在您自己的网络中有效。假设用户代理服务器(=UAS)位于10.x.x.x专用网络中,而用户代理客户端(=UAC)位于192.168.x.x专用网络中。因此,UAS将在SDP中接收包含192.168.x.x作为媒体目的地的SIP INVITE。由于专用IP通过公共网络“不可路由”(当然,因为它们是专用的),UAS无法向UAC发送音频/视频流,反之亦然

可能的解决方案是使用STUN服务器。所以UAC/UAS能够找到它们的公共IP地址->参见此

另一种选择可能是使用IPv6地址,因为它们在全球级别上是唯一的。基于此,NAT不应该是IPv6的问题


希望能有所帮助。

鉴于我需要的用户数量有限,我选择实现VPN,因为只允许在应用程序的用户之间进行通信。谢谢你的回答

谢谢,我会试试这个solution@poly82答案正确吗?如果是,请将问题标记为已解决。谢谢