react-native pjsip模块-iOS背景无记录

时间:2018-09-29 13:20:04

标签: ios react-native pjsip

对于pjsip.js中的以下代码

endpoint.on("call_received", (call) => {
      dispatch(onCallReceived(call))
    })

在Android中,pjsip模块在后台模式下仍然可以接收来电。

但是,在IOS中,事件回调不会触发。在我单击IOS中的应用程序后,仍然会收到来电。在iOS中必须配置任何设置吗?我已经在info.plist后台UI中添加了voip字符串。

任何解决方案吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,要在iOS的后台中触发此触发器,您将不得不使用PushKit和CallKit。您需要在info.plist中启用VOIP后台模式,并在Apple Developer Portal中创建VOIP服务证书。

入站呼叫进入时,服务器将需要发送iOS VOIP推送通知。如果您使用的是AWS,则可以使用AWS SNS,因为它们可以处理iOS VOIP推送通知。 Firebase或GCM不支持这些特殊的VOIP通知。

基本上,此通知将唤醒iOS应用,您可以重新注册PJSIP,然后传入的SIP邀请可以触发CallKit显示入站呼叫。您可以在React Native PJSIP示例仓库中查看如何设置:https://github.com/datso/react-native-pjsip-app/blob/master/app/modules/pjsip.js#L106

这是CallKit和PushKit的2个软件包 https://github.com/ianlin/react-native-voip-push-notification https://github.com/ianlin/react-native-callkit