【发布时间】:2023-03-07 01:27:01
【问题描述】:
更新 5:
正在发生的事情的要点:tcp 侦听点是在堆栈初始化下创建的。为此,在我们的例子中,我们不能使用现有对象。
所以我要做的是检查mTcp 是否不是null,如果是,则删除侦听点并且函数继续进行堆栈初始化,但总是跳过!=null,然后是随之而来的异常...
注意:每次使用随机端口号都不适用于创建侦听点在 Android 中不起作用,而在 iOS 中同样适用。
更新 4:
在小米米 4 中开始面对这个问题:
SipProvider 异常是 android.javax.sip.InvalidArgumentException:绑定失败:EADDRINUSE(地址已在使用中)
更新 3:
似乎有一种例外情况交替出现的模式。但是立即的第二次尝试也成功了;
1. 第一次调用 createListeningPoint() -> 异常 2 或 1
2. 之后的第二次尝试 -> 成功
3. 之后,当 1. 发生时 -> 异常 1 或 2
4. 第二次尝试 -> 成功。 . .
更新 2:
异常 1 和 2 似乎在没有任何模式的情况下重现,但在 异常 2 之后第二次尝试成功,当它是 异常 1 时 - 它会持续一段时间并且反复给出相同的例外。
更新 1:
1. SipProvider 异常仅在 sip 堆栈销毁后发生一次。第二次尝试注册/初始化堆栈或创建监听点总是成功的。
2. 另一台运行 Android M 的 Nexus 5 设备没有相同的行为;一切都按预期工作。
3. 现在摩托罗拉 Nexus 6 Android M 也出现了同样的问题。不确定这是由于更新了其中一个应用程序还是操作系统。第二次尝试也没有成功。
以下行为不一致,随机。我没有重现它的精确步骤。
这
仅在 Android M ota 更新后的 Nexus 5 上发生,
我在 *VoIP 应用程序中使用 JainSip。
场景:当 **createListeningPoint 在 tls 启用 的情况下被调用时;
listeningPoint = mSipStack.createListeningPoint("stringIp",intPortNumber,
"stringTls");
这些是随机发生的异常
例外 1:
SipProvider Exception is java.lang.IllegalArgumentException:
cipherSuite TLS_DH_anon_WITH_AES_128_CBC_SHA is not supported.
例外 2:
SipProvider Exception is android.javax.sip.InvalidArgumentException:
bind failed: EADDRINUSE (Address already in use)
对于 Sip Stack jar,我正在使用:
Maven android jain sip 并尝试过 jenkins jsip
请注意以下几点:
1.相同的代码在其他设备和操作系统中按预期工作。 Android 6.0 (API 23) 以下/之前的版本。
2. 代码在加载到摩托罗拉 Nexus 6 的 Android M 预览版 SDK 中按预期工作
3. 有尚未在多个装有 Android M 的设备上进行测试,甚至没有在多个 Nexus 5 (s) 上进行测试。当我这样做时,我会发布更新。
我搜索了这个问题,找不到太多,尝试使用 setEnabledCipherSuites 处理异常 1 - 不确定如何实现它 - 并确保在堆栈注销时监听点为空/已销毁,用于异常 2。
问题是有没有人有同样的经历或知道发生了什么,如何解决(?)
【问题讨论】:
标签: android sip voip android-6.0-marshmallow jain-sip