我需要一些设计决定的帮助。我目前正在构建一个需要VoIP功能的iOS应用程序,我有一些问题。
据我所知,iOS只能在后台维护TCP连接。如果我在通话期间打开RTP连接,那么当用户进入后台时,该通话会丢失吗?如果是这样,Skype和其他人如何做到这一点?
如果我必须简单地通过TCP传输音频以保持对话在后台进行,那么有人建议如何在呼叫期间抖动缓冲区空运行时保持音频同步吗?
答案 0 :(得分:1)
回答(1):
iOS VoIP应用可能会在后台保留一个TCP套接字,通常是您的SIP套接字,以允许来电(INVITE)。
虽然您的应用有正在进行的通话,并且已进入后台,没有任何限制,但您可以根据需要保留尽可能多的套接字。
Here is a more detailed answer from another thread
关于SIP堆栈实现,您可能需要检查open-source PJSip stack