我在 android 上构建了一个 WebRTC 软电话客户端(使用 React Native),但该服务使用正确的 uri 进行拨号(不仅仅是电话号码),所以为了获得连接服务集成,我们使用了 PhoneAccount,我将允许的 uri 类型设置为包括SCHEME_SIP - 没有它,我无法使用 tel: uri 拨号,因为它没有遵循正确的格式 - 弹出 UI 警报告诉我。
一切都很好,一切正常,直到手机重新启动并且 PhoneAccount 从列表中消失,如果不再次打开应用程序并启用 PhoneAccount,我们将无法再拨打/接听电话。
我使用一个名为 react-native-callkeep 的项目来处理 callkit/connection 服务,您可以在下面看到我添加对 SIP uris 支持的补丁。
所以是的,在重新启动之前一切都很好,并且 adb 在重新启动期间显示这些日志。
01-18 17:31:49.827 2435 2435 D SIP : [SipAccountRegistry] verifyAndPurgeInvalidPhoneAccounts, deleting account: ComponentInfo{retracted.app.id/io.wazo.callkeep.VoiceConnectionService}, ***, UserHandle{0}
01-18 17:31:49.829 1520 2898 I Telecom : CallsManager: Sending phone-account ComponentInfo{retracted.app.id/io.wazo.callkeep.VoiceConnectionService}, ***, UserHandle{0} unregistered intent as user: TSI.uPA@AQs
01-18 17:31:49.829 1520 2898 I Telecom : CallsManager: Sending phone-account unregistered intent to default dialer: TSI.uPA@AQs
经过一番谷歌搜索后,您将...
因此,如果您的电话帐户附加了一个 SIP 方案,而您没有附加相应的 SipProfile,则您的呼叫帐户/电话帐户将被删除......很有用。
因此,我创建了一个名称与电话帐户 ID 相同的 sip 配置文件……但看起来它没有保存在 SipProfileDb 中(在该代码中引用)……然后重新启动当然,它不在数据库中进行检查……我们绕着圈子转。据我所知,我无法访问该 sipPorofileDb 及其纯粹用于在本机电话应用程序的设置 UI 中创建的帐户。
A) 我可以将 SipProfileDb 引入我的代码并保存到其中吗?如果要这样做;那为什么我找不到任何文档呢?
B)如果我不能,我错过了什么?我可以创建一个启用了 SIP uri 的 PhoneAccount,因为它只能被电信服务删除,这非常奇怪,感觉就像一个错误。