iOS 4: компилировать PJSIP в режиме TCP

Как скомпилировать библиотеку PJSIP в режиме TCP для iPhone?

У меня есть шаги, но я не знаю, какие файлы мне нужно изменить.

Чтобы включить поддержку многозадачности iOS, установите для параметра PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT значение 1. Затем приложение может использовать API pj_activesock_set_iphone_os_bg() для настройки фонового режима iOS. Установка значения 1 позволит активному сокету TCP получать входящие данные, когда приложение находится в фоновом режиме. Значение по умолчанию для этого параметра — PJ_ACTIVESOCK_TCP_IPHONE_OS_BG. По умолчанию обе эти настройки включены в iOS 4 при запуске configure-iphone.

Подскажите, пожалуйста, в каких файлах необходимо внести изменения, чтобы скомпилировать PJSIP lib в режиме TCP.

Любая помощь высоко ценится.


person shahil    schedule 14.05.2012    source источник
comment
pjsip 1.x или pjsip 2.x? Вы хотите использовать pjsua для создания приложения или хотите пойти дальше?   -  person alinoz    schedule 16.05.2012


Ответы (1)


pjsip 1.x или pjsip 2.x? Вы хотите использовать pjsua для создания приложения или хотите пойти дальше?

Если вы хотите использовать TCP, ваш SIP-сервер/прокси также должен его поддерживать (есть некоторые SIP-серверы, которые не поддерживают TCP должным образом).

Чтобы получить поддержку TCP, вам не нужно делать ничего особенного (1.x) во время компиляции, но вы должны создать свой регистрационный uri следующим образом:

"sip:username@server;transport=TCP"

person alinoz    schedule 16.05.2012
comment
Это pjsip 1.x, и да, наш сервер поддерживает TCP-соединение. Но разве это единственное изменение, которое необходимо сделать? Не нужно делать эти настройки, а затем компилировать PJSIP? - person shahil; 18.05.2012
comment
для меня этого было достаточно, но я использую только вызовы pjsua (pjsua является частью pjsip). У вас есть шаги здесь: trac.pjsip.org/repos/wiki/Getting- Запущено/iPhone - person alinoz; 18.05.2012
comment
есть еще одна вещь, на которую вы должны обратить внимание: sip-сервер должен отвечать клиенту pjsip (работающему на iOS) на том же порту, на котором он получил сообщение о регистрации. Если этого не происходит, вы будете отключены в фоновом режиме. Также поможет, если ваш сервер может отправлять пакеты поддержки активности TCP клиенту. Насколько я помню, это самые важные вещи, которые вы должны учитывать. - person alinoz; 21.05.2012
comment
я попробовал, и это сработало нормально. но все же я не могу принимать звонки в фоновом режиме через 6 минут. - person shahil; 31.05.2012
comment
если вы можете получить вызов в фоновом режиме, это означает, что вы используете TCP. Но могут быть и другие проблемы, например: какое значение вы используете для reg_timeout? Ваш сервер во внутренней сети или снаружи? Вы используете пограничный контроллер сеанса? - person alinoz; 31.05.2012
comment
@alinoz поддерживает ли pjsip 2.x TCP? если да, то он такой же, как 1.x? - person Dr Glass; 24.01.2013
comment
я использовал только 1.x, но я считаю, что поддержка TCP не была удалена. - person alinoz; 24.01.2013