2012-05-10 26 views
6

私はpjsip、例えばCSipSimpleプロジェクトを使用してアンドロイド用にSip clientをビルドしようとしています。しかし、私は実際にはpjsipについてよく知らない。誰かがpjsipに関するチュートリアルを持っているか、またはPJsip libを使ってアンドロイドにSip softphoneを構築するようなものがありますか? ご提案は大歓迎です!PJSip in android

+1

聴診器はありますか?残念ながら私はネイティブSIP APIを使用できません。どこから始めるべきなのか? –

答えて

3

から助けを得ることができます。 Androidには本格的なSIP APIが含まれています。ウォーキートーキータイプの実装にSIP APIを使用する方法を理解するには、SIP demoをご覧ください。

+1

これはあなたのアプリケーションをAndroidバージョン2.3 [(APIレベル9)](http://developer.android.com/guide/appendix/api-levels.html#level9)以上に制限することに注意してください。ユーザーの75%のようなもの – Paaske

+0

[プラットフォームのバージョン](http://developer.android.com/resources/dashboard/platform-versions.html)のPlay Storeの統計によると、あなたの推測は正しいこのコメントの – Rajesh

+1

これはまた、あなたのアプリを有益なものではないwi-fiのみに限定しています... apjsuaが機能しないので、pjsipを使用する他の方法を知っていますか? .. –

1

受け入れられる回答は完全に正確ではありません。 Android SIP APIには、サードパーティ製のライブラリを使用して実現したいという、多くの望ましい機能がありません。

上記のpjsipに関して、私はpjsipのAndroidビルドを試してみるのに多大な時間を費やしましたが、誠実に瞬時に信頼できる認証を得るための唯一の方法は、OpenSSL 1.0.2aライブラリを作成し、設定時に渡します。次に、Javaでは、UDPやTCPの場合と同様に、TLS通信を有効にしようと試みる(そして失敗する)必要があります。ここで私が何を意味するかです:

/* 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を以下PJSIP ../3rd-party/、そこに最初の建物の上のフォルダにはOpenSSLのtarballをexrtacting後のことでした。ここで

は私が設定する方法です。そのプロセスについては、previous postで詳しく説明しました。

-1

あなただけのsipクライアントを開発する場合は、アンドロイドのSIP APIを使用することができますが、上記のようにあなたのアプリの機能を制限します。 しかし、あなたのアプリケーションでチャットや呼び出し機能を開発したい場合、多くの豊富な機能を提供するpjsipを使用することができます。 アンドロイド用のpjsipの構築については、here(android)から学ぶことができ、iosについてはhere(ios)から学ぶことができます。 基本的に、pjsipは、pjlib、pjsip、PJメディア、pjsuaなどのような要件に応じて使用できる豊富な機能を持つ多くのAPIを提供します。pjsua(またはpjsua2 for android)は、 here.を直接見ることができます。hereからpjsuaについて学ぶことができます。彼らはまた、デモアプリケーション(pjsua CLI)Pjsua CLIとそのソースを提供しています。これはチャットと呼び出しの機能を持つpjsipで構築するアプリケーションの基本構造を理解するのに役立ちます。

(Android用)の場合、githubにデモアプリケーションが表示されます。