标签: callkit

iOS 10 Callkit不显示传入呼叫UI

我刚刚将CallKit应用到我们的VOIP应用程序中,但我正在努力让出局呼叫UI显示出来.

在我的实验中,我刚刚创建了一个应该显示来电UI的简单方法,见下文:

CXProviderConfiguration * configuration = [[CXProviderConfiguration alloc] initWithLocalizedName:@"Bitcall"];
CXProvider *callkitProvider = [[CXProvider alloc] initWithConfiguration: configuration];
[callkitProvider setDelegate:self queue:nil];
CXCallUpdate *update = [[CXCallUpdate alloc] init];
update.localizedCallerName = @"Ravadam Patel";
[callkitProvider reportNewIncomingCallWithUUID:[NSUUID UUID]  update:update completion:^(NSError * _Nullable error) {
    if (error) {
        NSLog(@"Error: %@", error);
    }
}];
Run Code Online (Sandbox Code Playgroud)

一切似乎工作正常,我实际上得到了call received这个代码的打印输出:

- (void)handleCall
{
  self.callCenter.callEventHandler = ^(CTCall *call){

    if ([call.callState isEqualToString: CTCallStateConnected])
    {
      //NSLog(@"call stopped");
    }
    else if ([call.callState isEqualToString: CTCallStateDialing])
    {
    }
    else if ([call.callState isEqualToString: CTCallStateDisconnected])
    {
      NSLog(@"Call ended"); …
Run Code Online (Sandbox Code Playgroud)

objective-c ios callkit

6
推荐指数
1
解决办法
5965
查看次数

Callkit 呼叫结束问题(错误域=com.apple.callkit.error.requesttransaction code=4)和呼叫接受后的音频问题

我制作了 VOIP 应用程序。为此,我将 PushKit 和 Callkit 与 pjsip 一起使用。

当后台应用程序收到呼叫通知时,我打开 callkit 屏幕,然后单击接受呼叫后使用 pjsip 连接。

1)调用结束问题

但是当调用hangout pjsip 成功调用hangout 但然后callkit 给我以下错误:

错误域=com.apple.callkit.error.request事务代码=4

为此,我检查了答案和结束呼叫 uuid 也相同,但又没有结束呼叫。我花了很多时间,但没有得到任何解决方案。

任何人有解决方案,请帮助我。

2) 接听电话后出现音频问题

接受呼叫音频后未配置。音频会话给我以下错误:

音频会话错误:错误域 = NSOSStatusErrorDomain 代码 = 561017449“(空)” [aurioc] 892:失败:'!pri'(启用 3,outf < 1 ch,44100 Hz,Int16> inf < 1 ch,44100 Hz,Int16 >)

对于上述错误,任何人都有解决方案,然后给我。

谢谢。

ios pushkit callkit

6
推荐指数
1
解决办法
8172
查看次数

CallKit 错误 com.apple.CallKit.error.requesttransaction 错误 7

我正在使用 Twilio 语音快速入门代码https://github.com/twilio/voice-quickstart-swift。\n当我进行客户端到客户端呼叫时,呼叫无法连接。虽然 CallKit 在后台运行,但当我在后台发送应用程序时,我可以看到绿色通知栏。\n以下是错误:\nStartCallAction 事务请求失败:操作无法\xe2\x80\x99t 完成。(com.apple.CallKit.error.requesttransaction 错误 7。)

\n\n

正如您所看到的,谷歌搜索没有帮助,因为似乎没有任何解决方案?

\n\n

有谁知道如何进一步修复或调试它?

\n\n

更新:\n附加 VoIP 设置,它肯定已启用。\n网络电话设置

\n

twilio ios swift callkit

6
推荐指数
1
解决办法
5805
查看次数

如何获得类似于 Whatsapp 或 Messenger 的来电视图?

我愿意在收到类似于 Messenger 或 Whatsapp 的推送通知(例如此图像)时显示全屏传入视图

在此处输入图片说明

我应该查看什么 SDK API?我将使用混合开发,例如 Ionic 或 Cordova。

android ios cordova ionic-framework callkit

6
推荐指数
0
解决办法
284
查看次数

要求用户在电话设置中启用呼叫阻止和识别

我已经实现CallKit,并CallDirectoryExtension在我的应用程序。有没有办法让应用内的用户启用此设置?类似于如何请求联系人、麦克风、相机的权限?

如果没有,将用户导航到此设置屏幕的最佳方式是什么?

Settings -> Phone -> Call Blocking and Identification
Run Code Online (Sandbox Code Playgroud)

电话设置中的呼叫阻止和识别

ios callkit

5
推荐指数
1
解决办法
490
查看次数

请求交易时出错

当我在 CXStratCallAction 中请求 CXTansaction 时,它将错误消息显示为 "Error Domain=com.apple.CallKit.error.requesttransaction Code=1 "(null)" ". 任何人都可以解释此错误消息。

ios swift callkit

5
推荐指数
2
解决办法
1291
查看次数

AudioUnitInitialize 失败,错误代码为 1701737535 'ent?' 报警中断后

我正在使用 VOIP 应用程序。该应用程序与 CallKit 一起运行良好。

如果警报在通话中触发,我将面临问题。每次当警报停止触发(音频中断结束)时,我们都会尝试在 AVAudioSession 上 setActive: 。但它总是给出代码 1701737535 的错误,即。“ent?”。

当我尝试初始化音频单元时,会发生同样的错误。不使用 CallKit 它工作正常。

任何人都遇到过在音频中断结束时激活音频会话的问题。

我在同一场景中收到不同的错误“!pri”561017449,但这次由于本机电话应用程序而发生中断。

问题是 100% 可复制的。尝试了许多点击和跟踪,例如线程、延迟或调用 setActive:YES 而不调用 setActive:YES。但没有运气。

总结在这里:

  1. 收到错误 1701737535 即。“恩特?” 如果由于警报而中断。

  2. 收到错误 561017449 即。'!pri' 如果由于本机调用而中断

仅当将 CallKit 与 VIOP 结合使用时才进行复制。

任何人都帮忙。

voip interruption ios avaudiosession callkit

5
推荐指数
1
解决办法
2559
查看次数

当呼叫为视频时,在 CallKit 来电屏幕中显示视频按钮

我正在使用以下代码来接听视频通话。我的应用程序具有音频和视频通话功能,我使用的是 linphone + CallKit。

- (void)config {
    CXProviderConfiguration *config = [[CXProviderConfiguration alloc]
                                       initWithLocalizedName:[NSBundle.mainBundle objectForInfoDictionaryKey:@"CFBundleName"]];
    config.ringtoneSound = @"notes_of_the_optimistic.caf";

    config.supportsVideo = TRUE;

    config.iconTemplateImageData = UIImagePNGRepresentation([UIImage imageNamed:@"callkit_logo"]);


    NSArray *ar = @[ [NSNumber numberWithInt:(int)CXHandleTypeGeneric] ];

    NSSet *handleTypes = [[NSSet alloc] initWithArray:ar];
    [config setSupportedHandleTypes:handleTypes];

    [config setMaximumCallGroups:2];
    [config setMaximumCallsPerCallGroup:1];


    self.provider = [[CXProvider alloc] initWithConfiguration:config];
    [self.provider setDelegate:self queue:dispatch_get_main_queue()];
}



- (void)reportIncomingCall:(LinphoneCall *) call withUUID:(NSUUID *)uuid handle:(NSString *)handle video:(BOOL)video
{
    CXCallUpdate *update = [[CXCallUpdate alloc] init];
    update.remoteHandle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:handle];
    update.supportsDTMF = TRUE;
    update.supportsHolding = TRUE; …
Run Code Online (Sandbox Code Playgroud)

video ios incoming-call callkit

5
推荐指数
1
解决办法
3035
查看次数

原因:“杀死应用程序是因为它在收到 PushKit VoIP 推送回调后从未向系统发送来电。”

我正在寻找解决方案,但尚未找到任何解决方案。我的应用程序仅接收 VoIP 推送,在 iOS 13 之后,当应用程序处于后台模式时,我无法再接收推送。我查看了其他问题,但无法通过提出的解决方案解决我的问题。有人可以帮助我吗?

在 iOS 13.0 及更高版本上,必须在收到传入 IP 语音呼叫时以及在 didReceiceIncomingPush() 方法完成执行之前使用 CallKit 框架进行报告,否则系统将终止您的应用程序。

多次未能报告来电可能会导致您的应用无法接收更多来电通知。

基本上,您不能再使用 VoIP 推送来发送非 VoIP 消息,并且需要对这些消息使用常规推送通知。

我读了这个公告,但在我的应用程序中,对于特定类型的推送 VoIP,我无法使用函数reportNewIncomingCall(),因为它需要如下参数:uuid、handle、hasVideo ecc。并且这些参数不存在于有效负载中。

voip ios swift pushkit callkit

5
推荐指数
1
解决办法
6468
查看次数

麦克风无法在 iOS 13 上使用 CallKit VoIP 通话

我已经实现了 Web RTC 并且它运行良好。问题是,当应用程序未打开\xe2\x80\x94或终止状态\xe2\x80\x94时,当我接到电话时,我无法将我的声音传递给其他用户,而我可以收听。我在 CXAnswer 调用委托之前配置了 AVAudioSession。

\n\n
func configureAudioSession() {\n    let sharedSession = AVAudioSession.sharedInstance()\n    do {\n        try sharedSession.setCategory(AVAudioSession.Category.playAndRecord)\n        try sharedSession.setMode(AVAudioSession.Mode.voiceChat)\n        try sharedSession.setPreferredIOBufferDuration(TimeInterval(0.005))\n        try sharedSession.setPreferredSampleRate(44100.0)\n    } catch {\n        debugPrint("Failed to configure `AVAudioSession`")\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n
func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) {\n\n    guard let call = ProviderDelegate.callManager.callWithUUID(action.callUUID) else {\n        action.fail()\n        return\n    }\n\n    configureAudioSession()\n\n    call.answer { error in\n        if let error = error {\n            print("ERROR: failed to answer: \\(error.localizedDescription)")\n        }\n        action.fulfill()\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

webrtc swift callkit swift5 ios13

5
推荐指数
0
解决办法
887
查看次数