MANUAL & FAQ
文章详情
本指南将逐步说明如何基于Ubiix VoIP SDK创建本机iOS应用程序,该SDK可以接收Ubiix PBX发送的VoIP推送通知。
1. VoIP通知
官方文档可以在这里找到。其中的一些优点包括:
如果收到VoIP推送时应用程序未运行,应用程序会自动重新启动
设备仅在发生VoIP推送时唤醒(以节省电池)
VoIP会直接推送到您的应用进行处理,并且无延迟地发送
如果收到VoIP推送时应用程序未运行,应用程序会自动重新启动
2.先决条件设置
Apple为我们提供了一个名为PushKit的框架,以支持使用此VoIP推送功能。但是,我们需要配置一些额外的设置才能使其工作。
3.创建一个App ID
接下来,转到标识符 - >应用程序ID,然后单击+按钮。
这里填写的两件重要的事情是:App ID Description和所谓的Bundle ID(这很可能是com.yourdomain.yourappname):
虽然在上面的截图中没有看到,但我使用ubiixVoipTest作为Bundle ID。这在下一步中将很重要。
4.生成VoIP推送证书
单击左侧“ 证书”部分中的“ 全部”按钮和+按钮:
在下一页中,您需要选择VoIP服务证书:
在此之后,您需要选择您创建此VoIP证书的App ID:
接下来,您将看到有关如何创建所谓的CSR(证书签名请求)文件的说明:
一旦你创建了这个文件,你就可以在下一个屏幕上选择它来上传。如果一切顺利,您将获得必须下载的证书:
5.将VoIP 推送支持添加到ubiix SIPSample项目中
下载示例项目,解压缩并打开推送 SIPSample项目。
6.设置适当的功能
7.确保您选择了以下选项
启用推送通知
音频,Airplay和画中画
IP语音
后台提取
远程通知
8.添加代码
打开AppDelegate.cs并在其顶部添加导入PushKit语句。
接下来,在应用函数的 didFinishLaunchingWithOptions 部分中,确保您注册了如下通知:
var userNoticationSettings = UIUserNotificationSettings.GetSettingsForTypes(notificationTypes,new NSSet(new string [] {}));
我们需要实现它的委托回调 函数didRegisterUserNotificationSettings:
公共覆盖无效DidRegisterUserNotificationSettings(UIApplication应用程序,UIUserNotificationSettings notificationSettings)
{
PKPushRegistry pushRegistry = new PKPushRegistry(null);
pushRegistry.Delegate = this;
pushRegistry.DesiredPushTypes = new NSSet(new string [] {PushKit.PKPushType.Voip});
}
在此回调中,我们注册了VoIP通知,因为我们知道用户已同意接收通知(因为此函数已被调用)。我们通过声明voipRegistry对象来启用VoIP通知。
此时,您将在pushRegistry.delegate = self上得到一个错误; 行说不能分配'AppDelegate'类型的值键入'PKPushRegistryDelegate!'。
pushRegistry的委托类型是PKPushRegistryDelegate,它有三种方法,其中两种是必需的。(didUpdatePushCredentials和didReceiveIncomingPushWithPayload)。我们必须定义一个所谓的AppDelegate类的扩展。我们通过在AppDelegate.m文件中的所有当前代码之后添加以下代码来完成此操作:
添加这个扩展后,你会注意到前面提到的错误消失了。
在第一个函数中,我们只输出设备令牌。当我们将通过发送VoIP推送通知来测试我们的应用程序时,我们将在下一部分中需要此令牌。
在第二个中,我们对收到的VoIP推送通知“采取行动”。在这个具体的例子中,如果应用程序在后台显示本地通知,或者如果我们在应用程序中显示警报。第三个函数(didInvalidatePushTokenForType)用于在令牌失效时进行处理。
我们需要通知Ubiix该客户端已经启用了推送,通过向REGISTER消息添加sip头“ubiix-push”。
mUbiixSDK.clearAddedSipMessageHeaders();
addPushSupportWithUbiix(真);
如果您想禁用推送,则需要使用取消注册消息来指示Ubiix。
addPushSupportWithUbiix(假);
当应用程序收到推送或APP正在运行时,它应该自动注册到服务器:
9.准备证书文件
您将获得YOUR_CERT.p12 (例如ubiixgo_voip_push.p12)文件。现在导出证书密钥文件。
这将生成我们将在PBX服务器中使用的ubiixgo_voip_push.pem和ubiixgo_voip_push_key_nopws.pem文件。
10.休斯顿
休斯敦将允许我们从终端窗口发送推送通知以供测试。
sudo gem install -n / usr / local / bin houston
cat ubiixgo_voip_push.pem ubiixgo_voip_push_key-nopwd.pem> ubiixgo2in1.pem
从VoIP Push APP复制设备令牌并按如下所示执行命令:
apn push“”-c ubiixgo2in1.pem -m“测试VoIP通知!”
,请注意,要将ubiixgo_voip_push.pem ubiixgo_voip_push_key-nopwd.pem更改为您在上述步骤中命名该文件的任何内容,您应该在终端中获得以下输出:
1个推送通知已成功发送
而且,如果手机处于前台,您应该在手机上看到推送消息。
11. Ubiix PBX
现在登录Ubiix PBX管理控制台,选择菜单“ 设置 ”>“ 移动推送 ”。
点击“ 添加新应用程序 ”按钮,你会看到下面的屏幕:
请设置以下项目:
启用 - 选中它启用推送并取消选中禁用推送。
Apple和Google都提供生产推送服务器和用于发送推送通知的开发推送服务器。开发生产服务器通常在开发阶段使用。一旦您的应用程序发布,您可以将此设置更改为生产服务器。
应用程序ID - 您在步骤3中创建的ID。请注意,此ID区分大小写。
Apple证书文件和私钥文件。您在步骤9中生成的证书文件。请记住,私钥文件必须没有密码。
点击“ 应用 ”按钮并在PBX中启用推送服务。
沪ICP备18008779号 全球云通信服务商 | 云pbx | 云总机 | 云电话 | ippbx网络电话号码 | 人工智能客服 | 云呼叫中心