我对iOS SIP应用程序的理解或说VOIP应用程序是:
它是服务器和服务器之间的持久TCP连接。设备。一旦呼叫请求到来,它就会与服务器建立与其他设备的RTP连接。现在,您可以在此连接上交换语音或其他数据包。有实时通话。
使用Push Kit框架,我感到困惑的是它究竟是如何工作的?
问题:
这可能是我的理解错误。但我想知道关于VOIP应用程序如何与APNS协同工作的流程架构。
我尝试通过互联网查看各种文章,但我对Push-Kit的VOIP-APNS的理解是,它会在后台唤醒你的应用程序,但是他们无法澄清我的上述问题。
请有人对这个话题说清楚。
答案 0 :(得分:1)
1当应用程序转到后台时,我的VOIP TCP连接是否仍然存在或已关闭?
是和否,当应用程序在iOS 9或更早版本上运行后,如果您进行了编程,它将保持连接,即这里有实时TCP连接的机会。
但是在iOS 10中,应用程序在后台运行时永远不会处于活动状态,即没有实时TCP连接的范围。
2如果关闭,在获得VOIP APNS之后,SIP协议与主TCP连接的工作原理是什么? 3当VOIP APNS进入时,我们是否必须建立连接?如果在那个时候由于某种原因建立TCP失败怎么办。
一旦应用程序处于后台并且TCP连接关闭,在收到PushKit通知后,iOS将唤醒应用程序,那时我们需要运行代码片段再次与服务器建立TCP连接。
如果这次TCP连接失败,那么用户将无法获得语音,我们需要再次运行代码片段来连接TCP。
4我们在SIP服务器上需要做哪些改变才能实现这一目标?
对于服务器端,它与APNS(常规推送通知)完全相同。见this SO post