GSM呼叫结束后,VoIP呼叫正在进行时,AVAudioSession未激活

GSM呼叫结束后,VoIP呼叫正在进行时,AVAudioSession未激活,ios,iphone,avfoundation,pjsip,callkit,Ios,Iphone,Avfoundation,Pjsip,Callkit,我使用呼叫套件启动从用户a到用户B的voip呼叫,声音路由正确。我在用户a上接收到本机(GSM)呼叫。用户a选择“保持和应答”选项,因此voip呼叫将设置为保持,而GSM呼叫将正确路由 在某个时间点,GSM呼叫会被另一方终止,因此我将结束voip呼叫,该呼叫目前处于暂停状态。 当GSM呼叫结束时,也会调用“didDeactivateAudioSession” 当我取消挂断voip呼叫时,我执行了以下操作: [[AVAudioSession sharedInstance] setCategory:

我使用呼叫套件启动从用户a到用户B的voip呼叫,声音路由正确。我在用户a上接收到本机(GSM)呼叫。用户a选择“保持和应答”选项,因此voip呼叫将设置为保持,而GSM呼叫将正确路由
在某个时间点,GSM呼叫会被另一方终止,因此我将结束voip呼叫,该呼叫目前处于暂停状态。 当GSM呼叫结束时,也会调用“didDeactivateAudioSession”
当我取消挂断voip呼叫时,我执行了以下操作:

[[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“(空)”


我认为这是个问题,但我不知道如何正确激活音频会话

您是否添加了[[AVAudioSession sharedInstance]设置活动:是错误:无];在设置类别之前?是的,在设置类别之前,我也尝试过使用setActive,但我遇到了相同的问题。因为我记得PJSUA保留和保留事务本身,不需要使用AudioSession,这将保留事务PJSUA_set_no_snd_dev();pjsua_调用_设置_保持(ID,NULL);对于未保存的,请尝试以下代码pjsua\u set\u snd\u dev(captureDev,playbackDev);pjsua_call_reinvite(ID,PJ_TRUE,NULL);