是否有可能在 Cordova/Phonegap 中使用 SIP?我还没有找到任何插件。对 WebRTC 的支持也不可用(但根据他们的路线图计划在 2.x 中)。
4 回答
支持SIP
or on Android 与/WebRTC
无关,即使它们可以作为一些扩展添加,但它们自然是随操作系统提供给 PhoneGap 的浏览器一起提供的。现在你需要寻找外部库来为你做这件事。PhoneGap
Cordova
您可以自己为您的 PhoneGap(用 Java 编写)添加一个扩展,以便与某个SIP
服务器通信。或者,如果您希望可以使用 Javascript 库为您实现 SIP 协议(如sipml5),但如果您选择使用此后期解决方案,您的浏览器需要支持Websocket
或WebRTC
(两者都适用)。据我所知,Android 提供给 PhoneGap 的浏览器插件不支持上述两种技术,但我的知识是 6 个月前的。那时我尝试实现自己的 Websocket PhoneGap 扩展来为 PhoneGap 提供Websocket
. 但我从来没有用 sipml5 测试过,也不知道你可能会遇到什么问题。
在 cordova 中实现 WerbRTC 有两个部分:
- SIP 通信以拨打电话(发送邀请请求)或接收来电(接收邀请请求)
- 然后 RTP 通信,使 ICE Channel 用于共享媒体(语音或视频)
对于第一部分,我将sipjs用于 IOS 和 android 平台。但对于第二部分,我在每个平台上使用不同的 plaugins:
- 对于 Android,您不需要任何 Android 平台现在在其标准 WebView 中支持 WebRTC,或者您可以使用Crosswalk具有一些功能,例如当移动设备在 WIFI / 移动数据(如 3G、4G 和 LTE)之间切换时自动重新邀请。
- 对于 IO,我建议使用eface2face cordova-plugin-iosrtc
如果您需要更多信息,请告诉我。
You might be able to load sipml5 directly within your Phonegap application if the WebRTC support is available:
<script type="text/javascript" src="js/SIPml.js"></script>
var readyCallback = function(e){
console.log('SIP initialized');
};
var errorCallback = function(e){
console.error('Failed to initialize the engine: ' + e.message);
}
SIPml.init(readyCallback, errorCallback);
The Android emulator doesn't seem to support WebRTC, as I get this error:
Uncaught ReferenceError: tsk_utils_init_webrtc is not defined at file:///android_asset/www/js/SIPml.js:203
I haven't tried this on a real device ...
一个概念验证 Cordova 应用程序,它使用带有 PhoneRTC 插件的 SIP.js 通过 Internet 进行 WebRTC 调用。