我正在使用Twilio语音快速入门代码https://github.com/twilio/voice-quickstart-swift。 当我进行客户端到客户端呼叫时,呼叫无法接通。虽然CallKit在后台运行,但是在后台发送应用程序时,我可以看到绿色的通知栏。 以下是错误: StartCallAction事务请求失败:操作无法完成。 (com.apple.CallKit.error.requesttransaction错误7。)
如您所见,谷歌搜索没有帮助,因为似乎没有解决方案?
有人知道如何进一步修复或调试它吗?
答案 0 :(得分:1)
解决方案附近没有评论和解决方案。问题出在您编写的用于处理和初始化变量的代码中。 Twilio sdk也没有错,所以不要看那里。除了twilio示例代码之外,您正在执行的所有操作都是寻找问题的地方。
我在类似的问题上也浪费了我几个月的时间,发现初始化一个变量存在问题。
答案 1 :(得分:0)
这里是Twilio开发人员的传播者。
您有enabled capabilities for Voice over IP in the project settings吗?
答案 2 :(得分:0)
这可能对某人有帮助:将Twilio Voice集成到我的iOS应用后,我得到了与Dan相同的错误。就像Dan一样,此错误仅在首次启动时才发生。
在我的应用中,有一个按钮会转到呼叫屏幕,在该屏幕上将在viewDidLoad中启动呼叫。将其更改为在viewDidAppear中启动调用后,该错误便再也不会发生。我不确定为什么会这样,但是在首次启动时设置CallKit似乎有些延迟。
请澄清一下,这是我得到的错误:操作无法完成。 (com.apple.CallKit.error.requesttransaction错误7。)
答案 3 :(得分:0)
在请求CXStartCallAction之前,尝试尽快初始化CXProvider和CXCallController
答案 4 :(得分:0)
您正尝试在请求另一个CXStartCallAction
之后立即请求CXStartCallAction
。您需要正确结束第一个通话。
无论如何,您必须遵循正确的操作顺序。一旦您在序列中使用了错误的操作,CallKit将返回一个或另一个错误。
请勿在处理另一个动作后立即请求一个动作。两个请求之间应该有一段时间。例如,您启动了CXStartCallAction
,然后检查该用户是否处于脱机状态并尝试结束通话。如果检查很快,则“结束操作”可能会导致错误。您需要等待几毫秒,然后才能取消拨出电话。
答案 5 :(得分:0)
我遇到了同样的问题,因为 Provider
和 CallController
已被延迟加载。
看起来 CXProvider
initWithConfiguration
是异步运行的,这意味着您需要尽早调用它,否则您将面临在未完成 initWithConfiguration
函数的情况下进行调用的风险。
感谢@Allen 为我指明了正确的方向。