2017-05-21 2 views
-1

私はandroidでnewbeeです。私はAndroidのテレフォニーアーキテクチャーを検討していましたが、次の質問があります。 アプリケーションがACTION_CALLインテントを持つアンドロイドAPIを呼び出すと、(SIP仮定を使用して)セッションを確立し、RTPパケットを送受信するためにRILを通過します。 SIPコールの方法と時刻、SIP接続が確立されたとき、いつRTPが(RILを介して)呼び出されるのか、そしていつどのようにソースコードフロー(関数呼び出しと共に)を伝えることができますか?片側のコールフローや1つのコールフローでも役立ちます。callACTION_CALLの後に「SIPプロトコル呼び出しに続くRTPパケットフロー」のコードフロー

事前に感謝します...小さなポインタも役立ちます。 おかげ -Nagendra

答えて

0

私は「1. Androidの電話(などボーダフォン、エアテル、同様に基づく典型的なキャリア)」との間の信号/データフローのパス「2. SIPベースのVoIP通話」ことを発見できた何異なっています。

  1. Androidテレフォニー:設計上、Androidスマートフォンには2つのプロセッサが搭載されています。 1つはJavaおよびネイティブコード用であり、もう1つはベンダ固有のコード、すなわちベースバンドプロセッサを実行するためのものである。すべてのシグナルは、RIL層(送信者と受信者、つまりJavaとJniコード)とRILD/'Vendor Specific Library'の間のソケット経由で渡されます。したがって、すべての通信の詳細は、フォルダhardware/ril *にあります。 接続(シグナリング)が確立されると、Java APIはベンダー固有のライブラリからソケット経由でRingingまたはConnection Establishedコールバックを取得します。接続の確立さえVSL(Vendor Specific Library)で行われます。だから、ソースコードを手に入れることはできません。

  2. SIPベースのVOIPコール:これはアプリケーションレベルのプロトコルであり、インターネットに接続する必要があります。任意のオープンソースSIP実装(PJSIP、MJSIPなど)を使用して、SIPプロトコルのAPIとリンクし、独自のCalling Appを作成できます。このようにして、SIPを含むソースコードを完全に制御できます。信号とデータのコードフローは同じで、インターネット経由(UDP、ソケット経由)です。

関連する問題