0

私が作成した単純な非SIPクライアントプログラムを使用してPCからリモートダイヤルしたいのですが、wchichはTCP接続を介してリモートコマンドを受け入れる独自のSIPクライアントにコマンドを送信します。次に、プロプライエタリSIPクライアントは、RTP用のSDPでPCのIPとポート番号を使用してリモートパーティにダイヤルします。これは原則として可能ですか?この概念を使用する利用可能なオープンソースクライアントはありますか?利用可能なドキュメント(IETF RFC、ブログなど)はありますか。

この問題の助けに感謝します。

4

2 に答える 2

0

pjsipを確認してください。これは、すべての主要なプラットフォームに対応したオープンソースのクロスプラットフォーム SIP クライアントであり、C の API と Python の API ラッパーのいずれかを使用できます。彼らのサイトにも例があります。TCP 解析コードを pjsip にリンクし、その関数を呼び出して呼び出しを開始します。その方法は彼らのサイトで見つけることができます

于 2012-03-02T14:17:35.270 に答える
0

私の理解が正しければ、あなたがやりたいことは次のとおりです。

    TCP              SIP/SDP/RTP
PC <===> SIP client <===========> softswitch

実際には、PC と SIP クライアント間の TCP はおそらくシグナリングには正確ですが、RTP メディア ストリームは UDP 経由で送信されることが多いため、メディアには正確ではありません。

私の意見では、最初のステップは、ソフトスイッチが、SIP クライアントとは異なる IP アドレスへの RTP パケットの送信を受け入れることを確認することです (ほとんどのソフトスイッチはセキュリティ上の理由で拒否すると思います)。それが受け入れられ、SIP クライアントと PC の間に NAT がない場合は、RTP ストリームを PC に直接送信できるはずです。この場合、RTP パケットを取得し、最終的に再配置し、ペイロードを解凍して、スピーカーにフィードする必要があります。

ソフトスイッチが SIP IP アドレスとは異なる IP アドレスに RTP パケットを送信したくない場合は、RTP パケットを SIP クライアントから PC に転送する必要があります。しかし、SIP クライアントを変更してこれを行うことができない場合 (これはおそらくプロプライエタリ ソフトウェアであるため)、行き詰まっている可能性があります。

ソフトスイッチが意図しない IP アドレスへの RTP パケットの送信を受け入れるかどうかをテストするには、sippを使用して、SIP シグナリング IP アドレスとは異なるリモート メディア IP アドレスを指定します。

于 2012-06-21T08:48:52.090 に答える