【问题标题】:H.323 protocol what does the endpoint to endpoint send and receive to initiate a call?H.323 协议端点到端点发送和接收什么来发起呼叫?
【发布时间】:2011-10-28 18:28:08
【问题描述】:

在 H.323 中,端点到端点消息协议如何工作?我看到的大多数示例都涉及中间的看门人,但实际上我想使用 (c/java/lua/php/d tcp/udp) 制作一个简单的 Endpoint to Endpoint H.323 播放器

我应该发送什么 RAW 消息协议,例如在 SIP 中我发现这样的数据包被发送 (https://gist.github.com/1151125)

【问题讨论】:

    标签: java c sip h.323


    【解决方案1】:

    在 C++ 中有一个开源实现:OpenH323(指向维基百科,其中包含更多指向 OpenH323 页面的链接)。

    【讨论】:

    • 感谢您的链接。但我只想制作没有媒体的信号。并避免为此堆栈使用更多依赖项。这样我就可以修补我的 Java 或 Php 或跨平台,而不会遇到很多兼容性问题。
    • @89899.3K:我会重新考虑这个策略。如果您不使用专门的库,则对 H.323 消息进行编码和解码非常复杂。即使你有一个 ASN.1 编译器,也不要让它进行正确的 PER 编码(不是 BER!)可能比你想要处理的要多。
    • @Gene Vincent:我仍然相信它与数据包交换有关。从这里到那里使用 RX/TX 方式,它总是有效的。但我变得非常害怕和好奇再次打破这个。就像我开始对 SIP 感到害怕一样,最后我写了那个。如果能提供更多关于此的详细信息,我将不胜感激。
    【解决方案2】:

    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 协商的结束,是找到实际媒体的地方。

    【讨论】:

    • SETUP 当你说这意味着我们正在发送一个带有标题和命令的 8 字节数据包。当你说 CONNECT 时,这意味着我们正在发送第二个连接请求?但我对一件事感到困惑,那就是这里提到的单字节和多字节,例如:freesoft.org/CIE/Topics/126.htm
    • 不是真的... SETUP 和 CONNECT 是通过 TCP 发送的 Q.931 消息。每个字节都有任意数量的字节,具体取决于消息本身的实际内容。另一个方面是 Q.931 是 ISDN 协议这一事实。与 H.323 一起使用时,添加了一个用户信息元素,其中包含真正的 ASN.1“东西”。您可以在这里了解更多信息:packetizer.com/ipmc/h323/standards.html。这是 SETUP 消息的 ASN.1 部分:packetizer.com/ipmc/h323/…
    【解决方案3】:

    这是一个 H323 调用的wireshark 捕获示例: http://wiki.wireshark.org/SampleCaptures http://wiki.wireshark.org/SampleCaptures?action=AttachFile&do=view&target=rtp_example.raw.gz

    回应 cmets,SIP 在常规编程语言中的实现复杂度并不是一个公平的比较。 SIP 是纯文本,旨在简化和理解。您需要的库支持的要点是字符串操作。

    相信我,在没有库的情况下自行实现 H323 不像在没有字符串的语言中实现 SIP,它就像在没有编译器的情况下实现 SIP。

    【讨论】:

      猜你喜欢
      • 2017-01-04
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 2020-08-15
      • 2012-08-05
      • 1970-01-01
      相关资源
      最近更新 更多