我正在使用 native sip api 在 android 应用程序中实现 sip 调用并且它工作正常但在某些设备(如 CANVAS 3)中它不起作用。调试后我发现这行代码返回 NULL
**manager = SipManager.newInstance(ctx);**
这意味着该设备不支持 Sip Apis。但在同一设备上,其他用于 sipcalling 的应用程序(如 SipDroid 等)工作正常。这怎么可能?他们不使用 native sip Apis 吗???
最佳答案
您可以使用自定义 SipLibraries。
适用于 Android 的第三方开源 sip 堆栈库
- Jain 小口:http://jsip.java.net/
- Pjsip: http://www.pjsip.org/
- Mjsip:http://mjsip.org/mjua.html
- bean 瓣:http://www.doubango.org/
有不同的开源项目在他们的项目中使用了这些库。
- Jain sip:未在“著名”应用中使用。
- Sipdroid 使用 MjSip
- Csipsimple 使用 PjSip
- Imsdroid 使用 doubango。
开源 SIP 堆栈:Android SDK 的默认实现(API > 9) 优点:文档可用。容易明白。 缺点:由于运营商限制,并非所有设备都受支持。仅适用于 WiFi。无法更改编解码器。
第三方:JainSIP 优势:Oracle (Sun) 项目 ==> 积极发展。看起来比 MjSIP(更多文档)更容易。 缺点:无 Android 2.3 using external JAIN-SIP(J-SIP) Stack | Classpath
第三方:MjSIP 优点:SipDroid 是建立在它之上的。 (提供源代码)(red5phone 是另一个项目) 缺点:不完全符合 RFC?。缺乏教程(虽然有 Javadocs 可用)。开发几乎死了
第三方:Doubango框架 优点:IMSDroid 是建立在它之上的。 (源代码可用) 缺点:生成的 apk 文件大小往往“很大”(>15MB,如此处所述)
已关注 from
关于android - 某些设备不支持 SipApi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20582407/