Android 用の VoIP アプリケーションの開発に関する一般的なアドバイス (技術、ベスト プラクティスなど) を探しています。同様の質問が投稿されていますが、具体的な質問を含めました。
私はかなりの調査を行い、いくつかの可能な解決策があることに気付きました (もちろん、SDK の SIP スタックについては知っています (音声伝送も含まれていることも知っています)、ほとんどのデバイスでは利用できないため、意図していません)。また、Adobe Flex の実装について読みましたが、ネイティブのものに固執したいと思います)。
心に残ったのは次のことです。
SIP を使用してセッションを開始します (サーバーが存在します)。メッセージで SDP を使用して、セッションを記述します。
p2p接続を確立します(ファイアウォール/ルーティングに問題がある可能性があります-STUNを使用できます-DNSが関与する可能性があります)
実際の送信を行います。関連するパケット/プロトコルは (ペイロード) in -> RTP in -> UDP in -> IP であると思います。
これは現時点ではかなり複雑に思えるので、私の最初の質問は次のとおりです。
1)これは標準的なアプローチですか? それはベストプラクティスですか?代わりに、MSRP を使用してコンテンツを送信できるというヒントをいくつか得ましたが、それは IM やファイルなど専用であると読みました。
2) 最高の結果/パフォーマンスを得るには、どの SIP スタックを使用する必要がありますか? Java/Eclipse を開発に使用できます。私は JSIP (または jsip に基づく tinysip) を選択することを考えていましたが、よくわかりません。
3) Java for Android (RTP) でデータ転送を実装する方法について、いくつかのヒントを教えてください。
最後の注意として、pjsip をまったく除外していません。NDKを使用しているため、実際には高速である可能性があると考えています(C++、npに切り替えることができます)。また、オーディオ/ビデオ伝送が既に含まれていることも読みました。使いやすく、拡張しやすく、実際にどれだけ優れているかはわかりません。使ったことある方、教えてください!
ありがとうございました。
PS: 緊急または確実ではありませんが、移植性は将来の重要な要素になる可能性があります。近い将来、ビデオ送信も必要になります。