当我的VoIP应用程序收到CallKit的呼叫时,iOS会显示本机系统调用UI.
如何为传出呼叫显示此本地呼叫视图?
我必须使用Siri通过我的应用程序发起一个voip电话.它正在演示项目中工作但是当我将Intents Extension添加到我现有的项目中时,Siri不再工作了.
在系统设置中,我的应用程序未显示在"应用支持"部分中.Plist配置如下:
另见plist扩展配置:
每当我发出任何声音命令时,它都在说"我希望我可以,但是<app>还没有把它与我联系起来."
我也尝试过启用Siri功能.让我知道我在那里做错了什么.
谢谢.
我正在尝试iOS callkit在Android 上实现行为。我收到了来自Firebase的推送通知,并且想向用户显示“来电”屏幕。为此,我使用ConnectionService了android.telecompackage和其他类。
这是我的呼叫管理器类:
class CallManager(context: Context) {
val telecomManager: TelecomManager
var phoneAccountHandle:PhoneAccountHandle
var context:Context
val number = "3924823202"
init {
telecomManager = context.getSystemService(Context.TELECOM_SERVICE) as TelecomManager
this.context = context
val componentName = ComponentName(this.context, CallConnectionService::class.java)
phoneAccountHandle = PhoneAccountHandle(componentName, "Admin")
val phoneAccount = PhoneAccount.builder(phoneAccountHandle, "Admin").setCapabilities(PhoneAccount.CAPABILITY_SELF_MANAGED).build()
telecomManager.registerPhoneAccount(phoneAccount)
val intent = Intent()
intent.component = ComponentName("com.android.server.telecom", "com.android.server.telecom.settings.EnableAccountPreferenceActivity")
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP
}
@TargetApi(Build.VERSION_CODES.M)
fun startOutgoingCall() {
val extras = Bundle()
extras.putBoolean(TelecomManager.EXTRA_START_CALL_WITH_SPEAKERPHONE, true)
val manager = context.getSystemService(TELECOM_SERVICE) as TelecomManager
val phoneAccountHandle …Run Code Online (Sandbox Code Playgroud) 我刚刚将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) 我已经阅读了关于进行非voip调用的问题,似乎开放式网址是唯一的方法.由于不推荐使用CoreTelephony,是否可以在使用open url进行调用时使用Callkit来获取调用状态?如果没有,有没有办法以编程方式获得呼叫状态?我正在开发一个内部应用程序.
提前致谢!!
我为CallKit iOS配置了我的提供程序配置.我还在其中设置了' iconTemplateImageData ',用于在CallKit UI中显示app图标.但是app图标没有显示.它显示一个白色方框.
提供商配置代码:
CXProviderConfiguration *configuration = [[CXProviderConfiguration alloc] initWithLocalizedName:[NSString stringWithFormat:@"%@\n", _title]];
configuration.maximumCallGroups = 1;
configuration.maximumCallsPerCallGroup = 1;
UIImage *callkitIcon = [UIImage imageNamed:@"AppIcon"];
configuration.iconTemplateImageData = UIImagePNGRepresentation(callkitIcon);
_callKitProvider = [[CXProvider alloc] initWithConfiguration:configuration];
[_callKitProvider setDelegate:self queue:nil];
_callKitCallController = [[CXCallController alloc] initWithQueue:dispatch_get_main_queue()];
Run Code Online (Sandbox Code Playgroud)
我在' Images.xcassets '中使用了AppIcon图像,尺寸为: - 1x: 40*40,2x : 80*80,3x : 120*120
请帮助我的应用图标未显示的原因.
提前致谢.
我制作了 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 >)
对于上述错误,任何人都有解决方案,然后给我。
谢谢。
我正在使用 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我想开发一个 SOS 应用程序。当我尝试使用 URL 架构 openURL() 时,它会显示一个警报,但我的要求是在尝试呼叫时连接呼叫而没有任何警报或弹出窗口。所以我找到了一个使用 CallKit 的解决方案。当我在我的应用程序中实现 CallKit 时,它不要求任何许可,拨出电话已发出,但被叫方没有接到任何电话。有什么解决办法吗?
我已经尝试了以下代码来连接呼叫。
@IBAction func buttonCallTapped(_ sender: Any) {
let provider = CXProvider(configuration: CXProviderConfiguration(localizedName: "My App"))
provider.setDelegate(self, queue: nil)
let controller = CXCallController()
let transaction = CXTransaction(action: CXStartCallAction(call: UUID(), handle: CXHandle(type: .phoneNumber, value: "\(number)")))
controller.request(transaction, completion: { error in })
DispatchQueue.main.asyncAfter(wallDeadline: DispatchWallTime.now() + 5) {
provider.reportOutgoingCall(with: controller.callObserver.calls[0].uuid, connectedAt: nil)
}
}
Run Code Online (Sandbox Code Playgroud)