ios - PushKit 框架,它是如何工作的?

标签 ios apple-push-notifications sip voip

我对 iOS SIP 应用或者说 VOIP 应用的理解是:

它是服务器和设备之间的持久 TCP 连接。一旦调用请求到来,它就会与服务器建立 RTP 连接到其他设备。现在您可以在此连接上交换语音或其他数据包并进行实时通话。

对于 Push Kit 框架,我很困惑它究竟应该如何工作?

问题:

  1. 当应用程序进入后台时,我的 VOIP TCP 连接是否仍然存在或已关闭?
  2. 如果关闭,在获取 VOIP APNS 后,SIP 协议(protocol)在没有其主要 TCP 连接的情况下究竟如何工作?
  3. 当 VOIP APNS 进入时,我们是否必须建立连接?如果此时由于某种原因建立 TCP 失败怎么办。
  4. 我们必须对 SIP 服务器进行哪些更改才能实现这一目标?

可能是我的全部理解在这里是错误的。但我想知道有关 VOIP 应用程序如何与 APNS 协同工作的流程架构。

我尝试查看互联网上的各种文章,但我对 Push-Kit 的 VOIP-APNS 的理解是它会在后台唤醒您的应用程序,但他们未能澄清我的上述问题。

谁能对这个话题有所了解。

最佳答案

1 When app goes to background is My VOIP TCP connection still there or it is closed?

是和否,当应用程序在 iOS 9 或更早版本上进入后台时,如果您这样编程,它将保持连接状态,即这里有机会建立 TCP 连接。
但是在 iOS 10 中,应用程序一旦处于后台,就永远不会在任何情况下处于事件状态,即不存在 TCP 连接处于事件状态的范围。

2 If it is closed, after getting VOIP APNS, how exactly the SIP protocol works with out its main TCP connection?
3 Do we have to establish connection when a VOIP APNS comes in? What if at that time establishing TCP fails due to some reason.

一旦应用程序在后台并且 TCP 连接关闭,在收到 PushKit 通知后 iOS 将唤醒应用程序,此时我们需要运行代码片段再次与服务器建立 TCP 连接。
如果这次TCP连接失败,那么用户将无法获得语音,我们需要再次运行代码片段来连接TCP。

4 What kind of changes we have to do in SIP server to achieve this?

对于服务器端,它与 APNS(常规推送通知)完全相同。参见 this SO post

关于ios - PushKit 框架,它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31376219/

相关文章:

ios - 在 Ionic for ios 中接收 URL

ios - 如何在ios中的背景 View 中播放本地视频

ios - MacOS 外接显示器插入时如何收到通知

ios - 测试飞行推送通知工作。这是否意味着我的推送通知可以在应用商店中使用?

android - 我想使用安卓 SIP API

react-native - 在安装模块中 react native PJSIP 错误

java - 从 SipFactory 创建 SipStack

ios - 了解 React Native 中的默认字体大小

ios - Apple PushKit didUpdatePushCredentials 从未在 iOS 9+ 上被调用

ios - 对 SSPI 的调用失败,请参阅内部异常