我使用通话套件启动从用户A到用户B的voip通话,声音正确路由。我在用户A上接收本地(GSM)呼叫。用户A选择“保持和接听”选项,因此当GSM呼叫正确路由时,voip呼叫将设置为保持。
在某个时间点,GSM呼叫由另一方结束,因此我将结束正在进行的voip呼叫,此时此呼叫处于保持状态。
当GSM呼叫结束时,也调用“didDeactivateAudioSession”。
当我不知道拨打电话时,我做了下一步行动:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord mode:AVAudioSessionModeVoiceChat options:AVAudioSessionCategoryOptionMixWithOthers error:nil];
// unhold call
pjsua_call_reinvite([self identifier], PJ_TRUE, NULL);
Reinvite工作正常,但即使我调用“setCategory:”,AVAudiosession也不会激活。
我还尝试在设置AVAudioSession类别之前或之后激活音频会话。
[[AVAudioSession sharedInstance] setActive:YES withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&error];
但是激活音频会话总是失败并出现下一个错误:
错误域= NSOSStatusErrorDomain代码= 561017449“(null)”
我认为存在问题,但我没有想法如何正确激活音频会话。