Android M:VoIP,JAINSIP,SipStack;不一致SipProvider创建启用了tls的侦听点时的异常

时间:2015-10-19 06:46:10

标签: android sip voip android-6.0-marshmallow jain-sip

更新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也出现同样的问题。不确定是否是由于其中一个应用程序或o.s.的更新。在第二次尝试中没有成功。

以下行为不一致随机。我没有准确的步骤来重现它 发生这种情况 Android M ota更新后,仅限Nexus 5

我在 * VoIP应用中使用JainSip 场景:在 tls enabled 的情况下调用** createListeningPoint 时;

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。相同的代码在其他设备和o.s.中按预期工作。 Android 6.0之前/之前的版本(API 23) 2。代码在加载到Motorola Nexus 6中的Android M预览sdk中按预期工作 3. 尚未在使用Android M的多台设备上进行测试,甚至没有多台Nexus 5。当我这样做时,我会发布更新。

我搜索了这个问题,找不到太多,尝试使用setEnabledCipherSuites进行异常1 - 不确定如何实现它 - 并确保在堆栈取消注册时侦听点为空/销毁,例如2。

问题是有没有人经历过相同或知道发生了什么,如何解决(?)

1 个答案:

答案 0 :(得分:0)

我通过评论来修复它
“TLS_DH_anon_WITH_AES_128_CBC_SHA”
“SSL_DH_anon_WITH_3DES_EDE_CBC_SHA”

在SipStackImpl.java的'cipherSuites'字符串[]中

Android 6不再支持这两个