我们正在开发一个iOS应用程序,我们需要了解它如何在同一本地网络上的2台设备/机器上运行VoIP。在同一网络上的2个Skype用户之间传输文件时,文件传输速度非常快。因此,当连接2个设备在同一网络上时,必须有不同的东西。
文件共享可能与VoIP不同,至少VoIP部分对同一网络或不同网络上的用户的工作方式相同。但如果不是这样,那么我想知道通过Skype在同一网络和不同网络上连接机器的区别。
答案 0 :(得分:0)
通常VoIP基于3种协议。 SIP,RTP和RTCP。
尝试阅读一些有关SIP信号或SIP消息流的文章。同一网络中的两个设备可以直接通信或通过SIP代理进行通信。基本上,应用程序必须至少支持:
以及其他一些SIP消息和状态代码。您的应用必须能够处理协商编解码器的SDP消息 - 选择一些免费和开放的编解码器,如G.711或iLBC。在SDP报头内也协商RTP和RTCP端口,尝试阅读有关SDP的内容。
由于此标准模型使用多个端口,因此在实施NAT时可能会出现问题,但由于您位于同一LAN内,因此不是这种情况。
注意转移速度 - 如果您在同一网络中,您在呼叫时不会遇到任何损伤 - 语音以每20 ms发送的非常小的数据包(即273字节)发送。如果您使用的是有线100 Mbit或1 Gbit网络,则可以完美运行。在使用Wi-Fi时,可能会出现一些损伤,因为它不太可靠。
可在此处找到更多信息:
http://www.ietf.org/rfc/rfc3261.txt
http://tools.ietf.org/html/rfc4566.html
http://www.ietf.org/rfc/rfc3550.txt
如果您对VoIP有任何进一步的问题,我希望至少能回答一下您的问题。