对于pjsip.js中的以下代码
endpoint.on("call_received", (call) => {
dispatch(onCallReceived(call))
})
在Android中,pjsip模块在后台模式下仍然可以接收来电。
但是,在IOS中,事件回调不会触发。在我单击IOS中的应用程序后,仍然会收到来电。在iOS中必须配置任何设置吗?我已经在info.plist后台UI中添加了voip字符串。
任何解决方案吗?
答案 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