标签: callkit

CallKit 和 Apple Watch 互操作性

随着 iOS 10 和 WatchOS 3 的发布而来的消息还有CallKit

我在我的设备(iPhone 6s、iOS 10 beta 5;带有 WatchOS 3 beta 5的 AppleWatch)中尝试了 Apple 提供的演示应用程序(并在 WWDC 中展示),名为“ SpeakerBox ”,但我有一个严重的怀疑:

CallKit 提供的功能是否仅在 iOS 上可用,或者由于它使用操作系统调用系统,我们也将免费获得 Apple Watch 呼叫处理?

我使用演示应用程序进行了测试,但在这种情况下,我只在电话上响起呼叫,这对我来说很奇怪,因为 CallKit 应该是一个简化与操作系统呼叫系统集成的框架。

有谁知道如何以及是否可以在 WatchOS 中进行标准呼叫处理(当然> 3)?

ios apple-watch watchkit callkit

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

在iOS 10中获取电话状态

我希望在我的应用中获得电话状态.
经过一番搜索,我找到了CoreTelephony框架.但是在iOS 10中已经弃用了.那么还有其他可用选择吗?
我也找到了CallKit.iOS 10中的一个新框架.但是没有得到与我搜索时相同的呼叫状态.

ios core-telephony ios10 callkit

5
推荐指数
3
解决办法
4308
查看次数

如何在iOS 10中使用通话套件检测来电号码

我有一个iOS应用程序,我想检测设备上的任何传入电话号码.CallKit只给我选择将一些数字映射到标签,但问题是那里有大量的电话号码.关于CallDirectory Extension的生命周期,也没有提到任何内容.

任何人都可以帮助我解决我的问题,我们如何实现这一目标.

ios swift ios10 callkit

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

callKit没有回调didActivate

我正在将新的CallKit API与我的VOIP应用程序集成.

如示例应用程序中所示:https://developer.apple.com/library/content/samplecode/Speakerbox/Introduction/Intro.html

我正在配置音频会话:

- (void) configureAudioSession
{
    // Configure the audio session
    AVAudioSession *sessionInstance = [AVAudioSession sharedInstance];

    // we are going to play and record so we pick that category
    NSError *error = nil;
    [sessionInstance setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
    if (error) {
        NSLog(@"error setting audio category %@",error);
    }

    // set the mode to voice chat
    [sessionInstance setMode:AVAudioSessionModeVoiceChat error:&error];
    if (error) {
        NSLog(@"error setting audio mode %@",error);
    }

    NSLog(@"setupAudioSession");

    return;
}
Run Code Online (Sandbox Code Playgroud)

在我的CXAnswerCallAction中:

  func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) …
Run Code Online (Sandbox Code Playgroud)

voip pjsip ios swift callkit

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

在CallKit UI中隐藏FaceTime按钮

我正在VoIP应用程序中实现CallKit支持。

通过设置supportsVideofalse,我可以禁用视频按钮CXProviderConfiguration。现在出现FaceTime按钮。

我想知道是否有一种方法可以在默认UI中禁用FaceTime按钮,因为该应用程序正在处理与FaceTime无关的内部企业编号。


更新:如下面的答案所述,可以禁用该按钮,但是呼叫方号码丢失(显示为Unknown)。我想保留数字并禁用FaceTime按钮。


更新:在iPhone设置中禁用FaceTime会禁用FaceTime按钮。但是,这不是解决此问题的有效方法。


更新:对CXHandle类型的任何更改,包括在其中插入对电话号码无效的字符,都不会影响该问题-仍然显示FaceTime按钮。

ios swift callkit

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

使用来自incall屏幕菜单的CallKit将视频添加到现有呼叫

我们在iOS 10 VoIP应用程序中使用CallKit.我们注意到,在CallKit管理的呼叫中,点击incall Video按钮会发送StartCallIntent,因此开始新的视频通话.我们需要的是将视频添加到现有呼叫中.所以我们真的需要一个回调方法,就像静音,保持和组按钮调用各种方法一样.但是对于incall Video按钮没有回调.

任何人都知道如何解决这个问题.

