PJSip en android

Estoy tratando de construir un Sip client pjsip para Android con pjsip como CSipSimple proyecto. Sin embargo, en realidad no sé mucho acerca de pjsip . ¿Alguien tiene un tutorial sobre pjsip o algo así para construir un Sip softphone SIP en Android con PJsip lib? ¡Cualquier sugerencia es bienvenida!

No es necesario utilizar bibliotecas de terceros para crear la funcionalidad de cliente SIP en Android. Android incluye una completa SIP API . Usted puede echar un vistazo a la demostración SIP para entender cómo utilizar SIP APIs para un walkie-talkie tipo de implementación.

La respuesta aceptada no es del todo exacta. Hay muchas características deseables que faltan en la API SIP de Android que quizás desee obtener a través de una biblioteca de terceros.

Con respecto al pjsip mencionado, he pasado mucho tiempo experimentando con la compilación de pjsip de Android, y sinceramente la única manera de obtener un registro instantáneo confiable para trabajar como documentado es construir la librería OpenSSL 1.0.2a y pasarla En el momento de la configuración. Entonces en Java usted necesita intentar (y fallar) para permitir la comunicación de TLS, apenas como usted los ve hacer para UDP y TCP. Esto es lo que quiero decir:

  /* 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); } 

Reemplace las llamadas de SipManager.log() para su propia aplicación.

No estoy completamente seguro de por qué, pero esto es necesario para mí. De lo contrario, el proceso de registro es semi-no determinista, en el sentido de que funcionará después de fracasar unas cuantas veces, o fallar durante 5 minutos, de repente éxito, etc Parece que se confunden después de la primera inscripción.

Aquí es cómo configuré:

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

Y eso fue después de seguir las instrucciones de Android adecuadas , exrtacting el tarball de OpenSSL en una carpeta por encima de pjsip ../3rd-party/ y el primer edificio allí. Describí ese proceso con algún detalle en un post anterior .

Si desea desarrollar sólo sip cliente, entonces puede utilizar sip API de Android, pero como se menciona en las respuestas anteriores limitará las características de sus aplicaciones. Pero si desea desarrollar instalaciones de chat o de llamada en su aplicación, entonces puede utilizar pjsip que proporciona muchas características enriquecidas. En cuanto a la construcción de pjsip para Android, puede aprender de aquí (android) y para ios, aprender de aquí (ios) . Básicamente, pjsip le da muchas API con características ricas que puede utilizar según sus necesidades como pjlib, pjsip, medios de comunicación PJ, pjsua etc pjsua (o pjsua2 para android) son de nivel superior API que le ayuda a extraer el máximo rendimiento con complejidades mínimas Puedes ver directamente aquí. Usted puede aprender sobre pjsua de aquí . También han proporcionado una aplicación de demostración (pjsua CLI) , Pjsua CLI y su fuente que le ayudará a entender la estructura básica de una aplicación para construir con pjsip tener chat y funciones de llamada.

Para Android, puedes ver una aplicación de demostración en github .

  • Registro de cuenta PJSip
  • Cómo aumentar el nivel de volumen de micrófono en Android PJSIP?
  • Uso de pjsip con android
  • Android construir PJSIP con openssl
  • ¿Cómo usar PJSIP en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.