2

我们已经能够使用 CallKit 建立 VoIP 呼叫。但是,在此已建立的 VoIP 呼叫上的保持和恢复操作会导致单向语音路径问题。按住并恢复后,我可以听到远端。远端无法听到我的声音。

  • 我已经拿了Wireshark的痕迹,确认恢复后,只有单向音频。音频没有从我的设备发送到远端。
  • 由于 Wireshark 已经显示了问题,我检查了 WebRTC 代码中的媒体会话错误。我在 startSend 或 startPlayout 中看不到任何错误(发送和接收的音频单元处理)
  • 我通过 CallKit 集成代码重新检查以确认正确的序列

保持操作

  • 按下 App UI 上的 HOLD 按钮或长按 CallKit UI 上的 MUTE 按钮。
  • 应用程序向 CallKit 请求 CXSetHeldCallAction 事务,其中 onHold 为YES
  • 应用接收提供者委托回调 performSetHeldCallAction。
  • 应用程序将呼叫置于保持状态,然后执行 performSetHeldCallAction。
  • 应用接收提供者委托回调 didDeactivateAudioSession。

恢复操作

  • 按 App UI 上的 RESUME 按钮或 CallKit UI 上的 HELD 按钮。
  • 应用程序向 CallKit 请求 CXSetHeldCallAction 事务,其中 onHold 为NO
  • 应用接收提供者委托回调 performSetHeldCallAction。
  • 应用程序配置音频会话(AVAudioSessionCategoryPlayAndRecord、AVAudioSessionModeVoiceChat、preferredSampleRate:44100),然后执行 performSetHeldCallAction 但记住要暂停的呼叫。
  • 应用接收提供者委托回调 didActivateAudioSession。使用此应用程序可以暂停通话(恢复通话)。该调用是在上述步骤中存储的调用。

我们已经使用错误报告(没有更新)提出了 Apple Ticket,并且正在寻求提出 Apple 技术支持事件 (Apple TSI)。

希望能提供一些有价值的意见。

4

0 回答 0