我正在开发iOS中的pjsip音频呼叫软件电话应用程序。我希望有来电时打开我的应用。
我尝试在星号上找到有关AGI的信息。并设置Firebase通知。现在注册pushtry,pjsip上没有文档
// Register for VoIP notifications
- (void) voipRegistration {
dispatch_queue_t mainQueue = dispatch_get_main_queue();
// Create a push registry object
PKPushRegistry * voipRegistry = [[PKPushRegistry alloc] initWithQueue: mainQueue];
// Set the registry's delegate to self
voipRegistry.delegate = self;
// Set the push type to VoIP
voipRegistry.desiredPushTypes = [NSSet setWithObject:PKPushTypeVoIP];
}
任何人都可以帮助设置整个流程。如何将令牌发送到服务器。如何在服务器上设置脚本。它将如何获得令牌?
答案 0 :(得分:1)
您应该将voipRegistry
存储为属性,否则它将在方法末尾被释放。
您的委托人(符合PKPushRegistryDelegate
的对象)将收到令牌。
您可以实现此委托方法来获取令牌并将其发送到服务器:
- (void)pushRegistry:(PKPushRegistry *)registry
didUpdatePushCredentials:(PKPushCredentials *)pushCredentials
forType:(PKPushType)type {
// get credentials.token
// create registration using pjsip_regc_register()
}
在您的服务器上存储令牌。发生入站呼叫时,将其与APNS服务器API一起使用可激活您的应用。
然后,您的应用将启动并调用委托方法:
- (void)pushRegistry:(PKPushRegistry *)registry
didReceiveIncomingPushWithPayload:(PKPushPayload *)payload
forType:(PKPushType)type
withCompletionHandler:(void (^)(void))completion {
// handle payload
}