SipApi is not supported by any device

I use my own sip apis to implement a sip call in an android application, and it works fine, but on some devices like CANVAS 3 it did not work. After debugging, I found that this line of code was returning NULL

**manager = SipManager.newInstance(ctx);** 

This means that this device does not support Sip Apis. But on the same device another application for sipcalling works, such as SipDroid, etc. How is this possible? Do they use their own Sip Apis ???

+3
android sip sipdroid
Dec 14 '13 at 10:57
source share
2 answers

To complement SilentKiller's answer, I will forward my answer to this question, but please keep in mind that choosing a stack is a rather difficult task and depends on your goals and preferences.




Android SIP Stack relays according to the old version of JAIN SIP plus some extensions (IMS, RTP support, etc.). The main problem with this stack is that on most devices it only works via Wi-Fi, 3G or LTE (note that android.net.sip.SipManager contains the isSipWifiOnly method to find out if this restriction is enabled).

On the other hand, pjsip is quite complete, as they say, this is not a SIP stack, but a complete multimedia message library. This is truly universal: you can use a huge amount of settings or just run it as a simple user agent . It works with any data connection (not limited to Wi-Fi).

Now a comparison. In my opinion, pjsip more advanced and versatile, but itโ€™s more difficult to integrate the project with you (when using Android SIP Stack everything remains in the SDK environment, and with pjsip you will need to use the NDK and JNI library).

My opinion: if you plan to create a very simple SIP application, and you are not against the Wi-Fi restriction, I think that it is best to use your own SIP interface, but if you plan to improve it and make something more โ€œinterestingโ€, I highly recommend pjsip . I used both JAIN SIP and pjsip , and again, my vote goes for psip . But this is just my opinion.




There is also another third-party stack worth checking out: Linphone . It is also integrated into your project with JNI (e.g. pjsip) and is also quite complete, but maybe a little more complicated and harder.

Hope this helps.

+3
Dec 14 '13 at 12:24
source share

you can use custom siplibraries.

Android Open Source Third-Party Library

There are various open source projects that have used these libraries in their projects.

  • Jain sip: not used in the "famous" application.
  • Sipdroid uses MjSip
  • Csipsimple uses PjSip
  • Imsdroid uses doubleango.

Open Source SIP Packages: Default Implementation for Android SDK (API> 9) Benefits: Documentation available. Easy to understand. Disadvantages: not all devices are supported due to media restrictions. It works only on WiFi. Unable to change codecs.

Third party: JainSIP Benefits: Oracle (Sun) project ==> Active development. It looks easier than MjSIP (additional documentation). Disadvantages: no Android 2.3 using external JAIN-SIP (J-SIP) Stack | Classpath

Third Party: MjSIP Benefits: SipDroid is built on it. (source code available) (red5phone - another project) Minuses: not fully compatible with RFC ?. Lack of tutorials (Javadocs available). Development is almost dead

Third-party: Doubango structure Advantages: IMSDroid is built on it. (source code available) Minuses: The generated apk file size tends to be "heavy" (> 15 MB, as indicated here)

Next from

+5
Dec 14 '13 at 11:30
source share



All Articles