PJSip в android

4 ответов


вам не нужно использовать сторонние библиотеки для создания функциональности SIP-клиента в Android. Android включает в себя полноценный SIP API. Вы можете взглянуть на SIP demo чтобы понять, как использовать API SIP для реализации типа walkie-talkie.


вы можете получить помощь от этого сайта

http://pjsip.org

http://trac.pjsip.org/repos/wiki/AutomatedTesting

http://www.pjsip.org/pjsua.htm


принятый ответ не совсем точный. Есть много желательных функций, отсутствующих в Android SIP API, которые вы можете достичь с помощью сторонней библиотеки.

что касается вышеупомянутого pjsip, я провел много времени, экспериментируя с Android-сборкой pjsip, и, по правде говоря, единственный способ получить надежную мгновенную регистрацию для работы в документированном виде-это создать библиотеку OpenSSL 1.0.2 a и передать ее во время настройки. Тогда в Java вам нужно чтобы попытаться (и потерпеть неудачу) включить связь TLS, так же, как вы видите, что они делают для UDP и TCP. Вот что я имею в виду:

  /* Create transports. */
  try { transports.add( ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_TLS, transportConfig) ); }
  catch (Throwable t2) { SipManager.log().e(t2); }

  try { transports.add( ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_UDP, transportConfig) ); }
  catch (Throwable t) { SipManager.log().e(t); }

  try { transports.add( ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_TCP, transportConfig) ); }
  catch (Throwable t) { SipManager.log().e(t); }

заменить SipManager.log() звонки для вашего собственного приложения.

Я не совсем уверен, почему, но это необходимо для меня. В противном случае процесс регистрации является полу-недетерминированным, в том смысле, что он будет работать после нескольких неудачных попыток, или потерпит неудачу в течение 5 минут, а затем внезапно преуспеет и т. д. Кажется, запутаться после 1-го регистрация.

вот как я настроил:

TARGET_ABI=arm64-v8a ./configure-android --use-ndk-cflags --with-ssl=`pwd`/../3rd-party/openssl-1.0.2a

и что было после правильные инструкции для Android, exrtacting тарбол OpenSSL в папку выше pjsip ../3rd-party/ и первое здание там. Я подробно описал этот процесс в A предыдущий пост.


Если вы хотите разработать только SIP-клиент, вы можете использовать SIP API android, но, как упоминалось выше, это ограничит возможности ваших приложений. Но если вы хотите разработать чат или средства вызова в своем приложении, вы можете использовать pjsip, который предоставляет множество богатых функций. Что касается создания pjsip для android, вы можете узнать из здесь (android) и для ios,учитесь у здесь (ios). В принципе, pjsip дает вам много API с богатыми функциями, которые вы можете использовать в соответствии с вашим требования, такие как pjlib, pjsip, PJ media, pjsua и т. д. PJSUA (или pjsua2 для android) - это API более высокого уровня, который помогает вам извлекать максимальный вывод с минимальными сложностями.вы можете видеть прямо здесь.вы можете узнать о pjsua от здесь. Они также предоставили демо-приложение (pjsua ЦПИ) , Pjsua CLI и его источник, который поможет вам понять основную структуру приложения для сборки с pjsip, имеющим чат и вызов функции.

для Android, вы можете увидеть демо-приложения по github.