Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Excepción al intentar llamar (SIP)

Estoy desarrollando una aplicación SIP, y cuando quiero llamar a alguien (con su identificador configurado en el servidor) tengo un NullPointerException => "Error al intentar cerrar el administrador." Aquí está el código:

public void initiateCall() { updateStatus(sipAddress); try { SipAudioCall.Listener listener = new SipAudioCall.Listener() { @Override public void onCallEstablished(SipAudioCall call) { call.startAudio(); call.setSpeakerMode(true); call.toggleMute(); updateStatus(call); } @Override public void onCallEnded(SipAudioCall call) { updateStatus("Ready."); } }; call = manager.makeAudioCall(me.getUriString(), sipAddress, listener, 30); } catch (Exception e) { Log.i("WalkieTalkieActivity/InitiateCall", "Error when trying to close manager.", e); if (me != null) { try { manager.close(me.getUriString()); } catch (Exception ee) { Log.i("WalkieTalkieActivity/InitiateCall", "Error when trying to close manager.", ee); ee.printStackTrace(); } } if (call != null) { call.close(); } } } 

Gracias por tu ayuda.

    3 Solutions collect form web for “Excepción al intentar llamar (SIP)”

    La librería VOIP / SIP no se admite de forma predeterminada en el emulador de Android. El problema es que el
    manager == null es por eso que está recibiendo la excepción NullPointerException.

    Por suerte, hay un trabajo-a-ronda. Descargue este enlace y cópielo en la carpeta … \ android \ avd \ .avd .

    Inicie su emulador y

      Boolean voipSupported = SipManager.isVoipSupported(this); Boolean apiSupported = SipManager.isApiSupported(this); 

    Ahora debe devolver true.

    Fuente: http://xilard.hu/

    Android.net.sip (Sip API) sólo funciona en G711 a través de Android 2.3 o superior. También los teléfonos suministrados por los transportistas pueden tener la pila SIP (android.net.sip) bloqueada o lisiada. SipManager.isVoipSupported(this) && SipManager.isApiSupported(this) devolverá false para la mayoría de los dispositivos es su ie. Su objeto SipManager siempre será nulo en ese caso. Debería utilizar una biblioteca de terceros para implementar SIP.

    Existen diferentes librerías de fuente abierta, así como los proyectos están disponibles en Internet. Puede descargar el código fuente de esos proyectos. Aquí está la lista de algunas librerías de fuente abierta populares sip que permite a la llamada de voz a través de Internet.

    1. Jain sip (creo que la mejor opción):

    2. Pjsip

    3. Mjsip

    4. Doubango

    Existen diferentes proyectos de código abierto que han utilizado estas bibliotecas en sus proyectos.

    1.Jain sip: No se utiliza en una aplicación "famosa". 2. Sipdroid utiliza MjSip 3. Csipsimple utiliza PjSip 4. Imsdroid utiliza doubango.

    Compruebe la conexión puente en Android y el servidor SIP en su aplicación para obtener la clave SIP de su aplicación.

      FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.