Вопрос

У меня есть приложение, основанное на PJSIP для выполнения некоторых SIP -звонков.

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

С Freeswitch все в порядке, когда приложение активно, но в фоновом режиме приложение не уведомлено о вызове. Вероятно, это связано с тем, как FreesWitch уведомил приложение о новом вызове (для iOS PJSIP уведомление должно появиться на оберщенном розетке TCP).

Доза Кто -нибудь знает, как я могу настроить FressWitch, чтобы отправить уведомление в конкретном порту?

Это было полезно?

Решение

Я подберусь, чтобы решить эту проблему, добавив:

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

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

Другие советы

Вы не хотите использовать NDLB-Connectile-дисфункцию (NDLB) для iOS с FreesWitch. Это гарантирует, что вы не можете провести регистрацию, которая открыта достаточно долго, чтобы быть полезным в фоновом режиме, потому что Freeswitch добавляет «истекает = 30» ко всем регистрациям при установке этой опции. После этого вы просто получите ошибку «user_not_registered» при попытке позвонить этому пользователю, если только это не будет в течение 30 секунд после регистрационного вызова.

Что вам нужно сделать, это выполнить шаги здесь:http://developer.apple.com/library/ios/#documentation/iphone/concepual/iphoneosprogrammingguide/advancapptricks/advancapptricks.html#/apple_ref/doc/uid/tp40007072-ch7-sw12

Конкретно:

1) Убедитесь, что у вас работает таймер для iOS-ALIVE (SetBekeAliveMimeOut: Handler :), с блоком обработчика, выполняющим повторную регистрацию при минимальном значении (600 секунд).

2) Убедитесь, что ваше приложение настроено для VoIP а также Аудио воспроизведения фоновые режимы в своем info.plist

3) Убедитесь, что ваш клиент регистрирует интерфейс сетевого потока для использования VoIP, как отмечено в этих рекомендациях Apple. Таким образом, ОС может приложить приложение спать, но разбудить вас, если входящий трафик происходит в этом сетевом потоке.

Если вы делаете все три из них, вы сможете хорошо запустить VoIP в фоновом режиме на iOS 5, даже с заблокированным экраном.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top