Я пытаюсь построить Sip client
для android, используя pjsip
например CSipSimple
проект. Тем не менее, я действительно мало что знаю о pjsip
. Есть ли у кого-нибудь учебник о pjsip или что-то в этом роде для создания Sip softphone
в android, используя PJsip lib? Любые предложения приветствуются!PJSip in android
ответ
Вам не придется использовать сторонние библиотеки для создания функциональных возможностей клиента SIP в Android. Android включает полноценный SIP API. Вы можете взглянуть на SIP demo, чтобы понять, как использовать SIP API для использования в стиле walkie-talkie.
Обратите внимание, что это ограничит ваше приложение Android версии 2.3 [(API Level 9)] (http://developer.android.com/guide/appendix/api-levels.html#level9) и выше, но я предполагаю, что это что-то вроде 75% пользовательской базы – Paaske
Согласно статистике Play Store в [версии платформы] (http://developer.android.com/resources/dashboard/platform-versions.html), ваша догадка правильная (как в день этого комментария) – Rajesh
это также ограничивает ваше приложение только wi-fi, что не полезно ... знаете ли вы какой-либо другой способ использовать pjsip, кроме apjsua, потому что apjsua не работает, я провел дни на нем ... .. –
вы можете получить помощь от этого сайта
Принятый ответ не совсем точно. Есть много желательных функций, отсутствующих в Android SIP API, которые вы, возможно, захотите получить через стороннюю библиотеку.
Что касается вышеупомянутого pjsip, я потратил много времени на эксперименты с Android-сборкой pjsip, и, честно говоря, единственный способ получить надежную мгновенную регистрацию для работы, как документировано, - это создать OpenSSL 1.0.2a библиотеки и передать его во время настройки. Затем в 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 минут, а затем внезапно добиться успеха и т. Д. Кажется, он смущен после первой регистрации.
Вот как я настроил:
TARGET_ABI=arm64-v8a ./configure-android --use-ndk-cflags --with-ssl=`pwd`/../3rd-party/openssl-1.0.2a
И это после того, как после proper Android instructions, exrtacting тарболла OpenSSL в папку выше pjsip ../3rd-party/
и первое здание там. Я подробно описал этот процесс в previous post.
Если вы хотите разработать только sip-клиент, тогда вы можете использовать API-интерфейс sroid, но, как упоминалось выше, он ограничит ваши возможности приложений. Но если вы хотите создать чат или вызовы в своем приложении, вы можете использовать pjsip, который предоставляет множество богатых функций. Что касается построения pjsip для android, вы можете узнать от here(android) и для ios, узнать от here(ios). В принципе, pjsip дает вам много API-интерфейсов с богатыми функциями, которые вы можете использовать в соответствии с вашими требованиями, такими как pjlib, pjsip, PJ media, pjsua и т. Д. Pjsua (или pjsua2 для android) - это API более высокого уровня, который помогает вам извлекать максимальную производительность с минимальными сложностей. Вы можете прямо посмотреть here., вы можете узнать о pjsua от here. Они также предоставили демонстрационное приложение (pjsua CLI), Pjsua CLI и его источник, который поможет вам понять основную структуру приложения для создания с помощью pjsip с функциями чата и вызова.
для Android, вы можете увидеть демо-заявку на github.
Есть ли у tutoprial. К сожалению, я не могу использовать собственный SIP API. Любые предложения, с чего начать? –