带有Twilio的Android ConnectionService

时间:2017-12-22 13:38:37

标签: android react-native twilio voip

我正在开发一款允许用户通过Twilio进行通信的应用。这正在使用FCM通知,其中呼叫接听时可以正常说话和听到。

由于我必须构建一个UI拨号来管理调用的控件,我正在考虑使用ConnectionService,其中doc说它支持VOIP;我会因为构建UI而被解雇。

现在我被困住了;我不知道如何合并这两个工具。

当我开始呼叫(Twilio)时,我也打电话给尝试打开Android UI手机的TelecomManager,请看下面的代码:

Uri uri = Uri.fromParts("tel", params.getString("To"), null);
Bundle callInfoBundle = new Bundle();
callInfoBundle.putString("to", params.getString("To"));
Bundle callInfo = new Bundle();
callInfo.putParcelable(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS,callInfoBundle);
callInfo.putParcelable(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, handle);
tm.placeCall(uri, callInfo);
tm.showInCallScreen(true);
Log.d(TAG,"Outgoing call successful");

此时,我可以在短时间内看到Android UI手机,其中包含参数,并在其上方显示“Disconected”

我还读到我应该使用SIP,只有这样才能使用Android,但我不知道更多。

我是新手,我不确定我是否走在正确的道路上,也许我应该像this suggestion那样继续建立我自己的用户界面拨号;但首先我想知道是否值得继续使用 ConnectionService

2 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

Android Voice SDK团队一直在研究使用ConnectionService,但我们现在没有它的示例。有一个ongoing discussion on GitHub你可能会得到一些见解,但这就是我现在所拥有的一切。

答案 1 :(得分:0)

我们正在做 Cordova + CallKit + Twilio。目前正在苦苦挣扎于 Android 位。

这是一个使用 iOS Callkit 和 Android(连接服务)的插件 https://github.com/mattkhaw/cordova-plugin-callkit

这是基于另一个有更多文档的 https://github.com/WebsiteBeaver/CordovaCall

主要代码在 onAnswer 嵌套方法中。 我们的第一个大问题是在 ConnectioNService 中,MainActivity 同时响应 VOIP 推送,因此当用户按下 onAnswer 并且我们切换到 TwilioVideoActivity 时,呼叫可能无法连接。我不得不推迟。

此外,应该只有一个 TwilioVideoActivity 实例。启动模式:单实例。

一个问题是旧版 Android 上的 VOIP 屏幕是全屏的,它自己的活动称为 InCallActivity,但在 Android 10 上,当您接听电话时,它只会出现一个小下拉菜单,并有两个拒绝/接听按钮。

一个有用的 adb 命令,它将向您显示 TASK 和活动堆栈,并向您显示 InCallActivity 以及您的活动隐藏的位置:

/Users/gbxc/Library/Android/sdk/platform-tools/adb shell dumpsys activity activities | sed -En -e '/Stack #/p' -e '/Running activities/,/Run #0/p'