2012-05-10 69 views
6

我正試圖建立一個Sip client爲Android使用pjsipCSipSimple項目。但是,我其實不太瞭解pjsip。有沒有人有關於pjsip的教程或類似的東西在Android中使用PJsip lib構建Sip softphone? 歡迎任何建議!PJSip在Android上

+1

是否有外用藥。可悲的是我不能使用本地SIP API。任何建議從哪裏開始? –

回答

3

您不必使用第三方庫在Android中建立SIP客戶端功能。 Android包含完整的SIP API。您可以查看SIP demo以瞭解如何將SIP API用於對講機類型的實施。

+1

請注意,這會限制您的應用程序到Android 2.3 [(API Level 9)](http://developer.android.com/guide/appendix/api-levels.html#level9)及更高版本,但我想這是類似於用戶羣的75% – Paaske

+0

根據Play Store關於[平臺版本]的統計數據(http://developer.android.com/resources/dashboard/platform-versions.html),您的猜測是正確的(就像當天 – Rajesh

+1

這也限制你的應用程序只用於Wi-Fi,這是不是有用的....你知道任何其他方式使用pjsip,除了apjsua,因爲apjsua不工作,我花了幾天的時間... ... - .. –

1

接受的答案並不完全準確。您可能希望通過第三方庫實現Android API所缺少的許多理想功能。

就上述pjsip而言,我花了大量時間試驗pjsip的Android版本,如實記錄得到可靠的即時註冊的唯一方法是構建OpenSSL 1.0.2a並在配置時傳遞它。然後在Java中,您需要嘗試(並失敗)啓用TLS通信,就像您看到它們針對UDP和TCP所做的那樣。這裏是我的意思是:

/* Create transports. */ 
    try { transports.add(ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_TLS, transportConfig)); } 
    catch (Throwable t2) { SipManager.log().e(t2); } 

    try { transports.add(ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_UDP, transportConfig)); } 
    catch (Throwable t) { SipManager.log().e(t); } 

    try { transports.add(ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_TCP, transportConfig)); } 
    catch (Throwable t) { SipManager.log().e(t); } 

替換爲自己的應用程序的SipManager.log()電話。

我不完全確定爲什麼,但這對我是必要的。否則,註冊過程是半確定性的,意思是它會在失敗幾次後失敗,或者失敗5分鐘後突然成功等等。在第一次註冊後似乎會感到困惑。

這是我如何配置:

TARGET_ABI=arm64-v8a ./configure-android --use-ndk-cflags --with-ssl=`pwd`/../3rd-party/openssl-1.0.2a 

這是繼proper Android instructions,exrtacting OpenSSL的包到一個文件夾上面PJSIP ../3rd-party/和第一個建築之後出現。我在previous post中詳細描述了這個過程。

-1

如果您只想開發sip客戶端,那麼您可以使用android的sip API,但正如上面提到的答案中所述,它會限制您的應用程序功能。 但是,如果您想在應用程序中開發聊天或通話功能,則可以使用提供許多豐富功能的pjsip。 至於建設android的pjsip,你可以從here(android)和ios學習,從here(ios)學習。 基本上,pjsip爲您提供了豐富的功能,您可以根據您的需求使用許多API,例如pjlib,pjsip,PJ media,pjsua等。pjsua(或android的pjsua2)是更高級別的API,可幫助您以最少的您可以直接看到here.,您可以從here瞭解pjsua。他們還提供了一個演示應用程序(pjsua CLI),Pjsua CLI及其來源,它將幫助您瞭解應用程序的基本結構,以使用具有聊天和調用功能的pjsip構建。

對於Android,您可以在github處看到演示應用程序。