2015-10-19 57 views
4

UPDATE 5
吉斯特發生了什麼的:在堆棧初始化創建TCP監聽點。爲此,在我們的例子中,我們不能使用現有的對象。
所以我要做的就是檢查是否mTcpnull,如果是,則收聽點被刪除,函數棧進行初始化,但!=null總是跳過,然後隨之而來的例外...
注意:使用一個隨機的端口號每次都無法用於創建聆聽點,在Android中不起作用,而對於iOS來說則是相同的。Android M:VoIP,JAINSIP,SipStack;創建與TLS的收聽點時不一致SipProvider異常啓用

UPDATE 4
始於小米手機4此面向:
SipProvider例外是android.javax.sip.InvalidArgumentException:綁定失敗:EADDRINUSE(地址已在使用)

UPDATE 3
似乎有例外的替代模式。但即刻的第二次嘗試也是成功的;
1.第一時間createListeningPoint()稱爲 - >異常2或1之後
2.第二嘗試 - >成功
3.此後,當1.發生 - >異常1或2
4.第二嘗試 - >成功。 。 。

更新2

例外1和2似乎重現,沒有任何模式,但之後異常2,在那裏當它是異常1第2次嘗試是成功的 - 它堅持了一段時間,反覆給出同樣的例外。


UPDATE 1

1.的SipProvider例外只發生一次SIP棧被破壞之後。第二次嘗試註冊/初始化堆棧或創建收聽點總是成功的。

2.在Android M上運行的另一個Nexus 5設備不具有相同的行爲;一切按預期工作。

3.摩托羅拉Nexus 6 Android M現在也出現同樣的問題。不知道這是由於更新了其中一個應用程序還是o.s.在第二次嘗試中沒有成功。


以下行爲已經不一致隨機。我沒有準確的步驟來重現它。
這種情況
僅在版本的Android M OTA升級後的Nexus 5,我使用JainSip

*的VoIP應用。
情景:當** 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協議棧的jar(S),我使用:
Maven android jain sip,並試圖jenkins jsip

注意這些:
相同的代碼將按預期在其他設備和O.S. Android 6.0以前/之前的版本(API 23)。
2.代碼和預期一樣在版本的Android M預覽版SDK加載到摩托羅拉的Nexus 6
有沒有與版本的Android M多個設備測試它,甚至沒有多的Nexus 5(S)。當我這樣做時,我會發布更新。

我搜索的問題,找不到多少,使用setEnabledCipherSuites異常1 - 而不是試圖確定如何實現IT和確保收聽點爲空/時被毀棧註銷,對異常2.

現在的問題是,有沒有人經歷過同樣的或不知道發生了什麼,如何解決(?)

回答

0

我註釋掉
「TLS_DH_anon_WITH_AES_128_CBC_SHA」,
「SSL_DH_anon_WITH_3DES_EDE_CBC_SHA」

固定它

在「密碼套件」字符串[]中SipStackImpl.java

兩個不再從Android的6支承

+0

可以只創建的密碼套件陣列的兩個實例,一個用於預M和一個用於M + 。 M +的不應該包含匿名密碼套件(其中有_anon_),因爲它們不再受支持。 –