Вы не хотите использовать функцию ndlb-connectile-dysfunction (ndlb) для iOS с Freeswitch.Это гарантирует, что вы не сможете держать регистрацию открытой достаточно долго, чтобы быть полезной в фоновом режиме, поскольку Freeswitch добавляет «expires = 30» ко всем регистрациям, когда эта опция установлена.После этого вы просто получите сообщение об ошибке «USER_NOT_Rurant» при попытке позвонить этому пользователю, если только это не произойдет в течение 30 секунд после регистрационного вызова.
Что вам нужно сделать, это выполнить следующие действия: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW12
В частности:
1) убедитесь, что у вас работает таймер поддержания активности iOS (setKeepAliveTimeout: handler :), а блок обработчика выполняет перерегистрацию с минимальным значением (600 секунд).
2) убедитесь, что ваше приложение настроено на фоновые режимы воспроизведения аудио VOIP и в своем Info.plist
3), убедитесь, что ваш клиент регистрируетсяинтерфейс сетевого потока для использования VOIP, как указано в этих рекомендациях Apple.Таким образом, ОС может перевести приложение в спящий режим, но разбудит вас, если в этом сетевом потоке будет входящий трафик.
Если вы выполните все три из них, вы сможете нормально запускать voip в фоновом режиме.на iOS 5 даже с заблокированным экраном.