Проблема связи приложения iPhone FreeSwitch - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть приложение на основе pjsip для выполнения некоторых вызовов Sip.

Приложение отлично работает с другими SIP-коммутаторами / серверами, но с freeSwitch приложение не принимает звонки в фоновом режиме.

С freeSwitch все нормально, когда приложение активно, но в фоновом режиме приложение не уведомляется о вызове.Это, вероятно, связано с тем, как freeSwitch уведомляет приложение о новом вызове (для iOS pjsip уведомление должно приходить на TCP-сокет).

Может кто-нибудь знает, как я могу настроить fresSwitch для отправки уведомления на определенный порт?

Ответы [ 2 ]

0 голосов
/ 29 января 2012

Вы не хотите использовать функцию 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 даже с заблокированным экраном.

0 голосов
/ 03 декабря 2011

Мне удается решить эту проблему, добавив:

<variable name="sip-force-contact" value="NDLB-connectile-dysfunction"/>

в freeswitch_install_folder / conf / directory / default / XYZ.xml (где XYZ - пользователь, которого вы настраиваете) в переменных.

...