2010-12-31 17 views
3

私はPJSipを使用してSIPチャネルを介して通信するVOIPアプリケーションを開発しました。私がしたいことは、VOIPがブロックされている領域でもシステムが動作するようにHTTPトンネルを作成することです。 PJSipを使用してこれを達成する方法は何ですか?または外部メソッドがある場合、PJSipとどのようにマージできますか?pjsip上のHTTPトンネル

答えて

0

これを行う簡単な方法はありません。 pjsipに別のトランスポートプロトコルを書き込むか、HTTPトンネリングでtcp/udpをサポートするように現在のトランスポートを変更する必要があります。また、HTTP経由でトラフィックを「トンネリング」する方法もあります。 HTTPトンネリングをサポートするHTTPサーバーを使用していることを確認する必要があります。

これは、SIPシグナリングを取得する可能性がありますが、RTPメディアトラフィックに問題が発生する可能性があります。

TURNサポートをpjsipコードに実装する方がよい場合があります。 pjsipはすでにTURN for RTPメディアをサポートしているので、主要なSIPシグナリングトラフィックのためにTURNをサポートするようにする作業は少なくなります。

これは、TURNサーバーがインストールされていることを前提としていますか? TURNサーバーがインストールされておらず、HTTPサーバーがHTTPトンネリングをサポートしていない場合は、運が悪い可能性があります。

0

当局はあなたのSIPとRTPパケットをキャプチャすることでVoIPアプリケーションを検出します。あなたのpjsipを微調整して、すべてのデータを1つのゲートウェイ経由で送信することができます(現在pjsipはsip/RTP/rtcpなどの異なるポートを開きます)。当局がパケットがsipまたはRTPパケットであることを知ることができないように、すべての発信パケットも変更する必要があります(ヘッダーの構造を見てパケットのタイプを知っています)。 また、サーバーに行く前にすべてのパケットが通過するトンネル型システムを実装する必要があります。このトンネルには、パケットを元の状態に再構成する機能が必要です。これにより、ブロックされずにパケットをサーバーに送信することができます。