谢谢

ios callkit

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

VOIP 通话断开后如何关闭 Callkit 屏幕

一旦我的 VoIP 呼叫按源或目的地断开连接,我将尝试删除 Callkit 屏幕。

我用了这个代码

CXEndCallAction *endaction = [[CXEndCallAction alloc] initWithCallUUID:[NSUUID UUID]];
CXCallController *callController = [[CXCallController alloc] initWithQueue:dispatch_get_main_queue()];
requestTransaction:[CXTransaction transactionWithActions:nil completion:completion]];
Run Code Online (Sandbox Code Playgroud)

但关闭 callkit 不起作用。任何人都可以帮我解决这个问题吗?

voip pjsip ios pushkit callkit

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

CallKit:使用WebRTC时无声音

我们的项目使用WebRTC进行VOIP呼叫,并且在访问CallKit框架之前运行良好。但是当我尝试访问CallKit框架时,有一种情况,双方都听不到对方的讲话。当我删除CallKit时,一切恢复正常。

CallKit的应答按钮与项目中的原始应答按钮具有相同的功能。

而令我惊讶的是,没有必要听不到声音。有时一切正常,但有时会出现问题。好吧,出现问题的可能性更大。

我发现以下流程图,我怀疑问题出在函数调用的顺序上。但是我不知道WebRTC如何与图中的功能相对应。
在此处输入图片说明

另外,我很好奇套接字不稳定是否会导致CallKit框架异常工作

请原谅我英语不好,但是这个问题困扰了我好几天,我不知道到底是哪里出了问题,是不是和CallKit框架在哪里冲突?

希望你能帮助我,非常感谢!

audio objective-c ios webrtc callkit

5
推荐指数
3
解决办法
1077
查看次数

CallKit呼叫阻止扩展程序偶尔会自动禁用

我有一个带有CallKit通话拦截分机的应用程序。通常,它可以正常工作,但是在某些设备上,偶尔会被其自身禁用(嗯,实际上我想是由iOS禁用),因此用户必须转到“设置”,然后再次手动将其重新启用。但是,这种行为没有任何明显的原因:被阻止的电话号码数据量足够小(该应用程序大多数时候甚至可以使用较大的数据集,因此这不应该是内存问题),将号码排序顺序正确(升序),没有重复的数字等。重现该问题也很困难。感觉像是来自“外部世界”的东西干扰了扩展程序(另一个带有扩展程序的应用程序?),但是没有证据。

这种自动禁用的原因可能是什么?如何避免这种情况?

任何帮助,将不胜感激。

谢谢!

objective-c callblocking ios ios-extensions callkit

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

当电话被锁定时,iOS 音频在接听电话期间不起作用。用于调用的 WebRTC

我在使用 Callkit 和 WebRTC 进行 VOIP 呼叫时遇到音频问题,同时从锁定屏幕接听电话。

一般功能:

我的应用程序在启动时会激活 audioSession。对于来电,生成并交换 SDP 提供和应答。对等连接已设置。无论是音频通话还是视频通话,都会生成音频和视频流。然后使用如下代码将Call上报给callkit:

    callProvider.reportNewIncomingCall(with: currentCallUUID!, update: update) { error in }
Run Code Online (Sandbox Code Playgroud)

如果应用程序在前台,它工作正常。

但是,当手机被锁定,并且用户从锁定屏幕接听电话时,流会被交换,但两端都没有音频,直到用户自己进入应用程序。

当用户进入应用程序时,两端的音频都处于活动状态。

所有后台设置和功能都设置正确。

我还提到了 Apple 员工提供的以下解决方法。但即使它不起作用。

https://forums.developer.apple.com/thread/64544

正如我提到的,我使用 WebRTC 进行呼叫。如果我在用户接听电话后交换媒体流(仍在锁定屏幕上)并且当时设置了对等连接。它工作正常(但它增加了建立呼叫连接的延迟)。

但是如果在显示呼叫之前建立对等连接(比如在向 callkit 报告呼叫之前),音频将停止工作。

audio voip ios webrtc callkit

4
推荐指数
1
解决办法
3388
查看次数