简体   繁体   English

Linphone如何在Android / iOS上支持推送通知

[英]How Linphone support push notifications on Android/iOS

I have an interest in APNS and GCM push notifications for SIP VoIP on iOS and Android, respectively. 我对分别用于iOS和Android上的SIP VoIP的APNS和GCM推送通知感兴趣。

It would appear that Linphone may support GCM, according to the "Receive data from Internet" permission of its Android app, and probably both APNS and GCM, according to http://www.linphone.org/eng/features/ : 根据http://www.linphone.org/eng/features/的说法,Linphone似乎根据其Android应用程序的“从Internet接收数据”许可支持GCM,并且可能支持APNS和GCM:

Integration with push notification (requires compatible SIP server) 与推送通知集成(需要兼容的SIP服务器)

  • What does it mean, "compatible SIP server"? “兼容的SIP服务器”是什么意思?

  • How do I know if a given SIP server is compatible? 我如何知道给定的SIP服务器是否兼容?

  • Are any such servers open-source? 有没有这样的服务器是开源的?

  • Is this all limited to Linphone's own servers? 这是否仅限于Linphone自己的服务器?

I am asking this on StackOverflow, since I have an interest in this from a developer's perspective. 我在StackOverflow上问这个问题,因为我从开发人员的角度对此感兴趣。

1) Compatible SIP Server means a SIP Server that supports "late forking" ie a server that can fork an invite when a device registers, even though the device was not registered at the time the invite was sent. 1)兼容的SIP服务器是指支持“后期派生”的SIP服务器,即,即使在发送邀请时未注册设备,也可以在设备注册时派生邀请的服务器。 (This is required because if you are using the push notification strategy for mobile VoIP apps as required by iOS 10 and above , the mobile device will not be registered until after the device receives a push, and the push will be sent at the same time as the invite) (这是必需的,因为如果您按照iOS 10及更高版本的要求对移动VoIP应用程序使用推送通知策略,则只有在设备收到推送后,该移动设备才会被注册,并且推送将同时发送作为邀请)

2) Ask the server admin, or if that is not an option try deregistering your device, placing a call, and re-registering your device and seeing if the invite comes in 2)询问服务器管理员,或者如果不是这样,请尝试注销您的设备,拨打电话,然后重新注册您的设备,然后查看邀请是否到来

3a) Kamillio has a Module called TSILO that supports late forking here is a video that both explains what the push notification strategy is and how to implement it in Kamillio using TSILO 3a)Kamillio有一个称为TSILO的模块,该模块支持后期分叉, 此处是一个视频,解释了推送通知策略是什么以及如何使用TSILO在Kamillio中实施

3b) Linphone has an Open Source proxy server called Flexisip that supports late forking and can be used on top of your current server if it doesn't support late forking. 3b)Linphone具有一个称为Flexisip的开源代理服务器,该服务器支持后期派生,如果不支持后期派生,则可以在当前服务器的顶部使用。 Flexisip can be installed on your own server or on a cloud platform. Flexisip可以安装在您自己的服务器或云平台上。 Like Linphone, Flexisip has a dual license, free AGPL or a commercial license 与Linphone一样,Flexisip具有双重许可,免费的AGPL或商业许可

4) No it is not restricted to only Linphone's own servers. 4)不,它不仅限于Linphone自己的服务器。

Keep in mind that the server still has to send a push notification at the time of the invite(If you are using Flexisip and configure it correctly Flexisip will take care of sending the push notification). 请记住,服务器在邀请时仍必须发送推送通知(如果您使用Flexisip并进行了正确配置,Flexisip将负责发送推送通知)。

According to the answer of @user8127814: 根据@ user8127814的答案:

I don't think Linphone is compatible with other "late forking" supported servers. 我认为Linphone与其他“后期分支”支持的服务器不兼容。 Push service requires a unique identity for each device, which means you need to pass this thing through SIP protocol. 推服务对每个设备都需要一个唯一的标识,这意味着您需要通过SIP协议传递此信息。 Linphone sends it (called device ID in iOS push service, name may vary in different push services) within the contact header, and it's non part of regular SIP standards. Linphone在联系人标题中发送它(在iOS推送服务中称为设备ID,名称在不同的推送服务中可能会有所不同),它不是常规SIP标准的一部分。 Which means the server must be designed exactly to recognise this params to support push function just like Flexisip. 这意味着服务器必须设计得完全能够识别此参数,以像Flexisip一样支持推送功能。 Correct me if I'm wrong. 如果我错了纠正我。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM