2012-05-10 3 views
6

Я пытаюсь построить Sip client для android, используя pjsip например CSipSimple проект. Тем не менее, я действительно мало что знаю о pjsip. Есть ли у кого-нибудь учебник о pjsip или что-то в этом роде для создания Sip softphone в android, используя PJsip lib? Любые предложения приветствуются!PJSip in android

+1

Есть ли у tutoprial. К сожалению, я не могу использовать собственный SIP API. Любые предложения, с чего начать? –

ответ

3

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

+1

Обратите внимание, что это ограничит ваше приложение Android версии 2.3 [(API Level 9)] (http://developer.android.com/guide/appendix/api-levels.html#level9) и выше, но я предполагаю, что это что-то вроде 75% пользовательской базы – Paaske

+0

Согласно статистике Play Store в [версии платформы] (http://developer.android.com/resources/dashboard/platform-versions.html), ваша догадка правильная (как в день этого комментария) – Rajesh

+1

это также ограничивает ваше приложение только wi-fi, что не полезно ... знаете ли вы какой-либо другой способ использовать pjsip, кроме apjsua, потому что apjsua не работает, я провел дни на нем ... .. –

1

Принятый ответ не совсем точно. Есть много желательных функций, отсутствующих в 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.

-1

Если вы хотите разработать только 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.