2011-08-17 5 views
0

H.323では、エンドポイントからエンドポイントまでのメッセージプロトコルはどのように機能しますか?例のほとんどはゲートキーパーが真ん中に関わっているのが見えましたが、実際にはエンドポイントからエンドポイントまでH.323プレーヤーを(c/java/lua/php/d tcp/udp)使ってみたいと思っています。H.323プロトコルコールを開始するためにエンドポイントとエンドポイント間で送受信するものは何ですか?

私はSIPで送信する必要があるRAWメッセージプロトコルは、そのようなパケットが送信される(https://gist.github.com/1151125)

答えて

3

H.323で使用されるプロトコルのいくつかの層があります。その後、 RAS、Q.931、H.245およびRTPとRTCP

RASメッセージはUDPを介して送信されます。 RRQを使用してゲートキーパーに登録し、ARQなどを使用してコールを開始します。 コール(ARQ)の許可部分が完了すると、ゲートキーパーは、エンドポイントとゲートキーパー間の通信を行います。 ACF - 入学確認 - Q.931 SETUPメッセージをどこに送付する必要があるかを述べています。

通常、Q.931メッセージはTCP経由で送信されます。これらは、エンドポイント間でコールを確立するために使用されます。ゲートキーパーやその他の仲介デバイスを経由してルーティングすることも、エンドポイント間で直接送信することもできます。 送信される最初のQ.931メッセージはSETUPであり、その後はQ.931 CONNECTメッセージが続きます。

Q.931が確立されると、H.245はコール制御(機能の交換と論理チャネルの開放)を処理するように通知されます。これは、Q.931上または別のTCP接続上でトンネリングすることができます。また、ゲートキーパ経由でルーティングされたり、エンドポイント間で直接ルーティングされたりする可能性があります。

RTPとRTCPはH.245ネゴシエーションの終わりであり、実際のメディアが見つかった場所です。

+0

SETUPは、ヘッダーとコマンドを含む8バイトのパケットを送信していることを意味します。 CONNECTと答えると、2番目の接続要求が送信されていますか?しかし、私は混乱しています。これは1バイトとマルチバイトの例です。http://www.freesoft.org/CIE/Topics/126.htm – YumYumYum

+1

本当は...セットアップと接続はQ.931ですTCP経由で送信されたメッセージそれぞれには、メッセージ自体の実際の内容に応じて、任意のバイト数があります。別の側面は、Q.931がISDNプロトコルであるという事実である。 H.323と一緒に使用すると、その中に実際のASN.1「stuff」を持つユーザー情報要素が追加されます。詳細については、http://www.packetizer.com/ipmc/h323/standards.htmlを参照してください。これは、セットアップメッセージのASN.1部分です:http://www.packetizer.com/ipmc/h323/h2250_asn.html#H323-MESSAGES.Setup-UUIE –

1

は、C++でオープンソースの実装があります:OpenH323 OpenH323のページへのリンクがいくつかあります)。

+0

リンクありがとうございます。しかし、私はただメディアなしでシグナリングをしたいです。また、このスタックに依存性を増やすことは避けてください。私はJavaやPHPやクロスプラットフォームにもパッチを当てることができるので、多くの互換性の問題に直面することはありません。 – YumYumYum

+1

@ 89899.3K:私はその戦略を考え直すでしょう。特化したライブラリを使用しないと、H.323メッセージのエンコードとデコードが巧妙に複雑になります。そして、ASN.1コンパイラを持っていても、適切なPERエンコーディング(BERではなく)を行うようにするのはおそらく処理する以上のものです。 –

+0

@Gene Vincent:パケット交換に関するすべてのことはまだ信じています。ここにRX/TXの方法でそこにそれは常に働いた。しかし、私は再びこれを壊すために非常に怖がって好奇心が強くなってきています。私がSIPで怖がって始めたように、ついにそれを書きました。私は本当にこれについていくつかの詳細で感謝します。 – YumYumYum

0

ここH323コールのWiresharkのキャプチャのサンプルです: http://wiki.wireshark.org/SampleCaptures http://wiki.wireshark.org/SampleCaptures?action=AttachFile&do=view&target=rtp_example.raw.gz

コメントに応えて、通常のプログラミング言語でのSIPの実装の複雑さは、公平な比較ではありません。 SIPは、シンプルで理解しやすいように設計されたプレーンテキストです。必要なライブラリの要点は、文字列の操作です。

ライブラリなしで自分でH323を実装することは、文字列のない言語でSIPを実装するようなものではなく、コンパイラなしでSIPを実装するようなものです。

関連する問題